news 2026/4/18 6:24:51

AI + 企微:使用 Python 接入 DeepSeek/GPT 实现外部群自动技术答疑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI + 企微:使用 Python 接入 DeepSeek/GPT 实现外部群自动技术答疑

QiWe开放平台 · 个人名片

API驱动企微自动化,让开发更高效

核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景

官方站点:https://www.qiweapi.com

团队定位:专注企微API生态的技术服务团队

对接通道:搜「QiWe 开放平台」联系客服

核心理念:合规赋能,让企微开发更简单、更高效


要实现这个功能,我们需要打通“企微回调接口(接收提问)”和“AI 模型接口(生成回答)”两条链路。

1. 技术方案架构

  1. 接收消息:配置企微自建应用的回调 URL,通过 FastAPI 接收群成员的@机器人提问。

  2. 内容解析:解密企微推过来的 XML 数据,提取Content(提问)和ChatID(来源群)。

  3. 大模型推理:调用 DeepSeek 或 GPT 接口,并注入预设的“角色 Prompt”(例如:你是一个精通 Java/Python 的架构师)。

  4. 主动回复:利用我们之前讲过的add_msg_template或应用消息接口,将 AI 的回答发回群内。

2. Python 实现:FastAPI + DeepSeek 集成代码

首先,确保安装了核心依赖:

import os from fastapi import FastAPI, Request from openai import OpenAI # 这里的 WXBizMsgCrypt 是企微官方提供的解密类 from WXBizMsgCrypt3 import WXBizMsgCrypt app = FastAPI() # 配置信息 CORP_ID = "wwxxxx" SECRET = "your_secret" TOKEN = "your_callback_token" ENCODING_AES_KEY = "your_aes_key" # 初始化 AI 客户端 (以 DeepSeek 为例) ai_client = OpenAI(api_key="your_deepseek_key", base_url="https://api.deepseek.com") @app.post("/qywx/callback") async def handle_callback(request: Request): # 1. 获取回调参数并解密 params = request.query_params body = await request.body() wxcpt = WXBizMsgCrypt(TOKEN, ENCODING_AES_KEY, CORP_ID) ret, xml_content = wxcpt.DecryptMsg(body, params.get("msg_signature"), params.get("timestamp"), params.get("nonce")) if ret == 0: # 2. 解析 XML 提取问题 (此处建议用 xml.etree.ElementTree) user_msg = "解析出的群友提问" chat_id = "解析出的群ID" # 3. 调用 AI 模型 response = ai_client.chat.completions.create( model="deepseek-chat", messages=[ {"role": "system", "content": "你是一个资深技术专家,请用简洁专业的方式回答问题。"}, {"role": "user", "content": user_msg}, ], stream=False ) ai_answer = response.choices[0].message.content # 4. 调用企微 API 回传消息 (复用之前封装的推送逻辑) send_to_group(chat_id, ai_answer) return "success" def send_to_group(chat_id, text): # 此处调用 add_msg_template 或发消息接口 pass

3. 如何让 AI 回答得更专业?(RAG 进阶)

如果只是通用回复,AI 可能会“一本正经地胡说八道”。对于做技术产品的团队,建议引入RAG (检索增强生成)

  • 本地知识库:将你的技术文档、API 手册存入向量数据库(如 ChromaDB)。

  • 搜索增强:当群友提问时,先在知识库搜索相关片段,再喂给 AI:“基于以下文档内容,请回答:[问题]”

4. 关键避坑点

  1. 超时控制:企微回调要求在5秒内必须响应(或返回空)。由于 AI 推理较慢(通常需 10s+),必须采用异步处理。即:接收到请求后立即返回success,然后开启异步任务去调用 AI 并发消息。

  2. 风控逻辑:AI 的回答具有不可控性。建议在 Prompt 中加入合规性要求,并设置关键词过滤,防止 AI 在群内讨论敏感或违规话题。

  3. 上下文管理:群聊是碎片化的。如果需要 AI 记得上一句话,需要在 Redis 中缓存该群最近 5-10 条对话记录,并作为history传给 AI。


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

JYLN061 LORA无线数传终端:轻松代替有线485,适配恶劣工业环境

JYLN061 LORA无线数传终端是一款非常典型且应用广泛的物联网核心设备。简单来说,这是一种利用LoRa调制技术,能在复杂工业环境下实现远达5公里(理论或典型距离)无线数据传输的终端设备。一、组成部分 1. 核心设备:LoRa无线数传终端/模块 这是安…

作者头像 李华
网站建设 2026/4/11 12:47:40

SIEMENS同步电机1FT7105- 5WF71-4NH1

SIEMENS同步电机1FT7105-5WF71-4NH1与普通电机在结构设计、控制方式、性能表现和应用场景上存在本质区别。该电机作为高性能永磁同步伺服电机,专为精密工业自动化系统打造,而普通电机(如异步电机)则更适用于对动态响应和控制精度要…

作者头像 李华
网站建设 2026/4/17 14:37:53

内核子系统、SoC控制器驱动、驱动与内核的关系

这是一个关于Linux内核架构的核心问题,涉及内核子系统、SoC控制器驱动、驱动与内核的关系。让我用清晰的层次结构为您解释: 一、整体架构关系图 ┌─────────────────────────────────────────────────…

作者头像 李华
网站建设 2026/4/18 5:15:02

【C/C++】线程池详解

线程池详解 (Thread Pool Deep Dive) 什么是线程池?(What is a Thread Pool?) 线程池是一种多线程处理模式,它预先创建一定数量的线程,将任务放入队列中,由空闲的线程从队列中取出任务并执行。 为什么需要线程池? …

作者头像 李华
网站建设 2026/4/3 1:46:00

决策陷阱:混淆平均与边际,汤姆该让多少艘渔船出海?

决策陷阱:混淆平均与边际,汤姆该让多少艘渔船出海? 清晨的渔港风平浪静,汤姆盯着码头边的三艘渔船,心里盘算起新的生意经:“三艘船每天总收益 600 美元,平均每艘赚 200 美元;总成本…

作者头像 李华