news 2026/10/23 22:05:23

企业微信 API + DeepSeek / OpenAI:手把手教你搭建企微群 AI 智能客服机器人

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
企业微信 API + DeepSeek / OpenAI:手把手教你搭建企微群 AI 智能客服机器人

这篇是实操向的,从开通实例到机器人跑起来,一步步走。不讲概念,只讲怎么做。

第一步:开通企微实例,拿到凭证

在 Eyun 控制台开通企微实例,拿到三样东西:

  • appid:实例标识,格式we_xxx

  • App Token:API 调用凭证,格式eyk_xxxx

  • 签名密钥:回调验签用

回调地址填你的服务器地址,比如https://your-domain.com/wx-api/webhook/。

第二步:搭回调服务

用 Flask 搭一个最小可用的回调服务:

from flask import Flask, request import hmac, hashlib, json, requests app = Flask(__name__) BASE = "https://your-base-url" APPID = "we_xxx" TOKEN = "eyk_xxxx" SECRET = "your-signature-secret" HEADERS = {"Authorization": f"Bearer {TOKEN}"} @app.route("/wx-api/webhook/", methods=["POST", "GET"]) def webhook(): # 验证请求 echostr = request.args.get("echostr") or ( request.json.get("echostr") if request.is_json else None ) if echostr: return echostr # 验签 signature = request.headers.get("X-Eyun-Signature") raw_body = request.get_data(cache=True) expected = hmac.new(SECRET.encode(), raw_body, hashlib.sha256).hexdigest() if not hmac.compare_digest(expected, signature): return "forbidden", 403 # 去重 delivery_id = request.headers.get("X-Eyun-Delivery") if not redis.setnx(f"cb:{delivery_id}", 1, ex=86400): return "ok" # 处理消息 data = request.json["data"] handle_message(data) return "ok" def handle_message(data): if data.get("messageType") != 1: # 只处理群聊 return text = data.get("content", "").strip() if not text: return # 判断该不该回 if not should_reply(text): return # 调 AI answer = ask_ai(text, data["roomId"]) # 发送回复 send_text(data["conversationId"], answer) def should_reply(text): if len(text) < 5: return False return any(k in text for k in ["怎么", "请问", "求助", "@机器人"]) def ask_ai(question, room_id): # 取群上下文 context = get_recent_messages(room_id, limit=10) messages = [ {"role": "system", "content": "你是企业微信群里的 AI 客服,回复简洁专业。"}, {"role": "user", "content": f"群聊记录:\n{context}\n\n问题:{question}"} ] resp = requests.post( "https://api.deepseek.com/v1/chat/completions", headers={"Authorization": f"Bearer {DEEPSEEK_KEY}"}, json={"model": "deepseek-chat", "messages": messages, "max_tokens": 500} ).json() return resp["choices"][0]["message"]["content"] def send_text(conv_id, text): requests.post( f"{BASE}/wx-api/api/message/sendText", headers=HEADERS, json={"appid": APPID, "conversationId": conv_id, "content": text} ) if __name__ == "__main__": app.run(port=5000)

第三步:配置 AI 模型

DeepSeek 和 OpenAI 的调用方式一样,换 endpoint 和 model 名就行:

平台

Endpoint

Model

DeepSeek

https://api.deepseek.com/v1/chat/completions

deepseek-chat

OpenAI

https://api.openai.com/v1/chat/completions

gpt-4

API Key 在各自平台申请,充钱就能用。

第四步:加知识库(可选)

如果希望机器人回答产品相关问题,需要接知识库。简单做法是把 FAQ 存成文本,每次调 AI 时塞进去:

FAQ = """ Q: 怎么申请权限? A: 在 OA 系统提交申请,审批通过后自动开通。 Q: 怎么重置密码? A: 点击登录页"忘记密码",按提示操作。 """ def ask_ai(question, room_id): messages = [ {"role": "system", "content": f"你是企业微信群里的 AI 客服。参考以下 FAQ:\n{FAQ}"}, {"role": "user", "content": question} ] # ...

FAQ 多的话,建议用向量数据库(Pinecone、Milvus、Chroma)做检索,别全塞 prompt 里。

第五步:上线前检查

  • 回调地址能公网访问,HTTPS

  • 签名密钥配置正确

  • 群聊消息能正常接收

  • AI API Key 有余额

  • 单群频控已加

一个真实的上线数据

某团队的群 AI 客服,上线第一周:

  • 收到消息 1,200 条

  • AI 回复 340 条(28%)

  • 转人工 86 条(7%)

  • 平均响应时间 4 秒

剩下的 65% 是闲聊和已解决的问题,AI 正确识别并跳过了。

企微回调和发送的字段在Eyun 开发文档里能查到,实例和凭证在 Eyun 控制台开通。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 21:57:05

GitLab升级后后台设置保存500:从非法URL脏数据到完整排查修复指南

GitLab版本升级这件事&#xff0c;做得多了你会形成一种条件反射&#xff1a;升级不可怕&#xff0c;升级后的第一个午休才可怕。这不&#xff0c;上个月我们这套GitLab实例刚从12.3.9一路升到14.4.5&#xff0c;整个迁移过程顺利得像教科书&#xff0c;结果升级完不到半小时&a…

作者头像 李华
网站建设 2026/10/23 21:54:43

Office宏被阻止?MOTW标记与信任位置全解析

1. 这个报错到底在说什么如果你经常跟Excel、Word或者PowerPoint里的VBA宏打交道&#xff0c;大概率见过这个弹窗&#xff1a;“Microsoft 已经阻止宏运行&#xff0c;因为此文件的来源不受信任。” 点开详细信息&#xff0c;还会看到一句更具体的提示&#xff0c;大意是这个文…

作者头像 李华
网站建设 2026/10/23 21:53:27

OpenCV中cv::Mat初始化的内存安全与性能陷阱解析

1. 这不是“画个方块”那么简单&#xff1a;Mat初始化背后的内存管理真相刚接触OpenCV的开发者常以为cv::Mat创建全白/全黑图只是调用一个构造函数的事——填个尺寸、设个类型、传个初始值&#xff0c;三步搞定。但我在某图像处理实验室带过几届实习生后发现&#xff0c;90%的人…

作者头像 李华
网站建设 2026/10/23 21:10:52

信号检测与估计核心概念解析:从理论到工程实践

简介&#xff1a;这份资料是电子科技大学《信号检测与估计理论与应用》关欣译教材的配套课后答案&#xff0c;面向通信工程、信号处理等专业的学生与自学者&#xff0c;帮助在噪声背景下理解信号检测与参数估计的核心方法&#xff0c;巩固课堂所学并排查知识盲点。压缩包共95个…

作者头像 李华
网站建设 2026/10/23 21:01:14

基于UDP的局域网音量与电源控制:协议设计与实现

简介&#xff1a;这份资源面向局域网远程管理场景&#xff0c;提供基于UDP协议控制电脑关机、重启与音量调节的轻量工具&#xff0c;适合有一定网络编程基础、希望实现同网段设备远程控制的开发者与运维人员参考。压缩包共3个文件&#xff0c;约24KB&#xff0c;包含可执行程序…

作者头像 李华
网站建设 2026/10/23 20:36:47

麦语言函数实战避坑指南:REF、#IMPORT与L2盘口的正确用法

简介&#xff1a;本资源是文华财经官方麦语言函数手册的完整整理版&#xff0c;面向量化交易初学者、程序化策略开发者及期货/证券技术分析人员&#xff0c;解决麦语言函数调用不熟、参数理解不清、高频数据引用困难等核心问题。手册系统涵盖历史价格引用&#xff08;CLOSE/HIG…

作者头像 李华