如何使用对话流程创建搜索表单

时间:2018-11-20 04:51:08

标签: dialogflow

我正在尝试使用dialogflow来创建搜索算法,该算法可以将名字,地址,电话号码,邮政编码或城市的任意组合作为搜索算法的输入。用户不需要所有这些,但是我们将使用每个其他答案来优化搜索,直到只有一个结果为止。基本上,我们试图确定正在与哪个客户交谈。

应如何构造这种类型的意图(或一组意图)?我们已经尝试了一种具有多个参数的意图,但是我们并不需要全部。我们还编写了一个实现功能的JavaScript函数,但是如何与对话流进行交流,以了解是否需要更多信息?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

Slot filling是为此目的而设计的。

希望有帮助。

请发布更多代码/详细信息,以使答案更具体。

答案 1 :(得分:2)

首先,请记住,意图反映的是用户的意思,而不是通常的答复内容或所需的其他信息。插槽填充有时会违反此规则,但前提是您有必需的插槽。

因为您不这样做-您需要使用其他方法。

这可以用一个意图完成,尽管您可能会发现多个意图使它在某些方面变得更容易。方法大致相同:

  • 提出问题时,请确保设置了使用时间相对较短(2-3为好)的“传出上下文”以表明您正在收集用户信息。
  • 创建一个具有样本短语的Intent(或多个Intent),以捕获您所需的信息。
    • 其中一些将具有明显的实体类型(电话号码和邮政编码),而另一些则更加困难(名字具有系统实体类型,但不包括所有可能的名字)。
    • 您将需要创建示例短语,这些示例短语可以自己收集参数以及有意义的短语。您是对此的最佳判断,在编写短语之前,您可能应该写一些示例对话。
  • 在满足时,您会弄清楚是否有足够的信息。
    • 如果您这样做,则可以答复并清除设置的上下文。 (清除它很重要,因此Dialogflow不再与收集Intent的信息匹配。)
    • 如果不这样做,则可以将所拥有的信息作为参数添加到Context中,以便可以将其保存以供以后处理,请确保重置Context寿命(这样它不会过期),并提示用户输入附加信息。同样,提前进行对话模拟会有所帮助。