如何在对话流中实现"Change of mind"功能到机器人或对话中,以实现任何给定的意图?



考虑一个用户想要点餐的场景:

用户 : 我想订购 1 个汉堡 1 个橙汁和 1 杯咖啡

机器人:你想吃素食汉堡还是非素食汉堡?

用户:素食汉堡

用户:对不起,我希望它是非素食的

机器人:(一般来说,我们将如何处理这种想法的改变,而不必从头开始对话)?

在我一直在实现诸如巴士票预订之类的东西的这一部分中,机器人似乎记住了之前的订单,即素食汉堡或某些最终落入默认意图或回退意图,以合适的为准。但我想知道是否有办法让机器人知道用户已经"改变了主意"(希望可以使用或操纵上下文)并且现在想要一个非素食汉堡?

我们能否制定出一个后续意图,识别诸如 Sorry 之类的词,然后识别诸如类型之类的实体,即这里的非素食。最佳实践是什么?因为从用户体验的角度来看,从头开始对话似乎不是一个好主意。

美好的一天 TGW,

您有 2 个选项,要么将意图拆分为搜索意图和预订意图,例如搜索.沙拉和购买.沙拉意图,要么在实际发送到 Fulfilm 之前有一个确认步骤。

如果您选择将意图拆分为 2 个,那么类似的流程应该适合您:

  1. 如果食物类型有限,则创建一个带有选项的实体。
  2. 添加您的搜索沙拉意图,该意图应包含用户订购沙拉时所说的大部分内容。请记住从步骤 1 中对实体进行内切。
  3. 将后续意图添加到您的搜索.salad意图中,然后从选项中选择自定义
  4. 在这个新创建的后续意图中添加用户你想用来更新搜索,启用履行和保存。

注意:确保新创建的意图在上下文中以 *-followup 结尾,并且在 search.salad 意图的外部上下文中具有相同的意图。对话流将根据用户输入的内容自动更新参数。

第二个选项与此类似,您可以将确认步骤添加为 search.salad 意图的后续操作,并仅在确认意图上启用履行。

最新更新