3 步用 Python + 大模型搭一个微信公众号’AI 代聊秘书’:有约饭需求 AI 帮你先聊
微信内测”AI 社交”功能在 36 氪 9 月初被曝光:用户发出”约饭、组局、请教”这类需求时,AI 可以代替你先去和对方私聊、确认时间地点,整理好要点再回你。这件事开发者今天就能用公开 API 复刻——一个挂在服务器上的 Python 小程序 + 一个 LLM API + 微信公众号 Webhook。
整个流程跑通后,你的公众号就具备”代聊”能力:用户发”帮我问下周和老张吃饭有没有空”,AI 自动用预设人设去私聊、收回复、整理成 1 行话发回主会话。
前置条件
– 一台云服务器或 NAS(2 核 2GB 起,需要长期在线)
– 一个微信公众号(订阅号或个人号都行,需要客服消息权限)
– 一个 LLM API Key(OpenAI、DeepSeek、智谱、月之暗面任一)
第 1 步:搭建 Web 服务接收微信回调
微信服务器要求 80/443 端口可用,且需要响应 signature 校验。直接用 FastAPI 起步。
pip install fastapi uvicorn wechatpy openai
# main.py
from fastapi import FastAPI, Request
from wechatpy import parse_message
from wechatpy.replies import TextReply
import openai, os, json
app = FastAPI()
WECHAT_TOKEN = os.environ["WX_TOKEN"] # 自定义令牌
client = openai.OpenAI()
# 关注/收到消息时的入口
@app.post("/wx/cb")
async def wx_callback(request: Request):
msg = parse_message(await request.body())
if msg.type == "text":
user_text = msg.content
# 第二步:让 LLM 代聊
ai_reply = await ai_da_liao(user_text, msg.source)
reply = TextReply(message=ai_reply, message=msg)
return reply.render()
return "success"
第 2 步:写”代聊”Prompt 和人设
代聊的关键是让 LLM 知道三件事:用户的目标、对话对象是谁、AI 自己的人设。Prompt 这样写:
SYSTEM_PROMPT = """你是用户的"AI 代聊秘书",人设:礼貌、简洁、不超过 30 字。
目标:替用户发起一次简短对话,明确 1 个具体问题。
规则:
- 用中文,口语化
- 一句话内说清目的
- 末尾加一句"如不方便请回复'X',我转告 ta"
示例:用户说"问老张明晚能不能打球",你就回"老张你好,我替朋友问下,明晚 7 点老地方羽毛球你能来吗?" """
async def ai_da_liao(user_text: str, user_id: str) -> str:
resp = client.chat.completions.create(
model="gpt-4o-mini", # 任何轻量模型都行
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": f"用户需求:{user_text}"}
],
max_tokens=120,
temperature=0.4,
)
return resp.choices[0].message.content.strip()
**小技巧**:把每位用户的历史对话存到 SQLite,下次再发起时让 LLM 看到”上次老张说他周三加班”,代聊会更精准。
第 3 步:把回复推回主会话
微信个人号无法主动发消息(除了订阅号的客服消息接口),所以”AI 代聊”在实际场景里要走企业微信或第三方托管。最稳的折中方案:让公众号充当”AI 输出窗口”,把代聊结果发给用户本人,由用户手动转发。
# 在 ai_da_liao 后追加:把代聊结果回给用户
import httpx
async def push_back(user_openid: str, content: str):
# 通过客服消息接口发回去(需要 access_token,这里省略获取逻辑)
async with httpx.AsyncClient() as cli:
await cli.post(
f"https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={ACCESS_TOKEN}",
json={"touser": user_openid, "msgtype": "text",
"text": {"content": f"📩 代聊话术已生成:\n{content}"}}
)
启动服务:
uvicorn main:app --host 0.0.0.0 --port 8000
# 微信公众平台 → 服务器配置 → URL 填 http://你的IP:8000/wx/cb
# Token 填 WECHAT_TOKEN 环境变量值
成功验证
– 关注公众号,发送”帮我问小李今晚能不能视频”
– 3 秒内收到 AI 代聊话术(带 emoji、分行、口语化)
– 把话术手动复制发给小李,小李回复后再次输入”小李说可以,7 点开始”
– AI 自动整理为:”✅ 今晚 7 点视频,已确认”
常见失败
| 现象 | 原因 | 修复 |
|—|—|—|
| 微信提示”token 校验失败” | 签名算法不匹配 | 用 `wechatpy.utils.check_signature` 验证 GET 请求里的 signature |
| 用户发消息没反应 | 公众号没开”客服消息” | 微信公众平台 → 客服消息 → 启用 |
| AI 回复超字数被截断 | 微信 2048 字节限制 | `max_tokens=120` + 后处理检测长度 |
| API 调用超时报错 | 国内访问 OpenAI 不稳 | 换 DeepSeek / 智谱 GLM-4 / Kimi,API 兼容 OpenAI 协议 |
这套框架改一改还能做”AI 日程助理”、”AI 投诉模板生成”、”AI 节日祝福批量发送”。**核心是把 LLM 当成”第二大脑”,让它替你完成第一轮沟通**。
🔥 关注 LC 智趣厅,每天 8 篇 AI / 科技精选
👇 关注不错过,明早 7:30 见
— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn