在 Dialogflow 中验证用户输入

Validate an user input in Dialogflow

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

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

这是 Configure fulfillment 上的文档。我的建议是研究这个领域。当调用 fulfillment 时您的响应完全取决于您自己的处理,而不是 "static" 响应,否则会在不使用 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,在逻辑中如果 数字是 smaller/bigger 你在输出上下文中设置它并回复 用户。

希望对您有所帮助。