Dialogflow es 如何重置参数值,以便代理可以再次请求参数?

Dialogflow es 如何重置参数值,以便代理可以再次请求参数?,dialogflow-es,Dialogflow Es,我已经创建了一个dialogflow代理和其中的多个意图。一个这样的意图需要两个参数:账户和余额类型。 然后,它发送webhook请求,并在其中写入代码,以检查数据库中是否存在帐号。如果它这样做了,它将获取余额并发送回用户。 现在,如果账号不存在,我必须要求用户再次输入账号(值为“account”)。你对我如何实现这一目标有什么想法吗?你需要在这里利用上下文。如果先收集帐户参数,则可以按如下方式继续: 为webhook启用插槽填充(可选)。这将在您提供帐号后立即触发webhook意图,您可以在

我已经创建了一个dialogflow代理和其中的多个意图。一个这样的意图需要两个参数:账户和余额类型。 然后,它发送webhook请求,并在其中写入代码,以检查数据库中是否存在帐号。如果它这样做了,它将获取余额并发送回用户。
现在,如果账号不存在,我必须要求用户再次输入账号(值为“account”)。你对我如何实现这一目标有什么想法吗?

你需要在这里利用上下文。如果先收集帐户参数,则可以按如下方式继续:

  • 为webhook启用插槽填充(可选)。这将在您提供帐号后立即触发webhook意图,您可以在请求帐号类型之前验证它
  • 如果不启用插槽填充,您将收集这两个参数,并移动到webhook中的意图处理程序代码
  • 确保不要在Dialogflow中设置输出上下文,因为您将从webhook进行设置
  • 如果帐户有效-通过设置下一个意图的上下文继续
  • 如果无效,请将输出上下文设置为与使用寿命相同的输入上下文,例如2(用于2次对话交互),并要求用户提供正确的帐号
  • 当用户再次说出帐号时,将有相同的上下文和相同的用户语音
如果在余额类型之后收集帐户参数,则可以继续使用上述方法,但在这种情况下,即使用户正确提供了余额类型,也会一次又一次地收集余额类型。最好将account参数移动到单独的account意图

  • 在对话框Flow中为平衡意图设置输出上下文,例如“get_account”寿命=2
  • 将帐户意图的输入上下文设置为“get_account”
  • 当提供account参数并触发webhook时,验证它
  • 如果有效-为下一个目的继续设置上下文
  • 如果无效,请将上下文设置为“get_account”寿命=2,并要求再次提供帐号

因此,通过使用上下文,您可以验证参数并重新提示用户输入正确的格式。

谢谢!我知道我也想到了同样的方法并尝试过,但我认为代码需要一些时间才能正确反映。所以,一旦你也提到了同样的方法,我再次尝试,并在几次尝试后工作。再次感谢:)