我有一个diaglogflow cx助手,我有自己的web前端。我从一个网络挂钩收到回复,文本没有问题,但我想添加按钮、卡片、图像。。。尽管在对话流cx中看不到它们,但我可以使用前面的信息。
问题是dialogflow cx没有在响应中重新发送给调用它的前端。我从webhook服务器发送这个响应:
{
"fulfillment_response": {
"messages": [
{
"text": {
"text": [
"webhooktext"
]}}],
"richContent": [[
{
"type": "buttons",
"options": [
{
"text": "button 1"
},
{
"text": "button 2"
}]}]]}}
我在前台应用程序中收到了这个:
"responseId": "fc385ea7-6f8c-4828-9e25-5196916c4028",
"queryResult": {
"text": "hey",
"languageCode": "es",
"responseMessages": [
{
"text": {
"text": [
"dialogflow text"
]
}
},
{
"payload": {
"kbID": "greeting"
}
},
{
"text": {
"text": [
"webhooktext"
]
}
}
],
"webhookPayloads": [
{}
],
"currentPage": {...},
"intent": {...},
"intentDetectionConfidence": 1.0,
"diagnosticInfo": {...},
"webhookStatuses": [...],
"match": {...}
},
"responseType": "FINAL"
}
我期望在responseMessages
阵列中甚至在webhookPayloads
中接收按钮数据。我尝试过管理webhook响应结构,但有时它会在前面的字典中显示错误消息,有时则会如上所示。我应该更改richContext
密钥吗?我该把它放在哪里?
文本以及图像和其他组件可以在Dialogflow CX中进行解析。您可以参考本文档了解响应文本,并根据您的要求在您这边进行解析。要添加视觉元素,可以参考此链接。
在Python中实现这一点的最常见方法是根据这个StackOverflow案例使用pf.json_format.MessageToJson方法。