词元涨价近一倍后,我把 AI 客服的成本拆成了四个可优化的变量
10 月 23 日信通院报告:国内词元归一化均价 6.8 元 → 13.46 元(2025 下半年 → 2026 年以来),涨近一倍;日均消耗约 500 万亿,是 2025 年 12 月的近 4 倍。
单价×4 倍量,两个方向同时涨。这篇是我在自己客服系统上做的四层优化,附可直接用的判断逻辑。
变量一:输入长度(影响最大)
输入成本 = 每次请求塞进去的 token × 调用次数。
常见的坑是把整本手册塞进 system prompt。我的做法是:
- 文档切块(300--500 字/块,带标题层级);
- 向量检索 top-4 + 关键词兜底召回;
- 只把命中的块拼进 prompt;
- system prompt 控制在 300 字内,固定在前缀以命中缓存。
结果:平均输入 38k → 3.1k token。
变量二:模型档位
用一个小分类器先判断请求类型:
- 寒暄/标准 FAQ → 小模型
- 单轮事实问答 → 中模型
- 多约束、多步推理 → 大模型
判断逻辑不必用模型,规则 + 关键词就够覆盖大部分。我的流量里,小模型吃掉了 62%。
变量三:缓存
两层:
- 前缀缓存:system + 政策文本固定前置;
- 语义缓存:embedding 相似度 > 0.95 直接返回,TTL 24h。
高频问题(退货、发货、售后)命中率 41%,这部分成本接近清零。
变量四:无效对话
绕圈、答非所问、该转人工不转------这些对话的钱是白花的。
我的做法是给对话加一个"轮次预算":同一问题连续 2 轮没进展,直接给转人工入口,并把上下文摘要带给人工。既省钱,投诉也少了。
一个反直觉的结论
优化之后,我的单位对话成本降了 68%,但总额只降了 21%------因为省下来的钱被我拿去扩大了覆盖场景(原来不敢接的复杂问题现在接了)。
这说明:降本的目的不是少花钱,是同样的钱能干更多事。
代码片段:成本打点
python
def log_call(scene, model, usage, resolved):
cost = usage.prompt_tokens * PRICE[model]["in"] / 1e6 \
+ usage.completion_tokens * PRICE[model]["out"] / 1e6
DB.insert(scene=scene, model=model, cost=cost, resolved=resolved,
in_tok=usage.prompt_tokens, out_tok=usage.completion_tokens)
按 scene 聚合,八成成本通常集中在两成场景------先优化那两成。