Watson 聊天机器人 - 对话 returns 到 parent 级别

Watson chatbot - conversation returns to parent level

我正在尝试熟悉 Watson Conversation。到目前为止,我已经创建了一个由多个意图和对话组成的简单对话。

我的 Improve Fitness 对话框响应为:

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

据此我创建了三个 child 对话框: 提高体质 - 无经验 提高体质——一些经验 提高体质 - 大量经验

如果用户触发其中任何一个,就会给出响应。根据响应,用户可以说出可以触发另一个的内容。我的问题是,在第一个 child 被触发后(不管它是哪个),对话似乎回到了 parent 级别,如果说了什么应该触发另一个 child ,我的机器人无法识别输入。有什么解决办法吗?

这是我正在查看的屏幕截图。根据我从“提高健康度 - 无经验”、“提高健康度 - 一些经验”或“提高健康度 - 大量经验”中收到的回应,我可能会说一些应该带我到另一个的东西。

对话是无状态的。当你第一次调用时,你会得到一个 context 对象。这是用来维护状态的。

在以后的调用中,您需要发回上下文,以便它记住它的位置。


根据评论和图片更新。

OK. I'm just working in Bluemix at the minute.

默认情况下,如果对话在分支中找不到匹配项,它将回退到 root 并尝试在那里找到匹配项。

可以通过在分支的末尾添加一个带有anything_else条件的节点来防止这种情况,该条件给出正确响应的提示,然后跳转到等待来自父节点的用户输入.

如果您输入正确的内容而吵架的最常见原因是需要更多的培训。如果 < 0.2 置信度,意图将不会触发匹配。

您可以在输出文本中添加以下内容以在试用框中查看评分:

<? intents ?>