如何在Dialogflow中为任何给定的意图实现“改变主意”能力到机器人或对话中?

时间:2018-04-10 05:20:30

标签: nlp chatbot dialogflow

考虑用户想订餐的场景:

用户:我想点1个汉堡1个橙汁和一杯咖啡

Bot:你想要一个蔬菜汉堡或一个非蔬菜吗?

用户:蔬菜汉堡

用户:抱歉,我希望非蔬菜

Bot :(一般来说,如果不必从头开始谈话,我们将如何处理这种改变?)

在这个我已经实施过类似公交车票预订的部分,这个机器人似乎记得以前的veg-burger订单或者一些最终落在默认意图或后备意图上的适当的选择。但是我想知道是否有办法让机器人知道用户已经“改变了主意”(希望有可能使用或操纵上下文)并且现在想要一个非蔬菜汉堡?

我们可以制定一个后续意图来识别像对不起这样的单词,然后是实体,例如类型,即非蔬菜。什么是最佳做法?因为从UX的角度来看,从头开始对话似乎不是一个好主意。

1 个答案:

答案 0 :(得分:1)

美好的一天TGW,

您有2个选项,要么将意图分成搜索意图和预订意图,例如search.salad和buy.salad意图或者您在实际发送给Fulfillment之前有一个确认步骤。

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

  1. 如果食物类型有限,则创建一个带有选项的实体。
  2. 添加您的search.salad意图,该意图应该包含用户在订购沙拉时所说的大部分内容。请记住从第1步开始实体化。
  3. 在search.salad意图中添加后续意图,然后从选项中选择自定义
  4. 在新创建的后续内容中,添加要用于更新搜索,启用履行和保存的用户说
  5. NB:确保新创建的意图具有在In-context中以* -followup结尾的意图,同样的意图位于search.salad意图的Out-context中。 Dialogflow将根据用户输入的内容自动更新参数。

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