DialogFlow-调用意图而无需训练短语并保存响应

时间:2019-03-18 19:32:07

标签: dialogflow actions-on-google

我正在尝试使用DialogFlow在Actions中构建一个基本的“问题/答案”应用程序。现在,我有两个意图:

意图1:用户说“问我一个问题”,意图回答“告诉我你自己”

意图2:我想捕捉用户对“告诉我自己的看法”的反馈,但是坦率地说,没有办法写出足够的训练短语来掩盖它。

我尝试跟随this suggestion,并让Intent 1发送一个称为class MOCForm(forms.ModelForm): # your class definition as above def clean(self): if '_draft' in self.data: # skip check else: # clean data 的输出上下文,而Intent 2则具有一个save_response的输入上下文。然后,对于训练短语,我使用了save_response

当我尝试此操作时,它每次仅调用默认的后备意图。关于我可能在哪里出错的想法?​​

2 个答案:

答案 0 :(得分:3)

您需要创建2个意图,在第一个意图中,您的训练短语是Ask me a question,输出上下文将是save_response,响应是您要向用户提出的问题。

然后在意图2中,您需要执行以下操作:

  • 将输入上下文设置为save_response,以便仅将 在上下文中出现
  • 时触发

context

  • 转到“操作和参数”部分,并创建一个名为 answer,将实体类型指定为@sys.any

parameter

  • 然后转到“训练短语”部分并添加任何训练短语,然后 突出显示所有内容,然后选择您刚刚创建的参数

training phrase

  • 之后,您的训练短语和实体部分将在 就像下面的图片一样

post selection

  • 保存意图,您就完成了

result-1 result-2

希望有帮助。

答案 1 :(得分:0)

通常,只有包含@sys.any 的训练短语的Intent可能并不总是如您所愿。

最好设置一个具有输入上下文设置的后备意图,以确保仅捕获处于该状态(在您的情况下为save_response)的事物,然后使用在实现中捕获的全文。 / p>

以这种方式进行操作时,您不需要描述的“意图2”,或者,这将是您在Dialogflow UI中创建的后备意图。如果没有其他意图与用户所说的相符,则触发回退意图。

要创建后备意图,请选择Dialogflow用户界面右上方的三个点

enter image description here

然后选择“创建后备意图”

enter image description here

“后备意图”编辑器与普通“意图”编辑器非常相似。最大的区别是您输入的短语(并且您无需输入任何短语)将明确与该Intent匹配,并且没有参数。其他方面(名称,传入上下文,启用状态)相同。

enter image description here