2017-03-09 90 views
0

管理上下文的用戶。我們想要使用Dialog和意圖和實體爲用戶配置一個標準的通信序列。 我們正在編寫的應用程序是java,通過RESTful API與Conversation服務進行通信。 我知道我們必須維護上下文,並在應用程序和對話之間傳遞它,直到對話結束。 爲了實現這一點,我明白,我們需要存儲和管理我們的應用程序的每個用戶的上下文。 任何人都可以請澄清,如果我的理解是正確的? Java也適合這種功能嗎? 感謝沃森對話 - 存儲和我們使用沃森會話服務提示機器人的功能在應用

+0

的botkit的中間件回購在Node.js的管理這些上下文https://github.com/watson-developer-cloud/botkit-middleware –

回答

0

每個會話都有自己的conversation_id並在JSON自己的背景從服務發送。所以,你不必在應用程序中存儲每個上下文。你可以,但沒有必要。

使用這種通常的方法是,當你從談話中服務一個答案,你存儲上下文對象,更新它並將它送回。在下一次迭代中,服務將再次發送Json內部的上下文。如果你使用相同的conversation_id,你應該能夠發送和接收上下文,所以你不需要存儲它。

+0

謝謝達尼洛。什麼意思是任何用戶,我將在任何時間點上下文映射中至多存儲一個上下文。上下文將在對話服務的每次響應後更新。如果用戶ID是唯一的,我不必擔心conversationId。對於每個用戶的請求,我將爲用戶提供上下文,更新它並將其發送回對話服務。那是對的嗎? –

+0

謝謝達尼洛。我的意思是,對於每個用戶,我會在任何時間點在上下文地圖中最多存儲一個上下文。上下文將在對話服務的每次響應後更新。如果用戶ID是唯一的,我不必擔心conversationId。對於每個用戶的請求,我將爲用戶提供上下文,更新它並將其發送回對話服務。那是對的嗎? –

+0

是的,就是這樣。您從json中提取上下文,更新消息文本並將其發回。你不必擔心其他事情。 –

0

有不同的語言,這使得這更容易給你一些SDK的的。

https://github.com/watson-developer-cloud

+0

由於西蒙的例子。我們將使用java SDK與Conversation服務進行通信。但是,我們必須注意通過我們的應用程序邏輯來存儲包含用戶及其上下文的地圖。那是西蒙嗎? –

+0

這是正確的。對話服務是無國界的 – Dudi

+0

嗨杜迪,我以爲你可以幫助我回答http://stackoverflow.com/questions/42723050/watson-conversation-context-previous-input-text –