场景:
我有一个用于提供语音调查的谷歌操作。它由 dialogflow ES 控制,有两个主要意图。欢迎意图和后备意图。欢迎意图用于检测用户想要打开的调查的名称,并将其存储在名为“ surveyname ”的参数中。然后将“ Surveyname ”传递给我们的 webhook,在该 webhook 中打开调查,欢迎用户,并询问初始问题。所有其他后续交互都由回退 Intent 获取,该 Intent 调用我们的 Webhook,该 Webhook 控制调查流程并为 google 操作提供后续问题。随后的交互可以包括任何短语,因为我可以进行调查,询问任何主题的任何问题。
问题:
直到最近,我的谷歌操作都运行良好。但是我遇到了一个问题,谷歌助手应用程序有时会强行退出操作并退出对话。例如,用户可能输入“yoga”,Google 助理将离开对话并在 Google 上搜索瑜伽。当我在操作控制台的“测试”页面中测试这个短语时,我看不到请求或响应正文,只有“调用错误”。随着消息“您无法在模拟器中使用标准的 Google 助理功能。如果您想尝试它们,请在您的手机或其他兼容设备上使用 Google 助理。 ”当我在“立即尝试”中进行测试时" Dialogflow ES 本身中的框,我可以看到正确的回退意图、webhook 请求和响应。但我看不到 Dialogflow ES 的“历史记录”选项卡中的 Google Assistant 应用程序中所说的短语;看起来它从来没有做到了这一点。这表明问题出在 Google 助理或操作本身,而不是 Dialogflow。
当前(不太理想)的解决方法:
我知道后备意图的优先级低于常规意图。我相信后备意图和 Google 的隐式调用之间存在内部争斗。我目前的临时解决方案是创建一个名为 ActiveSurvey 的新意图,并希望通过这个自定义意图捕获一些被回退意图遗漏的输入短语。这似乎有点工作,但我不能希望以这种方式捕获所有输入,因为用户可以完全按照字面意思说任何东西。考虑到它曾经有效,在我看来,这不应该是必要的。
问题:
为什么现在发生了这种情况?
是否有一些我缺少的设置导致这种情况发生?
还是动作设计不正确?
非常感谢您的任何帮助。