DialogFlow,Google 助理响应和检测意图 API

DialogFlow , Google Assistant responses and Detect Intent API

我想使用 DialogFlow (DF) 代理,以便它与网站集成。因此,我打算使用检测意图 API。

在 DF 代理中,我注意到如果我只使用 DF 默认响应,它们只是基于文本的响应。或者,如果我想使用媒体丰富的响应,那么我会使用 Google 助手响应,而 JSON 代理输出根本不同,(因为当你使用建议芯片之类的东西时,它们有不同的 JSON).

我的问题是使用 Google 助理回复是否是个好主意,即使我不打算使用 Google 助理。我知道我也可以使用实现选项来提供媒体丰富的响应,但我更喜欢使用基于 GUI 的 Google 助手响应。以这种方式使用 Google 助理 (GA) 响应有什么缺点吗?

举个例子,我创建了使用 GA 建议芯片的意图,代理的输出在 JSON:

中给出了这样的响应
  {
    "platform": "ACTIONS_ON_GOOGLE",
    "suggestions": {
      "suggestions": [
        {
          "title": "Suggestion Chip 1!"
        },
        {
          "title": "Suggestion 2!"
        }
      ]
    }
  },

我的意图是使用 Detect Intent API,然后在我的 GUI 中放入逻辑来解释诸如建议信息块之类的东西,然后相应地显示。

不对 Google 响应使用操作的最大原因是您不是 Google 助理客户。

  • Google 可以更改响应的格式(过去有),您需要更改自己的格式。
  • 您的 GUI 要求可能与助手不同,试图强迫自己进入他们的模型可能会限制您的行为。

相反,Dialogflow 允许您在回复中嵌入特定于平台的内容,因此您可以在回复中以任何格式包含您想要的任何信息。

更新 以澄清响应。

在您的 webhook 将发送的 JSON 响应中,您可以包含一个 payload 字段,这是一个包含您想要的任何内容的 JSON 对象。对于 Google 上的操作,它将数据放入包含 AoG 特定信息的有效载荷下的 google 字段中。您可以创建自己的字段,并以您想要的任何格式放置任何内容。

所以你的 JSON 可能看起来像这样:

{
  "fulfillmentText": "Normal message here."
  "payload": {
    "myDisplayFormat": {
      "suggestions": [
        "Suggestion 1",
        "Suggestion 2"
      ]
    }
  }
}

与使用 AoG 的响应相比,这样做的优势在于您可以包含代理需要的任何其他信息。例如,如果您希望能够以不同的方式显示内容,则可以在此处包含文本颜色或字体信息。如果您想要其他按钮转到不同的 URL 或在您的页面上触发不同的内容,您可以在此处包含它们。最重要的是 - 这完全在您的控制之下,您不受 Google 决定做什么的约束。

payload 部分中的所有内容都会原封不动地传递给 queryResult.webhookPayload 字段中的 API 调用。