dialogflow-es - 如果谷歌操作没有响应,是否重新提示用户?
问题描述
我正在尝试让 reprompts 为我使用 dialogflow SDK 构建的操作工作。
我有一个意图 'answer-question' ,但是如果用户根本没有回复(如果可能的话,在某个时间单位之后),我希望触发一个后备意图。
我已尝试实施本指南中的说明:reprompts google action
所以我为我的回答问题意图创建了一个自定义后备意图,它有一个事件actions_intent_NO_INPUT
和一个上下文answer-question-followup
但是在测试意图时,它将无限期地等待用户响应,并且永远不会触发此自定义回退意图。
解决方案
“无输入”场景仅发生在某些设备上。
扬声器(例如 Google Home)将生成无输入。但是,您无法控制它等待的时间。
移动设备不会产生“无输入”——它只会关闭麦克风,用户需要再次按下麦克风图标才能再次打开麦克风。
使用模拟器进行测试时,不会自动生成“无输入”,但您可以使用文本输入区旁边的按钮生成“无输入”事件。确保您使用的是受支持的设备类型(例如扬声器),然后按图标表示您正在测试“无输入”事件。
最后,确保您的上下文有意义,并记住 Intent 反映的是用户所说或所做的,而不是您正在回复的内容。
尽管您已经为“无输入”事件指定了一个输入上下文,这很好,但您没有指定您还将它设置为前一个 Intent 的输出上下文。鉴于您的描述,它不应该设置在“回答问题”中,因为您不期望用户回答问题后没有输入,而是回答问题。因此,应该为您希望用户回答问题的 Intent 和用户什么都不说的 Intent 设置相同的 Input Context。
推荐阅读
- r - 闪亮如何确定依赖关系
- python-3.x - 无法使用 pyarrow 从目录中读取镶木地板文件
- javascript - MVC:鉴于模型的属性是异步获取的,如何在控制器的构造函数中记录模型属性的值?
- javascript - 呈现动态 HTML 字符串的更好方法是什么?
- amazon-web-services - 公开 aws lambda 以供使用
- php - 使用 PHP 获取第一期前的字符?
- javascript - 如何修复 Redux-React 应用程序中的这些错误?
- django - Django:django.urls.exceptions.NoReverseMatch:没有找到带有参数'('',)'的'update'的反向
- mongodb - Mgo 聚合管道 $not 运算符。未知的顶级运算符
- git - 我可以将多个提交压缩在一起并保留最后一个提交的消息吗?