在 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 你在输出上下文中设置它并回复
用户。
希望对您有所帮助。
有一些方法可以通过 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 你在输出上下文中设置它并回复 用户。
希望对您有所帮助。