首页 > 解决方案 > Dialogflow - 在捕获所需参数(实体)时触发其他意图

问题描述

我创建了 2 个意图。

意图1:

训练阶段 = 1) 天空是蓝色的
输入上下文 = 空
输出上下文 = 空

意图2:

训练阶段 = 1) 引发事件(等)
所需参数 = 1) 参数-A(实体;值 = 橙色、西瓜、芒果)
输入上下文 = 空
输出上下文 = "RaiseIncident"

模拟步骤:
1. 用户键入“引发事件”。
2. Intent 2 将被触发并提示输入 param-A。
3. 天空中的用户键是蓝色的
4. Dialogflow 停止捕获 param-A 并返回意图 1 中的响应。

这是我的问题:

有什么方法可以继续捕获 param-A,直到输入正确的输入(橙色、西瓜、芒果)而不是触发其他意图?或者这是 Dialogflow 的标准行为?

标签: dialogflow-es

解决方案


这是标准行为,并且有充分的理由。

假设您有描述它的“引发事件”意图,并且所需的参数是事件类型。所以如果不提供,它会提示:“什么是事件类型?”

U: Open an incident
B: What is the incident type?

如果用户不知道可能的事件类型是什么,你会怎么做?也许你会给他们一个 Intent,他们可以说“帮助”或“有哪些类型?” 或等价物。但如果它只接受有效的事件类型,那么它将继续拒绝帮助请求。所以在你的场景下,谈话可能听起来像

U: Open an incident
B: What is the incident type?
U: Green
B: What is the incident type?
U: Help
B: What is the incident type?

但是由于您可以创建“帮助”意图,因此您可以提供该信息,他们可以重新触发该意图以引发事件。

U: Open an incident
B: What is the incident type?
U: Help
B: You can open mango or apple incident types. What would you like to do?
U: Open a mango incident

虽然 Dialogflow 中的必需参数似乎是一件好事,但在许多情况下它并不能很好地工作。最好将其设为可选参数,因此如果他们预先告诉您,您可以捕获它,但如果您需要的值丢失 - 提示它们并设置 Context 以便您录制您正在提示的内容。然后,您将能够添加上下文相关帮助或回退处理。


推荐阅读