DialogFlow,Google Assistant响应和检测意图API

时间:2018-11-22 17:00:43

标签: dialogflow actions-on-google

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

在DF代理中,我注意到如果我仅使用DF默认响应,它们只是基于文本的响应。另外,如果我想使用丰富的媒体响应,那么我将使用Google Assistant响应和代理输出的JSON根本不同(因为当您使用诸如建议芯片之类的东西时,它们具有不同的JSON)。

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

举一个例子,我创建了使用GA建议芯片的意图,并且代理的输出在JSON中给出了这样的响应:

  {
    "platform": "ACTIONS_ON_GOOGLE",
    "suggestions": {
      "suggestions": [
        {
          "title": "Suggestion Chip 1!"
        },
        {
          "title": "Suggestion 2!"
        }
      ]
    }
  },

我的意图是使用Detect Intent API,然后将逻辑放入我的GUI中以解释诸如建议筹码之类的东西,然后进行相应显示。

1 个答案:

答案 0 :(得分:1)

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

  • Google可以更改回复的格式(以前是这样),您需要更改自己的格式。
  • 您可能需要与Assistant不同的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调用。