新手以为"自动回复"是平台自带的一个开关,其实不是——WTAPI 提供的是通道,回复逻辑长在你自己的服务里。理解这一点,问题就变成两段:怎么收到消息(Webhook)、怎么把回复发出去(HTTP)。本文把这条闭环的每个环节讲清,并给出四种回复模式。

一、闭环只有三步,但每步都有讲究

① 用户发消息
      ↓ WTAPI 通过 Webhook 实时推送 JSON 事件
② 你的服务接收 → 跑回复逻辑(关键词/AI/事件)
      ↓ 调 HTTP API
③ WTAPI 驱动官方微信客户端,把回复发出去

这就是文档"双通道通信:HTTP 主动调用 + Webhook 实时回调,闭环自动化"的标准形态。

二、第一步:Webhook 把消息"收进来"

在控制台填一个公网可达的回调 URL,平台在消息发生时向它 POST 数据。任何语言的 Web 框架一个路由就能承接(官方支持 Java / Python / C++ / Go / PHP)。本地调试用内网穿透。

三、第二步:四种回复模式,按业务选

模式怎么判定回复内容
关键词回复内容命中关键词表固定话术 / 文件 / 图片
AI 智能回复交给模型生成接 ChatGPT / 文心一言 / 自研 NLP
事件回复好友通过、入群等事件触发欢迎语、群规(不是回复某条消息)
转人工命中"人工"或 AI 无把握提示语 + 通知客服坐席

四、第三步:HTTP 把回复"发出去"

回复目标怎么取?直接用收到事件里带来的标识:群消息回群(chatroomId),私聊回个人(fromWxId),不要手写硬编码。

from flask import Flask, request, jsonify
import requests, queue, threading

app = Flask(__name__)
q = queue.Queue()

@app.route("/webhook", methods=["POST"])
def webhook():
    q.put(request.json)                       # 回调只收事件,立即响应
    return jsonify({"code": 1000})

def worker():
    while True:
        ev = q.get()
        content = ev.get("content", "")
        target = ev.get("chatroomId") or ev.get("fromWxId")  # 群/私聊自适应
        if not target:
            continue
        if "人工" in content:
            reply = "正在为您转接人工客服"
        elif "价格" in content:
            reply = "价目表已发您,请查收文件"
        else:
            reply = my_nlp(content)           # ChatGPT/文心一言/自研NLP
        send(target, reply)

def send(target, text):
    r = requests.post(
        "https://wx.chuapi.com/finder/v2/api/发送路径以文档为准",
        headers={"X-finder-TOKEN": "你的Token",
                 "Authorization": "Bearer 你的凭证",
                 "Content-Type": "application/json"},
        json={"appId": "你的appId", "instanceId": "你的实例ID",
              "to": target, "content": text}, timeout=15)
    return r.json().get("code") == "1000"     # 成功才作数

threading.Thread(target=worker, daemon=True).start()
app.run(port=8080)

回调字段名、发送路径以文档weiti.apifox.cn 为准。

五、让自动回复"好用"的四个细节

  • 回调快响应:AI 生成可能要几秒,先返回 1000,结果在 worker 里异步发,避免回调超时
  • 多轮上下文:AI 回复按用户标识保存会话历史,对话才连贯
  • 失败要补救:发送按 code:"1000" 判定,失败记日志、按策略重试
  • 回复不止文本:报价场景补文件、营销场景回小程序卡片,六种消息类型按需组合
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐