我创建了一个对话流代理和其中的多个意图。其中一种意图需要 2 个参数:账户和余额类型。
然后,它发送 Webhook 请求,其中写入代码以检查数据库中是否存在帐号。如果是的话,它会获取余额并发回给用户。
现在,如果帐号不存在,我必须要求用户再次输入帐号(“帐户”的值)。关于如何实现它有什么想法吗?
您需要在这里考虑上下文。如果您的帐户参数首先被收集,您可以继续如下操作:
- 启用 webhook 的槽填充(可选)。一旦您提供帐号,这将触发 Webhook 意图,并且您可以在询问帐户类型之前对其进行验证。
- 如果不启用槽填充,您将收集两个参数并移至 webhook 中的意图处理程序代码。
- 确保不要在 Dialogflow 中设置输出上下文,因为您将从 Webhook 设置它。
- 如果帐户有效 - 继续设置下一个意图的上下文
- 如果无效,请将输出上下文设置为与您的意图的输入上下文相同,生命周期为 2(对于 2 个对话交互)并要求用户提供正确的帐号。
- 当用户再次说出帐号时,将出现相同的上下文和相同的用户语音。
如果您在余额类型之后收集账户参数,那么您可以继续上述方法,但在这种情况下,即使用户正确提供了余额类型,您也将一次又一次地收集余额类型。更好的方法是将帐户参数移至单独的帐户意图。
- 在 Dialogflow 中设置输出上下文以实现平衡意图,例如“get_account”寿命 = 2
- 将帐户意图的输入上下文设置为“get_account”
- 当提供帐户参数并触发 webhook 时,验证它
- 如果有效 - 继续为下一个意图设置上下文
- 如果无效,请将上下文设置为“get_account” lifespan=2 并要求再次提供帐号。
这样,通过使用上下文,您可以验证参数并重新提示用户输入正确的格式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)