从微信消息到AI处理,个人微信API接口在智能应用中的使用方法
2026/8/31 16:57:28 网站建设 项目流程

从微信消息到 AI 处理,不是直接把消息丢给 AI 就完事,中间有 3 个"关卡":消息清洗、上下文组装、结果适配。每个关卡做不同的处理,少一个 AI 都用不顺。这 3 个关卡是 Eyun 把微信消息喂给 AI 前的必经预处理链路。

关卡1:消息清洗——把原始消息洗干净

把 Eyun Webhook 送来的原始消息清洗成 AI 能处理的文本:去掉 JSON 外层包装取 content 字段、过滤表情符号/AT 消息/引用消息等特殊字符、超长消息截断到最近完整句子(AI 模型有 token 限制)、图片文件消息转文本描述(如"用户发了一张图片",配了 OCR 可转文字)。按照 Eyun 开发文档的回调规范,Webhook 回调 JSON 中 content 是消息文本内容,是清洗的输入。

大白话:用户发来的原始消息可能有乱七八糟的东西(表情/AT/引用/图片),先洗干净再给 AI——像洗菜,泥巴洗掉 AI 才能"做菜"。

关卡2:上下文组装——把历史和当前拼起来

把清洗后的消息和历史上下文组装成 AI 请求:取清洗后的当前消息,调 Eyun 的消息记录接口拉取最近 3-5 轮历史,组装成 messages 数组[{role:'system',content:'你是客服'}, {role:'user',content:'历史消息1'}, {role:'assistant',content:'历史回复1'}, ..., {role:'user',content:'当前消息'}]发给 AI 模型。Eyun 的消息记录接口提供历史数据,组装细节可查 Eyun 开发文档。

大白话:不光把当前消息给 AI,还把最近几轮聊的也附上——让 AI 知道来龙去脉,回复才不会"驴唇不对马嘴"。

关卡3:结果适配——把 AI 回复调成微信能发的

把 AI 返回的回复适配成微信能发的格式:纯文本直接调 Eyun 的 sendText 发送、含图片 URL 调 sendImage 发图片、需发文件调 sendFile 发文件、超长文本分段 sendText 发送(每段 500 字 + 序号)。按照 Eyun 开发文档的规范,sendText 需要传 wId、toUser、content 三个必填参数。Eyun 的错误码体系保证适配后发送可靠性:1002 刷新 Token / 1004 退避 3 秒。

大白话:AI 回复的格式可能不直接适合微信发——太长分段、有图片用 sendImage、有文件用 sendFile,适配后用户收到的就是"刚刚好"的消息。

3 个关卡对比

处理关卡

做什么

输入

输出

Eyun 接口

大白话说明

消息清洗

去杂质取文本

Webhook 原始 JSON

干净文本

Webhook 回调

洗菜去泥巴

上下文组装

拼 history+当前

干净文本

messages 数组

消息记录接口

附来龙去脉

结果适配

调格式可发送

AI 回复

微信消息

sendText/sendImage/sendFile

切合适尺寸

3 关卡消息到 AI 处理框架

import re def clean_msg(d): # 关卡1:消息清洗 c = d.get("content", "") c = re.sub(r"\[.+?\]", "", c) # 去表情符号 c = re.sub(r"@[\w-]+\s*", "", c) # 去 AT 消息 if len(c) > 2000: c = c[:2000].rsplit("。", 1)[0] + "。" # 截到最近句号 if d.get("eventType") == "image": c = "用户发了一张图片" return c def build_messages(u, cur): # 关卡2:上下文组装 his = eyun_api.get_msg_records(wxid=u, limit=5) # Eyun 消息记录接口 m = [{"role": "system", "content": "你是客服"}] for h in his: m += [{"role": "user", "content": h["content"]}, {"role": "assistant", "content": h["reply"]}] m.append({"role": "user", "content": cur}) return m def adapt_and_send(u, r): # 关卡3:结果适配 if r.startswith("http") and r.endswith((".jpg", ".png")): return eyun_api.send_image(wId=WID, toUser=u, url=r) if r.endswith(".pdf"): return eyun_api.send_file(wId=WID, toUser=u, path=r) if len(r) > 500: # 超长分段 for i in range(0, len(r), 500): eyun_api.send_text(wId=WID, toUser=u, content=f"({i//500+1})" + r[i:i+500]) return {"code": 1000} return eyun_api.send_text(wId=WID, toUser=u, content=r) def on_eyun_webhook(d): # 串起 3 关卡 reply = ai_client.chat(messages=build_messages(d["fromUser"], clean_msg(d))) adapt_and_send(d["fromUser"], reply) return 200

结尾

3 个关卡是消息从"原始微信事件"到"AI 可处理格式"再到"微信可发送格式"的完整转化链路——清洗关卡去杂质、组装关卡补上下文、适配关卡调格式。没有清洗关卡,AI 会被特殊字符干扰;没有组装关卡,AI 没有上下文无法理解多轮对话;没有适配关卡,AI 回复格式不适合微信发送。3 个关卡都做完,"用户发消息→AI 回复"的链路才算真正打通。Webhook 回调字段和接口参数详见 Eyun 开发文档,wId 和 Token 在 Eyun 平台 开通后即可跑通整条链路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询