处理 "cancelling slot filling dialog"
Handling "cancelling slot filling dialog"
我正在构建一个包含 Slot Filling 方法的机器人,我想在向机器人输入退出短语后从 webhook 提供丰富的消息。
我正在构建一个包含插槽填充方法的机器人。我在 link https://dialogflow.com/docs/concepts/slot-filling#canceling_slot_filling_dialog
的文档中遇到了 "cancelling slot filling dialog"
在尝试的过程中,我发现不仅文档中提到的话语,还有更多类似的退出短语。例如:什么都没有,中止。
我找不到任何 intent/settings 到 configure/change 这种行为。
- 有没有办法找出所有的退出短语?
- 有没有办法更改用户说出退出短语时显示的输出消息?
- 我们可以在用户说出退出短语以提供自定义丰富响应后连接到 webhook 吗?
Attached is the response I get when I say an exit phrase to bot while slot filling
据我所知,没有内置的方法可以做到这一点,但是有一种 hacky 方法可以使用 3 来实现 2。我假设您熟悉 Dialogflow webhook 请求和响应的一般工作方式.如果没有,请参阅here。
基本上可以归结为检查 Dialogflow 是否将使用其库存取消短语之一进行响应,然后将其替换为您自己的短语。
确保 "enable webhook call for slot filling" 已开启。当用户键入槽填充退出短语时,Dialogflow 发送的 Webhook JSON 仍将具有与您正在使用的意图相同的 intent.name 属性。因此,您可以在 switch 语句中捕捉到该意图。
然后在其中您可以简单地使用 'if' 语句来检查 Webhook 请求的 "FulfillmentText" 属性 并查看它是否是 Dialogflow 用于响应的任何常用短语取消,例如 "Sure, cancelling" 或 "No problem, cancelling"。我不知道有多少,但我认为不会太多,您必须进行测试才能找到所有这些。
如果是这些短语中的任何一个,您可以通过返回对 webhook 的响应来更改 Dialogflow 对用户说的话,并将您自己的 FulfillmentText 设置为您想要的任何内容(请参阅上面的 link JSON 响应应该如何构建。
此方法并不十分理想,因为 Dialogflow 使用的库存退出响应可能会发生变化,并且很难知道您是否已找到所有这些响应,但在 Dialogflow 变得更加灵活之前,它应该是一种解决方法。
同时复制我之前对问题 1 的评论,因为它似乎有效(感谢错字更正):
我怀疑取消短语列表与预构建 smalltalk 代理的 "cancel" 意图中找到的列表相同。要找到它,请转到 Prebuilt Agents -> Small Talk -> Import。然后导航到该代理并找到意图 "smalltalk.confirmation.cancel" 以查看短语列表。
希望对您有所帮助。
我正在构建一个包含 Slot Filling 方法的机器人,我想在向机器人输入退出短语后从 webhook 提供丰富的消息。
我正在构建一个包含插槽填充方法的机器人。我在 link https://dialogflow.com/docs/concepts/slot-filling#canceling_slot_filling_dialog
的文档中遇到了 "cancelling slot filling dialog"在尝试的过程中,我发现不仅文档中提到的话语,还有更多类似的退出短语。例如:什么都没有,中止。
我找不到任何 intent/settings 到 configure/change 这种行为。
- 有没有办法找出所有的退出短语?
- 有没有办法更改用户说出退出短语时显示的输出消息?
- 我们可以在用户说出退出短语以提供自定义丰富响应后连接到 webhook 吗?
Attached is the response I get when I say an exit phrase to bot while slot filling
据我所知,没有内置的方法可以做到这一点,但是有一种 hacky 方法可以使用 3 来实现 2。我假设您熟悉 Dialogflow webhook 请求和响应的一般工作方式.如果没有,请参阅here。
基本上可以归结为检查 Dialogflow 是否将使用其库存取消短语之一进行响应,然后将其替换为您自己的短语。
确保 "enable webhook call for slot filling" 已开启。当用户键入槽填充退出短语时,Dialogflow 发送的 Webhook JSON 仍将具有与您正在使用的意图相同的 intent.name 属性。因此,您可以在 switch 语句中捕捉到该意图。
然后在其中您可以简单地使用 'if' 语句来检查 Webhook 请求的 "FulfillmentText" 属性 并查看它是否是 Dialogflow 用于响应的任何常用短语取消,例如 "Sure, cancelling" 或 "No problem, cancelling"。我不知道有多少,但我认为不会太多,您必须进行测试才能找到所有这些。
如果是这些短语中的任何一个,您可以通过返回对 webhook 的响应来更改 Dialogflow 对用户说的话,并将您自己的 FulfillmentText 设置为您想要的任何内容(请参阅上面的 link JSON 响应应该如何构建。
此方法并不十分理想,因为 Dialogflow 使用的库存退出响应可能会发生变化,并且很难知道您是否已找到所有这些响应,但在 Dialogflow 变得更加灵活之前,它应该是一种解决方法。
同时复制我之前对问题 1 的评论,因为它似乎有效(感谢错字更正):
我怀疑取消短语列表与预构建 smalltalk 代理的 "cancel" 意图中找到的列表相同。要找到它,请转到 Prebuilt Agents -> Small Talk -> Import。然后导航到该代理并找到意图 "smalltalk.confirmation.cancel" 以查看短语列表。
希望对您有所帮助。