You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Viber机器人传入无文本附件消息时如何触发Dialogflow ES对应意图

Dialogflow ES对接Viber机器人触发位置类消息对应意图解决方案

问题背景

对接Dialogflow ES与Viber机器人时,收到用户发送的无文本位置共享类附件消息,无法通过常规训练短语匹配触发对应意图,传入请求结构示例如下:

"payload": {
    "attachments": [
        {
            "payload": {
                "long": ##.####,
                "address": "xxxxxxxx",
                "lat": ##.#####
            },
            "type": "location"
        }
    ],
    "source": "viber",
    "body": {
        "sender": {
            "language": "en-GB",
            "api_version": 10,
            "country": "xx",
            "id": "xxxxxx",
            "name": "xxxx xxxx"
        },
        "silent": false,
        "event": "message",
        "message_token": xxxx,
        "chat_hostname": "xxxxx",
        "message": {
            "location": {
                "lat": ##.#####,
                "lon": ##.#####
            },
            "type": "location"
        },
        "timestamp": xxxxx
    },
    "contact": {
        "channelId": xxxx,
        "cId": "########",
        "contactId": #######
    }
}

解决方案

推荐优先使用事件触发意图方案,无需构造虚拟文本,避免和普通文本意图冲突,实现逻辑如下:

  • 第一步:消息预处理拦截
    在将Viber请求转发给Dialogflow ES之前,先做消息类型判断:读取payload.attachments[0].type或者payload.body.message.type字段,判断是否为location类型的位置消息,同时提取经纬度、地址等位置参数。
  • 第二步:调用Dialogflow接口指定事件
    调用Dialogflow的detectIntent接口时,不使用文本输入类型,直接传入事件类型参数,示例请求结构如下:
{
  "query_input": {
    "event": {
      "name": "VIBER_LOCATION_RECEIVED",
      "parameters": {
        "lat": 提取到的纬度值,
        "lon": 提取到的经度值,
        "address": "提取到的地址信息"
      },
      "language_code": "对应你使用的语言编码,比如en-GB"
    }
  },
  // 其他必要参数比如session等按正常填写即可
}
  • 第三步:Dialogflow控制台配置意图
    在Dialogflow ES控制台新建对应意图,在意图的「事件」配置项中填入你自定义的事件名VIBER_LOCATION_RECEIVED,无需添加任何训练短语,保存即可。
    后续只要你转发的位置消息触发了对应事件,就会自动匹配到该意图,同时你传入的位置参数也会自动带入到意图的参数列表中,可直接用于后续回复逻辑。

备选方案(构造虚拟文本匹配)

如果不想用事件触发,也可以采用构造虚拟文本的方案:

  • 预处理判断为位置消息后,给Dialogflow传入固定的虚拟文本,比如USER_SHARE_LOCATION
  • 在对应意图的训练短语中添加该固定字符串即可匹配,位置参数同样可以放入请求的payload中传递

内容的提问来源于stack exchange,提问作者MBMSOFT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:54:02