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

时间:2018-08-09 14:30:59

标签: dialogflow

我创建了一个dialogflow代理,并在其中创建了多个意图。一种这样的意图要求两个参数:account和balance_type。 然后,它将Webhook请求发送到写入代码的位置,以检查数据库中是否存在该帐号。如果这样做,它将获取余额并发回给用户。 现在,如果帐号不存在,我必须要求用户再次输入帐号(“ account”的值)。关于如何实现它有任何想法吗?

1 个答案:

答案 0 :(得分:0)

您将需要在此处使用上下文。如果首先收集了帐户参数,则可以像下面这样继续:

  • 启用用于Webhook的插槽填充(可选)。提供帐号后,这将触发webhook意图,您可以在询问帐号类型之前对其进行验证。
  • 如果不启用插槽填充,则将收集两个参数并移至Webhook中的意图处理程序代码。
  • 请确保不要在Dialogflow中设置输出上下文,因为您将通过webhook对其进行设置。
  • 如果该帐户有效-继续设置下一个意图的上下文
  • 如果无效,则将输出上下文设置为与您的意图的输入上下文相同,并使用生命周期说2(用于2次对话交互),并要求用户提供正确的帐号。
  • 当用户再次说出帐号时,将会有相同的上下文和相同的用户讲话。

如果要在余额类型之后收集帐户参数,则可以继续上述方法,但是在这种情况下,即使用户正确提供了余额,也将一次又一次地收集余额类型。最好将帐户参数移到单独的帐户意图中。

  • 在Dialogflow中为平衡目的设置输出上下文,例如“ get_account” lifespan = 2
  • 将帐户意图的输入上下文设置为“ get_account”
  • 提供帐户参数并触发webhook时,请进行验证
  • 如果有效-继续为下一个意图设置上下文
  • 如果无效,请将上下文设置为“ get_account” lifespan = 2,然后要求再次提供帐号。

这样,通过播放上下文,您可以验证参数并重新提示用户正确的格式。