我已经创建了2个意图。
意图1:
训练阶段= 1)天空是蓝色
输入上下文=空
输出上下文=空
意图2:
培训阶段= 1)引发事件(等等)
所需参数= 1)param-A(实体;值=橙色,西瓜,芒果)
输入上下文= 空
输出上下文=“ RaiseIncident”
模拟步骤:
1.在“引发事件”中输入用户密码。
2. Intent 2将被触发并提示输入参数A。
3.天空中的用户密钥为蓝色
4. Dialogflow停止捕获param-A并返回意图1中的响应。
这是我的问题:
在输入正确的输入(橙色,西瓜,芒果)之前,是否有任何方法可以继续捕获param -A而不是触发其他意图?还是这是Dialogflow的标准行为?
答案 0 :(得分:0)
这是标准行为,并且有充分的理由。
假设您具有描述事件的“引发事件”意图,并且必需的参数用于事件类型。因此,如果未提供,则会提示:“事件类型是什么?”
U: Open an incident
B: What is the incident type?
如果用户不知道可能的事件类型是什么,该怎么办?也许您会给他们一个意图,让他们可以说“帮助”或“那里有什么类型?”或同等学历。但是,如果它仅接受有效的事件类型,那么它将继续拒绝帮助请求。因此,在您的情况下,对话听起来可能像
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中所需的参数看起来不错,但在许多情况下并不能很好地工作。最好将其设置为可选参数,以便在他们事先告诉您时将其捕获,但是如果缺少所需的值-提示输入并设置上下文,以便在记录时提示您输入某些内容。然后,您将能够添加上下文相关的帮助或后备处理。