处理“取消插槽填充对话框”

时间:2019-01-29 11:04:33

标签: dialogflow dialogflow-fulfillment

我正在构建一个包含“插槽填充”方法的机器人,并且一旦向机器人输入退出短语,就希望从Webhook提供丰富的消息。

我正在构建一个包含“插槽填充”方法的机器人。我在文档https://dialogflow.com/docs/concepts/slot-filling#canceling_slot_filling_dialog

中遇到了“取消插槽填充对话框”

在尝试的同时,我发现不仅文档中提到的话语,还有更多类似的退出短语。例如:没事,中止。

我找不到用于配置/更改此行为的任何意图/设置。

  1. 有没有办法找出所有退出短语?
  2. 有没有办法更改用户说出退出短语时显示的输出消息?
  3. 在用户说出退出短语以提供自定义的丰富响应之后,我们可以连接网络吗?

Attached is the response I get when I say an exit phrase to bot while slot filling

1 个答案:

答案 0 :(得分:0)

据我所知,没有内置的方法可以执行此操作,但是您可以使用3来达到2的目的。我假设您熟悉Dialogflow webhook请求和响应的一般工作方式。如果没有,请参见here

它基本上可以归结为检查Dialogflow是否要使用其库存取消短语之一进行响应,然后用您自己的一个替换短语。

确保打开“启用Webhook呼叫以填充插槽”功能。当用户键入一个插槽填充退出短语时,Dialogflow发送的webhook JSON仍将与您使用的intent.name属性相同。因此,您可以在switch语句中捕获该意图。

然后在其中,您可以简单地使用“ if”语句来检查webhook请求的“ FulfillmentText”属性,并查看其是否为Dialogflow用于响应取消的常用短语,例如“确定,取消”,或“没问题,请取消”。我不知道有多少,但是我认为没有太多,您必须进行测试才能找到所有的东西。

如果是这些短语中的任何一个,则可以通过将对Webhook的响应以及您自己的FulfillmentText设置为所需的内容返回给Webhook,来更改Dialogflow对用户的说明(请参阅上面的链接,了解JSON响应的方式结构化)。

这种方法并不十分理想,因为Dialogflow使用的股票退出响应可能会更改,并且很难知道是否全部找到了,但是在Dialogflow变得更加灵活之前,这应该是一种解决方法。

也复制我对问题1的评论,因为它似乎可行(感谢输入错误的修正):

我怀疑取消短语的列表与预建的smalltalk代理的“取消”意图中的列表相同。要找到此文件,请转到“预建代理->闲聊->导入”。然后导航到该代理并找到意图“ smalltalk.confirmation.cancel”以查看短语列表。

希望这会有所帮助。