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 调用。
我想使用 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 调用。