Watson Conversation - 处理无效输入
Watson Conversation - handling invalid inputs
我们正在使用 Watson Conversation 构建应用程序,但在处理无效用户响应时遇到问题。我们的机器人旨在进行酒店预订,对话的简化版本是:
- 节点1:清除上下文;问“你想什么时候到达?”
- 节点2:触发器@sys-date;更新日期上下文;问“有多少
你想住几个晚上”
- 节点3:触发器@sys-number;更新
夜数的上下文;总结预订“所以你是
于 [日期] 抵达 [夜数]”
如果用户提供了合理的答案,那么一切正常,但如果他们对入住日期的回答是“blah”,它就会失败,所以我们添加了一个新节点(作为节点 2 的兄弟节点),带有“anything_else”触发并输出“抱歉我们想要约会,再试一次”。
理想情况下,我们希望循环回到我们现有的节点 2,以便触发器 @sys-date 可以捕获用户修改后的响应,但这会创建一个无限循环,因此我们将子节点指向“anything_else”这是节点 2 的副本,即更新日期的上下文并询问“多少晚......”但现在我们想在节点 3 中捕获对该问题的响应,以便我们可以获取现有流程,因此添加了一个跳转到节点3. 这失败了,因为我们最终退出了对话分支。
如果我们使用 "anything_else" 来捕获无效的用户输入,我们如何重新加入现有的对话流?目前我们唯一的解决方案是复制节点 2 和 3,但在真正的对话分支中有更多的节点,因此该方法不切实际。
你只需要Jump to
node
(节点2左边有3个点的小气球)。这样,如果用户输入了无效的日期或数字,它将 return 捕获用户的有效输入并将其保存在上下文中,就像你想做的那样。您可以跳转到工作区的任何节点。这里有一个json exemple。希望对你有所帮助!
我们正在使用 Watson Conversation 构建应用程序,但在处理无效用户响应时遇到问题。我们的机器人旨在进行酒店预订,对话的简化版本是:
- 节点1:清除上下文;问“你想什么时候到达?”
- 节点2:触发器@sys-date;更新日期上下文;问“有多少 你想住几个晚上”
- 节点3:触发器@sys-number;更新 夜数的上下文;总结预订“所以你是 于 [日期] 抵达 [夜数]”
如果用户提供了合理的答案,那么一切正常,但如果他们对入住日期的回答是“blah”,它就会失败,所以我们添加了一个新节点(作为节点 2 的兄弟节点),带有“anything_else”触发并输出“抱歉我们想要约会,再试一次”。
理想情况下,我们希望循环回到我们现有的节点 2,以便触发器 @sys-date 可以捕获用户修改后的响应,但这会创建一个无限循环,因此我们将子节点指向“anything_else”这是节点 2 的副本,即更新日期的上下文并询问“多少晚......”但现在我们想在节点 3 中捕获对该问题的响应,以便我们可以获取现有流程,因此添加了一个跳转到节点3. 这失败了,因为我们最终退出了对话分支。
如果我们使用 "anything_else" 来捕获无效的用户输入,我们如何重新加入现有的对话流?目前我们唯一的解决方案是复制节点 2 和 3,但在真正的对话分支中有更多的节点,因此该方法不切实际。
你只需要Jump to
node
(节点2左边有3个点的小气球)。这样,如果用户输入了无效的日期或数字,它将 return 捕获用户的有效输入并将其保存在上下文中,就像你想做的那样。您可以跳转到工作区的任何节点。这里有一个json exemple。希望对你有所帮助!