所以我一直在通过操作试验DialogFlow的不同响应类型:Actions Responses和Webhook / Fulfillment。
到目前为止,我已经能够成功地为List,Basic Card,Suggestion Chips等类型生成适当的响应。我现在需要的是一个基于列表的响应,让用户在触摸时打开浏览器中的链接以及“不”生成聊天气泡。 “浏览轮播”符合条件:Browsing Carousel。
我已成功创建并模拟了2个样本项的输出。问题是当用户想要继续对话时。根据上面帮助中的指导部分,浏览轮播:
默认情况下,麦克风在发送浏览轮播后仍保持关闭状态。如果您想继续谈话,我们强烈建议您在转盘下方添加建议筹码。
据我所知,用户必须通过说“Ok Google,与[app]对话”再次调用应用程序。这似乎不是非常用户友好的,因为用户希望在查看来自轮播的链接之后返回到她与代理进行的对话。 请注意,我已在Console.Actions页面上使用Google Actions Simulator模拟了流程。
只要我使用浏览轮播调用意图,就会向我显示示例项目。但是当我输入/说出下一个继续对话的命令时,代理只返回:
我们很抱歉,但出了点问题。请再试一次。
REQUEST / REQUEST窗口以及ERRORS / DEBUG为空。我已经记录了对Webhook的呼叫,但没有收到任何呼叫。
问题:是否有办法让用户能够从响应“列表”(不是基本卡)中浏览信息性链接,并在不结束的情况下返回对话。
以下是操作>中来自RESPONSE窗口的浏览轮播的响应。模拟器(注意我已删除不相关的部分):
{
"conversationToken": "[token info]",
"expectUserResponse": true,
"expectedInputs": [
{
"inputPrompt": {
"richInitialPrompt": {
"items": [
{
"simpleResponse": {
"textToSpeech": "You have the following 2 options:",
"displayText": "You have the following 2 options:"
}
},
{
"carouselBrowse": {
"items": [
{
"title": "Test 1",
"description": "Desc 2",
"image": {
"url": "[some url]"
},
"openUrlAction": {
"url": "[some url]"
}
},
{
"title": "Test 2",
"description": "Desc 2",
"image": {
"url": "[some url]"
},
"openUrlAction": {
"url": "[some url]"
}
}
]
}
}
],
"suggestions": [
{
"title": "Continue"
},
{
"title": "End"
}
]
}
}
}
],
"responseMetadata": {
"status": {
"message": "Success (200)"
},
"queryMatchInfo": {
"queryMatched": true
}
}
}
答案 0 :(得分:0)
对于所有使用模拟器测试浏览轮播并且在输出后看到它停止响应的人,请使用设备来测试它。当您使用设备渲染输出并使用Carousel响应时,它不会终止对话但会关闭麦克风。这是预期的行为。可以引入Suggestion芯片来帮助用户继续对话。
已更新:还要确保每个Webhook Intent调用都具有Simple Response的正确响应。只要响应需要正确设置文本和音频信息,模拟器就不会失败。