2017-02-11 48 views
1

我在写一个简单的Slack机器人,它可以查找给定位置的天气状况。Slack-App-Watson:Watson从之前收到的信息中泄露意图

在沃森谈话聊天框,沃森是做好事:

  • 我:天气请
  • 沃森(检测#weather_asked):你想知道天气情况在哪里?
  • 我:巴黎
  • 沃森(用于检测意向@location #weather_asked):寻找巴黎天气预报...

但在我的Node.js应用程序(连接松懈),它看来,沃森是“记住我的#weather_asked意图提供的位置不守”:

  • 我:天气请
  • Watson(检测到#weather_asked):哪里?
  • me:巴黎
  • 屈臣氏(只检测@位置和意图#location_given):我很抱歉,我不明白。 (回退anything_else)

它像沃森,通过我的NodeJS应用中使用时,是忘记#weather_asked初始意图和被“复位”到其主对话框。我错过了什么?

我沃森对话对话框配置的屏幕截图:http://imgur.com/a/vKo8P

编辑:我发现我的应用程序将用户的输入沃特森新的会话ID。如果它已经存在,我会尝试设置这个上下文。

回答

1

我找到了解决方案!问题是我没有告诉沃森我的用户已经开始与他谈话(它?)。

我做了一段简单的代码,存储由Slack的user_id分组的现有上下文。如果此user_id已存在上下文,那么我的应用程序将调用Watson API并将此上下文附加到该请求,因此Watson知道这个新用户的输入遵循前一个。