【发布时间】:2019-05-14 01:21:34
【问题描述】:
有一些方法可以通过 webhook 或意图来验证用户输入并再次请求它,例如询问用户一个从 1 到 10 的数字,如果用户输入一个更大或更小的数字,请他输入另一个直到这个范围内的这个数字?
【问题讨论】:
标签: dialogflow-es dialogflow-es-fulfillment
有一些方法可以通过 webhook 或意图来验证用户输入并再次请求它,例如询问用户一个从 1 到 10 的数字,如果用户输入一个更大或更小的数字,请他输入另一个直到这个范围内的这个数字?
【问题讨论】:
标签: dialogflow-es dialogflow-es-fulfillment
在设计 Dialogflow 对话时,需要研究意图的概念。当一个意图匹配时,这可以调用一个称为实现的组件,该组件传递用户提供的信息。例如,如果用户说“将值设置为 7”,那么这将(可能)匹配到名为“set_value”且实体参数值为“7”的意图。然后,您编写的履行逻辑将接收此数据并对其进行处理。根据提供的数据,它可以检测到参数(一个数字)超出范围,并可以动态响应指示该数字无效并要求用户重试。
这是Configure fulfillment 上的文档。我的建议是研究这个领域。您在调用实现时响应的内容完全取决于您自己的处理,而不是在不使用实现的情况下会发生的“静态”响应。
【讨论】:
假设意图名称是 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,在逻辑中如果
数字更小/更大,您在输出上下文中设置并回复
用户。
希望对你有帮助。
【讨论】: