【问题标题】:How to reset a parameter value so agent can ask for the parameter again?如何重置参数值以便代理可以再次请求参数?
【发布时间】:2018-09-25 23:22:59
【问题描述】:

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

【问题讨论】:

    标签: dialogflow-es


    【解决方案1】:

    您需要在此处使用上下文。如果首先收集您的帐户参数,您可以继续如下操作:

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

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

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

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

    【讨论】:

    • 谢谢!知道我也有同样的想法并尝试过,但我认为代码需要一些时间才能正确反映。因此,一旦您也提到了相同的方式,我再次尝试并在几次尝试后工作。再次感谢:)
    猜你喜欢
    • 2019-09-12
    • 2021-10-19
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 2020-09-17
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多