在 DialogFlow/Actions 中浏览轮播后继续对话

Continue a conversation after Browsing carousel in DialogFlow/Actions

所以我一直在通过操作为 DialogFlow 尝试不同的响应类型:Actions Responses 和 Webhook/Fulfillment。

到目前为止,我已经能够成功地为 List、Basic Card、Suggestion Chips 等类型生成正确的响应。我现在需要的是一个基于列表的响应,它允许用户在触摸时在浏览器中打开 link 以及 "not" 生成聊天气泡。 "Browsing carousel" 符合条件:Browsing Carousel.

我已经成功创建并模拟了 2 个示例项目的输出。问题是用户何时想要继续对话。根据上面帮助中的指导部分,浏览轮播:

By default, the mic remains closed after a browse carousel is sent. If you want to continue the conversation afterwards, we strongly recommend adding suggestion chips below the carousel.

据我了解,用户必须通过说 "Ok Google, talk to [app]" 再次调用应用程序。这似乎对用户不太友好,因为用户希望 return 在她从轮播中查看 link 后回到她与代理的对话。 请注意,我在 Console.Actions 页面上使用 Google 动作模拟器模拟了流程。

只要我通过浏览轮播调用意图,它就会与示例项目一起显示给我。但是当我 enter/say 继续对话的下一个命令时,代理只是 returns with:

We're sorry, but something went wrong. Please try again.

REQUEST/REQUEST window 和 ERRORS/DEBUG 都是空的。我已记录对 Webhook 的调用,但没有收到任何调用。

问题:有没有办法让用户能够从响应"list"(不是基本卡)中浏览信息link并 return 继续对话而不结束它。

这是 Actions > Simulator 中 RESPONSE window 对 Browsing Carousel 的响应(注意我已经删除了不相关的部分):

{
  "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
    }
  }
}

对于所有使用模拟器测试浏览轮播并看到它在输出后停止响应的人,请改用设备进行测试。当您使用设备呈现输出并使用 Carousel 响应时,它不会终止对话但会关闭麦克风。这是预期的行为。可以引入建议芯片来帮助用户继续对话。

已更新:还要确保每个 Webhook Intent 调用都有正确的简单响应响应。只要正确设置响应要求的文本和音频信息,模拟器就不会失败。