用大模型 API 做微信客服机器人:最小可用实现

从公众号消息接口到大模型回复的完整链路:消息去重、超时兜底、限流与成本控制,附可直接运行的 Python 代码和一个 OpenAI 兼容 Key 搞定全部模型。

「接个 AI 客服」听起来要上旗舰模型,实际上客服场景 90% 的问题都是查状态、报价格、重复解释——用 gpt-4o-mini 级别的模型就够了,成本差 30 倍。这篇文章给一套能落地的架构,重点放在模型分级和成本核算上。

架构总览

TEXT
微信消息 → 消息网关 → 路由层 ─┬→ 便宜模型(gpt-4o-mini / gemini-flash-lite)
                              └→ 高端模型(claude-sonnet-5,仅复杂问题)
         ↓
   会话存储(Redis,保留最近 10 轮)

三个关键设计:

  1. 消息网关负责协议对接(企业微信 API 或个人号方案),与模型层解耦
  2. 路由层决定每次消息用哪个模型——这是成本控制的核心
  3. 会话存储只保留最近 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)

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 秒回」,不在于替代人——分级策略正是围绕这一点设计的。

用 zaimod 一个 Key 就能跑通上面所有模型 →

延伸阅读

#微信客服机器人#ai 客服#gpt-4o-mini 成本#便宜大模型
免费创建 API Key

相关阅读

DeepSeek 免费档能干什么:5 个生产级用法

平台上有一个按次计费 0 元的 deepseek-v4-flash-free 免费档,每天限流。本文给出 5 个真正能上生产的用法:意图分类、内容打标签、结构化抽取、会话摘要、批量预处理,并附用量测算与降级策略。

Claude API 代码审查流水线:从 hook 到 CI

用 Claude Messages API 搭一条三层代码审查流水线:pre-commit 拦住本地问题、GitHub Actions 审查 PR diff、夜间扫全仓。含完整 review.py、误报压制方法与真实成本账。

流式输出 SSE 原理与调试:从 curl 到前端

大模型 API 的流式输出本质是一条 SSE 长连接。本文拆解 text/event-stream 报文格式、stream:true 的分片结构、curl 与前端 ReadableStream 的调试方法,以及代理缓冲、[DONE]、usage 丢失等高频坑位。