【问题标题】:Validate an user input in Dialogflow在 Dialogflow 中验证用户输入
【发布时间】:2019-05-14 01:21:34
【问题描述】:

有一些方法可以通过 webhook 或意图来验证用户输入并再次请求它,例如询问用户一个从 1 到 10 的数字,如果用户输入一个更大或更小的数字,请他输入另一个直到这个范围内的这个数字?

【问题讨论】:

    标签: dialogflow-es dialogflow-es-fulfillment


    【解决方案1】:

    在设计 Dialogflow 对话时,需要研究意图的概念。当一个意图匹配时,这可以调用一个称为实现的组件,该组件传递用户提供的信息。例如,如果用户说“将值设置为 7”,那么这将(可能)匹配到名为“set_value”且实体参数值为“7”的意图。然后,您编写的履行逻辑将接收此数据并对其进行处理。根据提供的数据,它可以检测到参数(一个数字)超出范围,并可以动态响应指示该数字无效并要求用户重试。

    这是Configure fulfillment 上的文档。我的建议是研究这个领域。您在调用实现时响应的内容完全取决于您自己的处理,而不是在不使用实现的情况下会发生的“静态”响应。

    【讨论】:

      【解决方案2】:

      假设意图名称是 ask_number,它向用户询问一个从 1 到 10 的数字。

      可以通过以下几种方式实现:

      • 如果意图ask_number 定义了一些输入上下文 已经,那么您需要再次将该上下文设置为output_context 并回复you have entered a smaller/bigger number, please enter again之类的内容。

      • 如果意图没有任何输入上下文,那么您可以简单地 回复you have entered a smaller/bigger number, please enter again 你的意图也应该能够捕捉到这一点。但这也可能导致问题。

      • 我建议有另一个意图 ask_number_followup 带有input_context number_validation_failed,在逻辑中如果 数字更小/更大,您在输出上下文中设置并回复 用户。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-11
        相关资源
        最近更新 更多