缓存命中率39%提到78%之后,我们才真正看懂API账单
一、一笔看不懂的账
上季度末,我们团队做了一次API成本复盘。结果有点尴尬:模型没换、调用量增幅平缓,月账单却环比涨了40%。财务问原因,我一时答不上来。
把网关日志拉出来逐条对账后,答案浮出水面——我们的缓存命中率只有39%。大量重复性请求(相似的产品问答、雷同的文档摘要指令、格式几乎一致的结构化抽取任务)每次都在"全价"调用模型。换句话说,我们一直在为同样的答案反复付费。
这不是个例。很多团队的API预算失控,问题不在"单价太贵",而在于不知道钱具体花在了哪类请求上。而缓存命中率,恰好是归因链条里最容易被忽视、也最容易见效的一个杠杆。
二、三个月改造:前后对比
我们把改造分成三步,核心数据变化如下:
| 指标 | 改造前 | 改造后 | 变化 |
|---|---|---|---|
| 缓存命中率 | 39% | 78% | +39pp |
| 月度API支出 | 基准 100 | 58 | -42% |
| 平均响应延迟 | 基准 100 | 71 | -29% |
| 高价模型调用量占比 | 46% | 21% | -25pp |
| 预算超支告警次数/月 | 5次 | 0次 | 归零 |
命中率翻倍带来的不只是省钱。延迟下降近三成,是因为相当一部分请求根本没走到模型推理那一步,直接在网关层命中了缓存返回。用户体感"变快了",成本反而降了——这是效率视角下最舒服的一类优化。
三、三个具体做法
方法一:按请求指纹做用量归因,先看清"谁在重复花钱"
优化的第一步不是动手改,而是归因。我们在网关层给每个请求计算"指纹"——由模型名、系统提示词哈希、指令模板ID、用户角色四要素组成。相同指纹的请求,就是潜在的缓存候选。
归因结果让我们吃了一惊:客服FAQ场景贡献了31%的调用量,但其中70%的问题落在不到200个指纹里。也就是说,三分之一的预算花在反复回答同样的问题上。
这类归因在自建脚本里做非常痛苦——日志散落在多个服务里,格式还不统一。接入ThisToken.AI网关后,每个经过网关的请求自动带上统一的元数据标签(项目、部门、场景、用户角色),归因从"每周人工对账半天"变成"打开面板看五分钟"。托管渠道的统一日志,本质上是把用量归因这件事从项目管理问题变成了配置问题。
方法二:分层缓存策略,不同场景配不同规则
归因清楚后,我们按场景配置了三层缓存:
| 层级 | 适用场景 | 策略 | 效果 |
|---|---|---|---|
| 精确缓存 | FAQ、固定指令抽取 | 指纹完全一致直接返回 | 命中率最高,节省约60%该场景支出 |
| 语义缓存 | 相似问法的产品咨询 | 向量相似度超过阈值走缓存 | 容忍度高,需设置抽样校验 |
| 不缓存 | 创作类、个性化对话 | 直连模型 | 避免答非所问 |
关键经验:不要全局开缓存。早期我们图省事全局启用语义缓存,结果创作类场景用户投诉"回答重复"。分层配置之后,各场景的命中率单独可观测,问题定位也快。
方法三:用模型白名单+路由规则,把"该省的"和"该花清"的分开
缓存解决了"重复请求",但还有一类浪费是"用错模型"。归因显示,内部员工查制度、查工单状态这类低复杂度任务,有近一半在调用旗舰模型。
我们的做法是双管齐下:
- 按角色设模型白名单:行政、运营类角色默认只能路由到轻量模型;研发和数据团队可解锁旗舰模型,但需在预算科目里单独记账。
- 基于复杂度的动态路由:请求先做一次轻量分类(问题长度、历史轮次、是否含代码),简单请求路由到小模型,只有判定为复杂任务才升级。
这套规则通过ThisToken.AI的路由治理能力配置——白名单、预算上限、降级策略都在控制台里完成,不需要改业务代码。上线第一个月,高价模型调用量占比从46%降到21%,而任务质量抽检的通过率没有下降。
四、预算治理清单
如果只能带走一张表,建议是这张。每月复盘时逐项过一遍:
| # | 检查项 | 健康信号 | 危险信号 |
|---|---|---|---|
| 1 | 缓存命中率 | >60%且分场景可观测 | 无统计或全局<40% |
| 2 | 高价模型调用占比 | 与任务复杂度分布匹配 | "人人都能调最强模型" |
| 3 | 单场景成本趋势 | 环比波动可解释 | 某场景连续两周异常上涨 |
| 4 | 预算告警响应 | 超阈值自动熔断或降级 | 靠月底账单发现问题 |
| 5 | 归因标签覆盖率 | >90%请求带项目/角色标签 | 大量"未分类"支出 |
| 6 | 缓存质量抽检 | 定期抽验语义缓存准确性 | 只看命中率不看答案质量 |
第6条特别提醒:命中率是手段不是目的。语义缓存的阈值设得太宽松,命中率虚高但答案质量下滑,等于省了小钱伤了体验。每月抽检不能省。
五、写在最后
这次复盘最大的认知转变是:API成本优化的主战场不在"换更便宜的模型",而在请求层的治理。缓存、白名单、路由规则、用量归因,这四件事做好,42%的成本降幅是不激进的目标,而且用户体验不降反升。
如果你也想开始做这件事,建议从托管网关统一接入起步——先把每个请求的元数据标签补齐,归因面板跑起来,后面的分层缓存和路由策略都是水到渠成。可以在 https://api.thistoken.ai/register 注册后接入第一个渠道,把归因数据攒上两周,你的第一份成本复盘会比我这次的清晰得多。
---
想直接跑通示例?访问 https://api.thistoken.ai/register 注册 ThisToken.AI,获取 API Key 后即可开始。