2017-03-09 64 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 –