我想使用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中以解释诸如建议筹码之类的东西,然后进行相应显示。
答案 0 :(得分:1)
不对Google响应使用“操作”的最大原因是您不是助理客户。
相反,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调用。