仅使用Dialogflow对助手列表中的选项提供不同的响应?

时间:2018-08-01 11:59:29

标签: actions-on-google dialogflow

我打算使用“助手列表”,其中包含两个选项:苹果和奶酪。我想对所选的每个选项提供不同的答复。

我的第一个尝试是对每个项目使用后续意图,但是当我这样做时,点击/选择项目时会收到​​“无法理解”的消息。在阅读更多内容时,我了解到这是因为SELECT PolicyNumber,BOCBranch,CIFNumber,EmployeeNumber=NULL,PremiumSign=NULL,RegistrationDate=NULL,ActivityCode=NULL,ActivityDescription=NULL,PolicyTypeCode=NULL,PolicyTypeDescription=NULL,ContributionCode=NULL FROM TABLENAME 事件已被触发,并且没有处理它的意图。

我的第二个尝试是将actions_intent_OPTION事件处理程序添加到我的每个后续意图中。当我这样做时,每次仅调用Cheese意图。我了解这是因为actions_intent_OPTION只能由单个意图处理。

所以我的结论是,我可以对助手列表中的不同项目提供不同响应的唯一方法是使用Webhook处理此事件,并且无法单独使用Dialogflow。谁能确认或指出我正确的方向?

2 个答案:

答案 0 :(得分:1)

怀疑的答案是,您不能仅在Dialogflow中使用助手列表,而必须在实现中添加一个处理程序函数,该函数会在事件actions_intent_OPTION上触发。例如:

const option = conv.arguments.get('OPTION'); if (!option) { conv.ask('No choice made'); } else if (option === 'optionA') { // Do something } else if (option === 'optionB') { // Do something else }

答案 1 :(得分:0)

遵循理想的方法:

  • 删除后续意图
  • 添加事件设置为actions_intent_OPTION的新意图
  • 为新的意图启用webhook
  • 在Webhook中提取所选选项
  • 根据所选选项,传递所需的响应

如果您只想使用Dialogflow,那就行不通了!这是因为,当您选择一个选项时,输出上下文和生成的事件都将与2个意图相同-奶酪和苹果。 AI引擎将无法决定应触发哪个Intent。不管是哪种意图,每次都会调用它。

我试图重新创建Dialogflow所做的一切,甚至将奶酪和苹果作为这两种意图的训练用语,只是为了给AI引擎提供一些区别,但它仍然只选择了一种意图。