我正在努力熟悉沃森对话。到目前为止,我已经创建了一个由几个意图和对话框组成的简单对话。
我的改善健身对话框响应:
OK, so have you any running experience?
Thats a great start. Have you ran before?
它识别#improve_fitness
意图,包括:
complete a 10K
complete a 5K
couch to 5K
general fitness
get a little faster
get healthier
get my time down
I want to get fit
I want to improve my fitness
从这里我创建了三个子对话框: 改善健身 - 没有经验 改善健身 - 一些经验 改善健身 - 有很多经验
如果用户触发其中任何一个,则会给出响应。根据响应,用户可以说出可以触发另一个的内容。我的问题是,在第一个孩子被触发后(无论是哪一个),对话似乎会回到父级别,如果说某些事情应该触发另一个孩子,我的机器人不会识别输入。有没有办法解决这个问题?
这是我正在看的截图。取决于我从改善健身 - 没有经验,改善健身 - 一些经验或改善健身 - 所获得的回应,我可能会说些什么应该把我带到另一个。
答案 0 :(得分:2)
会话是无国籍的。当您第一次拨打电话时,您将获得context
个对象。这是用于维持状态的东西。
在进一步调用时,您需要重新发送上下文,因此它会记住它的位置。
根据评论和图片进行了更新。
行。我现在只是在Bluemix工作。
默认情况下,如果对话无法在分支中找到匹配项,则会回退到root
并尝试在那里找到匹配项。
您可以通过在分支末尾添加一个anything_else
条件的节点来防止这种情况,该条件会提示正确的响应,然后跳转到父节点的等待用户输入。
如果正确输入内容,最常见的原因是需要更多培训。如果<意图不会触发匹配0.2信心。
您可以在输出文本中添加以下内容,以查看试用版中的评分:
<? intents ?>