Watson Conversation - 处理无效输入

时间:2017-05-11 15:46:07

标签: ibm-watson watson-conversation

我们正在使用Watson Conversation构建应用,但在处理无效用户响应时遇到问题。我们的机器人旨在使酒店预订和对话的简化版本是:

  • 节点1:清除上下文;问“你想到哪个日期?”
  • 节点2:触发器@sys-date;更新日期的上下文;问“有多少 你想留下的夜晚“
  • 节点3:触发@sys-number;更新 夜晚的背景;总结预订“你是 抵达[日期] [数量为夜晚]

如果用户提供合理的答案,那么一切正常,但如果他们对签到日期的响应是“等等”则失败,所以我们添加了一个新节点(作为节点2的兄弟节点),带有“anything_else”触发器并输出“抱歉,我们想要约会,再试一次。”

理想情况下,我们希望循环回现有的Node 2,以便触发器@ sys-date可以捕获用户修改后的响应,但是创建了一个无限循环,因此我们将子节点设置为“anything_else”,即Node的副本2即更新日期的上下文并询问“多少晚上......”但现在我们想在节点3中捕获对该问题的响应,这样我们就可以获取现有的流量,因此添加了跳转到节点3.这就失败了最终退出对话分支。

如果我们使用“anything_else”来捕获无效的用户输入,我们如何重新加入现有的对话流?目前我们唯一的解决方案是复制节点2和3,但在真正的对话框分支中有更多节点,因此这种方法不实用。

1 个答案:

答案 0 :(得分:0)

您只需要Jump to node(节点2左侧有3个点的小气球)。这样,如果用户输入了无效的日期或数字,它将返回以捕获用户有效的输入,并且它将保存在上下文中,就像您想要的那样。您可以跳转到工作区的任何节点。这是一个json exemple。希望我能帮到你!