Dialogflow es Dialogflow-捕获所需参数(实体)时触发其他意图

Dialogflow es Dialogflow-捕获所需参数(实体)时触发其他意图,dialogflow-es,Dialogflow Es,我已经创建了两个意图 意图1: 训练阶段=1)天空是蓝色的输入上下文=空 输出上下文=空 意图2: 培训阶段=1)提出事件(等)所需参数= 1) param-A(实体;值=橙色、西瓜、芒果)输入上下文= 空输出上下文=“RaiseIncident” 模拟步骤: 1.用户输入“引发事件”。 2.将触发意图2并提示输入参数A。 3.天空中的用户密钥是蓝色的 4.Dialogflow停止捕获参数A并返回意向1中的响应。 以下是我的问题: 是否有办法继续捕获参数A,直到输入正确的输入(橙色、西瓜、芒果)

我已经创建了两个意图

意图1:

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

意图2:

培训阶段=1)提出事件(等)
所需参数= 1) param-A(实体;值=橙色、西瓜、芒果)
输入上下文= 空
输出上下文=“RaiseIncident”

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

以下是我的问题:


是否有办法继续捕获参数A,直到输入正确的输入(橙色、西瓜、芒果)而不是触发其他意图?或者这是Dialogflow的标准行为?

这是标准行为,有很好的理由

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

如果用户不知道可能的事件类型,您会怎么做?也许你会给他们一个意图,让他们可以说“帮助”或“有哪些类型?”或类似的话。但如果它只接受有效的事件类型,那么它将继续拒绝帮助请求。因此,在您的情景下,对话可能听起来像

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中所需的参数似乎是一件好事,但在许多情况下,它并不能很好地工作。最好是将其设置为可选参数,这样,如果他们事先告诉您,您就可以捕获它,但如果缺少所需的值,请提示输入它们,并设置上下文,以便您在录制时提示输入内容。然后,您将能够添加上下文相关的帮助或回退处理。

这是标准行为,有很好的理由

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

如果用户不知道可能的事件类型,您会怎么做?也许你会给他们一个意图,让他们可以说“帮助”或“有哪些类型?”或类似的话。但如果它只接受有效的事件类型,那么它将继续拒绝帮助请求。因此,在您的情景下,对话可能听起来像

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中所需的参数似乎是一件好事,但在许多情况下,它并不能很好地工作。最好是将其设置为可选参数,这样,如果他们事先告诉您,您就可以捕获它,但如果缺少所需的值,请提示输入它们,并设置上下文,以便您在录制时提示输入内容。然后,您将能够添加上下文相关的帮助或回退处理