2017-04-03 59 views
4

需要創造條件,在沃森談話對話模型,就像這樣:我如何提取當前日期沃森談話

如果「今天的日期」 < 2017年4月15日做一些事情。其他人做其他事情。

我更喜歡不向用戶詢問當前日期並保存它。

我嘗試過很多辦法,但他們不工作,我也試圖輸出日期(不工作):

{ 
    "context": { 
    "currdate": "@sys-date:today" 
    }, 
    "output": { 
    "text": { 
     "values": [ 
     "here it is $currdate" 
     ], 
     "selection_policy": "sequential" 
    } 
    } 
} 
+0

你的問題很混亂。但是,<? @ sys-date?>輸出當前日期 – RiyaMRoy

回答

6

我不知道這件事,但我所有的測試已經嘗試過,如果用戶今天不輸入或輸入什麼內容,Watson不認識,但是,我相信在代碼中我們可以做一些事情。可能有人與IBM Watson合作會正確回答您的問題。

但是,在我的基礎知識:

嘗試使用NOW()的條件下,保存上下文變量中的日期。

的回報是:

yyyy-MM-dd HH:mm:ss 

使用您的代碼來獲取上下文變量,並得到公正的日期......以後你可以讓條件...

JSON實例:

{ 
    "context": { 
    "dateHour": "<? now() ?>" 
    }, 
    "output": { 
    "text": { 
     "values": [ 
     "Now is $dateHour." 
     ], 
     "selection_policy": "sequential" 
    } 
    } 
} 

我正在研究有關沃森和我內部的系統實體的所有文檔沒有如果用戶不要求提取數據,那麼看到任何東西,但是,我怎麼說呢,可能有人在IBM工作會回答,我只是試圖幫助你瞭解我的基本知識。

查閱有關此權利的文檔@sys-date now()here

3

她是對的,您需要應用程序代碼來抓取當前的日期和時間並將其作爲上下文傳遞。到目前爲止,我們所有的系統實體和努力都圍繞着瞭解用戶所說的內容,所以如果他們今天不說,我們就不會知道它的重要性。 理論上,我認爲你可以讓用戶的句子結束時通過'today',或者通過處理管道運行它,並給你今天的日期,但可能是一種奇怪的用戶體驗。

+0

感謝致謝@Mitch。 +1 –

1

如果您使用now(),那麼您可以重新格式化它以使其正常工作。

我存儲日期我想將它比較反對在$日期,你的情況"date": "04-15-2017",然後使用以下命令:

要看到,如果日期是在以後的使用: now().reformatDateTime('dd-MM-yyyy').before($date)

如果過去: now().reformatDateTime('dd-MM-yyyy').after($date)

您可以閱讀reformatDateTime here。它使用標準的JAVA日期字符串格式化規則,您可以找到here