用大模型 API 做微信客服机器人:最小可用实现
从公众号消息接口到大模型回复的完整链路:消息去重、超时兜底、限流与成本控制,附可直接运行的 Python 代码和一个 OpenAI 兼容 Key 搞定全部模型。
「接个 AI 客服」听起来要上旗舰模型,实际上客服场景 90% 的问题都是查状态、报价格、重复解释——用 gpt-4o-mini 级别的模型就够了,成本差 30 倍。这篇文章给一套能落地的架构,重点放在模型分级和成本核算上。
架构总览
微信消息 → 消息网关 → 路由层 ─┬→ 便宜模型(gpt-4o-mini / gemini-flash-lite)
└→ 高端模型(claude-sonnet-5,仅复杂问题)
↓
会话存储(Redis,保留最近 10 轮)三个关键设计:
- 消息网关负责协议对接(企业微信 API 或个人号方案),与模型层解耦
- 路由层决定每次消息用哪个模型——这是成本控制的核心
- 会话存储只保留最近 N 轮,防止上下文无限膨胀
模型分级策略
路由规则从简单到复杂:
规则一:关键词分流。 命中「价格、退款、发货、怎么用」等高频词走便宜模型 + 固定知识库;命中「报错、异常、技术」或用户明确要求人工的,升级高端模型或转人工。
规则二:置信度升级。 便宜模型先答,让模型自评「我能不能答好」(一个只返回 0/1 的轻量判断调用),判断不确定就升级重答。
规则三:定时混跑。 工作时间高端模型保体验,夜间和周末全走便宜模型。
以 zaimod 平台 2026 年 11 月价格(美元/百万 tokens):
| 角色 | 模型 | 输入 | 输出 |
|---|---|---|---|
| 日常应答 | gpt-4o-mini | $0.16 | $0.62 |
| 备选 | gemini-3.1-flash-lite-preview | $0.25 | $1.50 |
| 疑难升级 | claude-sonnet-5 | $4.00 | $20.00 |
| 中文场景 | doubao-seed-2-0-mini-260428 | $0.50 | $3.00 |
核心代码(Python)
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ZAIMOD_API_KEY"],
base_url="https://api.zaimod.com/v1",
)
CHEAP = "gpt-4o-mini"
PRO = "claude-sonnet-5"
COMPLEX_HINTS = ("报错", "bug", "异常", "技术上怎么", "为什么我")
def pick_model(text: str) -> str:
if any(k in text for k in COMPLEX_HINTS):
return PRO
return CHEAP
def reply(history: list[dict]) -> str:
model = pick_model(history[-1]["content"])
resp = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
*history[-10:], # 只带最近 10 轮
],
max_tokens=600,
temperature=0.3,
)
return resp.choices[0].message.content要点:
max_tokens=600封顶,客服回复不需要长篇大论temperature=0.3,客服要确定性不要创意- 上下文截断到最近 10 轮,超长会话提示用户转人工
知识库:比换模型更重要
客服质量的瓶颈通常不是模型,是知识供给。把商品信息、价格表、售后政策做成结构化文档,每次调用时按关键词检索塞进 system 提示词,效果远好于指望模型「记住」你的业务。别急着上向量数据库——先做一个精确匹配 + 分词检索的字典,覆盖 80% 问题后再考虑 embedding 方案。
成本核算
假设日活消息 2,000 条,平均每条输入 1,500 tokens(含知识库注入)、输出 400 tokens:
- 85% 走 gpt-4o-mini:2M × $0.16 + 0.55M × $0.62 ≈ $0.66/天
- 15% 升级 claude-sonnet-5:0.45M × $4 + 0.12M × $20 ≈ $4.2/天
- 合计约 $4.9/天,即每月 ~$150
如果全部走 claude-sonnet-5,同样流量是每月 $1,100+。分级路由省下 86% 的成本。
上线检查单
- [ ] 高频问题有知识库兜底,不依赖模型自由发挥
- [ ] 复杂问题能升级模型或转人工,升级路径有日志
- [ ] 每条消息记录模型名和 token 用量,方便对账
- [ ] max_tokens 和上下文轮数都设了上限
- [ ] 敏感词过滤在模型之前做,不要依赖模型自律
先小流量灰度一周,对账单、看转人工率,再放量。AI 客服的价值在「7×24 秒回」,不在于替代人——分级策略正是围绕这一点设计的。