90% 的开发者调大模型 API 的姿势是:把 system prompt、知识库、few-shot 示例一股脑塞进去,然后一个请求一个请求地同步等结果,全用最贵的旗舰模型扛。这种"老实人"用法,相当于去超市永远按标价结账,从不用会员卡、从不参加打折区、从不买临期商品。
但各家 API 厂商其实早就在后台埋好了三把"折扣开关"——Prompt Caching(上下文缓存)、Batch API(批量异步)、Model Routing(模型路由)。它们不藏在灰色地带,就写在官方定价页里,但因为默认关闭、需要改代码,绝大多数人从没拧开过。今天这篇就把这三把开关的折扣力度、适用场景、真实账单算清楚。叠加使用,一个普通 RAG 应用月账单从 6000 美元砍到 1000 美元以内是完全可复现的事。
flowchart TD
A[原始请求流<br/>每次全价·同步·旗舰模型] --> B{成本优化三开关}
B --> C[开关一: Prompt Caching<br/>重复上下文缓存读 1折]
B --> D[开关二: Batch API<br/>非实时任务 5折]
B --> E[开关三: Model Routing<br/>简单任务下放小模型]
C --> F[缓存命中部分<br/>输入价 ×0.1]
D --> G[异步批处理<br/>输入+输出 ×0.5]
E --> H[路由分类器<br/>60%流量给Haiku]
F --> I[叠加后总账单<br/>约砍掉 80~90%]
G --> I
H --> I
style C fill:#d4edda,stroke:#28a745
style D fill:#cce5ff,stroke:#007bff
style E fill:#fff3cd,stroke:#ffc107
style I fill:#f8d7da,stroke:#dc3545
这是三把开关里折扣最狠、最被忽视的一把。原理很简单:很多应用的输入里有一大段是固定不变的——几千上万 token 的角色设定、工具说明、检索回来的知识库片段、few-shot 例子。每次请求都把这段重新喂给模型、重新算一遍 attention 的 KV cache,纯属烧钱。
Prompt Caching 让你把这段固定前缀"缓存"在厂商那,缓存命中的部分按远低于正常输入价结算:
| 厂商 | 缓存读折扣 | 缓存写溢价 | 最小缓存门槛 | TTL |
|---|---|---|---|---|
| Anthropic Claude | 输入价 ×0.1(约 9 折 off) | 输入价 ×1.25 | 通常 ≥1024 token | 5 分钟 / 可选 1 小时 |
| OpenAI | 输入价 ×0.5(5 折 off) | 无溢价,按正常价 | ≥1024 token | 自动,约 5~10 分钟 |
| DeepSeek | 命中价极低(约 0.1 元/百万) | 写入价略高 | 无硬门槛 | 自动 |
| Google Gemini | context caching 显式缓存 | 按存储时长另收 | 较大上下文 | 可自定义小时级 |
关键认知差在这里:很多人以为"缓存"只是个加速优化,其实它是定价层的折扣。Anthropic 命中缓存那部分只收 1 折,OpenAI 收 5 折。
怎么开:Anthropic 需要在 API 请求里手动打 cache_control 标记,把前缀分段标记为可缓存;OpenAI 是全自动的,超过 1024 token 的相同前缀会自动命中,无需改代码(这也是很多人根本没意识到自己已经被打了 5 折的原因)。DeepSeek、Gemini 也各有自动/显式两种模式。
谁最该用:RAG 应用、带超长 system prompt 的 Agent、固定工具列表的 function calling、跑评测集(同一批 prompt 反复跑)。这些场景的固定前缀占比往往超过 80%,缓存命中率极高,省的就是这 80% 的原价。
第二把开关更直接粗暴:只要你的任务不要求秒回,提交给 Batch API 就直接 5 折。
很多批量场景本质就不是实时的——给 10 万条客服记录分类、给一批商品写描述、跑一个评测数据集、给一堆文档做摘要总结。这些活你明明可以丢进队列过夜跑,却偏偏同步阻塞着调,白白多付一倍。
| 厂商 | 折扣 | 完成时限 | 单批上限 | 格式 |
|---|---|---|---|---|
| OpenAI Batch | 50% off | 24 小时内 | 单文件可上万请求 | JSONL |
| Anthropic Message Batches | 50% off | 24 小时内 | 单批最高 10 万请求 / 256MB | JSONL |
| Google Gemini Batch | 折扣类似 | 24 小时 | 大批量 | JSONL |
机制统一:你把成百上千个请求写成一个 JSONL 文件上传,厂商在 24 小时窗口内异步处理完,结果再下载下来,全程按 5 折计费。附带的好处还有:并发/速率限制(rate limit)比实时接口宽松得多,不用跟实时流量抢额度。
怎么用:写个脚本把任务拼成 JSONL,调用上传接口拿到 batch_id,过几小时轮询状态、下载结果文件即可。门槛比想象中低——很多场景从"同步循环调 10 万次"改成"组装一个文件传一次",代码反而更简单。
谁最该用:评测基准跑分、大批量数据标注/分类、内容批量生成、日志/文档批量摘要、embedding 批量向量化(注意:向量化本身是另一个省 token 的坑,这里别混淆)。
第三把开关讲的是流量分配。一个真实数据:绝大多数客服问答、意图识别、简单分类、格式化提取,用最便宜的 Haiku/mini 级模型就够了,质量损失几乎察觉不到。但很多人图省事,全量请求都打给旗舰模型,等于用大炮打蚊子,且按蚊子数量收费。
Model Routing 的核心是加一个分类器(router),判断每个请求的难度,简单的下放给小模型,复杂的才升级给大模型。学界和工业界已经有一套成熟开源工具:
| 工具 | 类型 | 核心能力 |
|---|---|---|
| RouteLLM(lm-sys) | 开源路由器 | 训练好的 router 在强/弱模型间路由,论文实测同质量下成本降约 2 倍 |
| LiteLLM(BerriAI) | 开源代理 | 100+ 厂商统一 API、自动 fallback、retry、按 key 分配 |
| Portkey | 商业网关 | 路由 + 缓存 + 负载均衡 + 可观测 |
| Cloudflare AI Gateway | 托管网关 | 语义缓存、限流、跨厂商分析 |
| OpenRouter | 统一 API | 一个 key 路由到几乎所有模型,按需挑便宜档 |
几种典型路由策略:
RouteLLM 团队的研究结论值得记住:在保持与旗舰模型相当质量的前提下,最高能把一半以上的流量路由到便宜模型,整体成本近乎腰斩。
光说折扣太抽象,用一个典型的 RAG + 批处理场景算笔账(按 Claude Sonnet 量级,输入 $3/百万 token、输出 $15/百万 token 估算)。
场景设定:一个企业知识库问答应用,每月 10 万次调用,每次请求固定前缀 2 万 token(system + 检索片段 + few-shot),平均输出 300 token。
flowchart LR
subgraph 优化前["优化前: 老实人用法"]
A1[全量同步] --> A2[全旗舰模型] --> A3[前缀每次重算]
end
subgraph 优化后["优化后: 三开关全开"]
B1[批处理5折] --> B2[缓存读1折] --> B3[60%下放Haiku]
end
A3 --> Cost1[月账单 ≈ 6075美元]
B3 --> Cost2[月账单 ≈ 900美元]
style Cost1 fill:#f8d7da,stroke:#dc3545
style Cost2 fill:#d4edda,stroke:#28a745
逐项拆解:
优化前(全价、同步、旗舰) - 输入:2 万 × 10 万 = 20 亿 token = 2000 百万 × $3 = $6000 - 输出:300 × 10 万 = 3000 万 token = 30 百万 × $15 = $450 - 合计:约 $6450/月
开关一单开(Prompt Caching,假设 85% 命中) - 缓存读:2000 × 0.85 × $0.3 = $510 - 缓存写:2000 × 0.15 × $3.75 = $1125 - 输出不变:$450 - 合计:约 $2085/月 → 单这一把就砍掉 67%
开关一+二叠加(再加 Batch,前提是这批活可异步) - 输入侧再打 5 折:$1635 × 0.5 ≈ $818 - 输出也 5 折:$225 - 合计:约 $1043/月
开关一+二+三全开(60% 流量下放 Haiku,$0.25/$1.25) - Haiku 部分(60%):输入读为主 + 输出,量级大幅下降 - Sonnet 部分(40%):仅难题走旗舰 - 合计:约 $900~1100/月
结论:从 $6450 砍到 $1000 出头,降幅约 83%,且用户侧几乎无感知(缓存命中是加速、批处理是过夜跑、路由只在难题上才动用旗舰质量)。这张账单就是这三把开关的全部价值。
| 维度 | 多数人的认知(贵) | 信息差用户(省) |
|---|---|---|
| 重复前缀 | 每次重新发送、全价计费 | 打 cache_control,命中 1 折 |
| 批量任务 | for 循环同步调,实时全价 | 攒成 JSONL 走 Batch,直接 5 折 |
| 任务难度 | 全部打给 Opus/GPT-5 | router 分流,简单题下放 Haiku |
| 速率限制 | 实时额度被卡脖子 | Batch 享有更宽松的额度 |
| 相似问题 | 每个都重新调模型 | 语义缓存命中,零调用返回 |
| 账单构成 | 只看总金额 | 拆出"缓存读/写/批处理/路由"占比 |
先查缓存命中率。打开你的 API provider 后台的 usage 明细,看有没有 cache_read_input_tokens 这一列。如果为 0,说明你完全没用上缓存。Anthropic 用户立刻在请求里给固定前缀加 cache_control: {"type": "ephemeral"};OpenAI 用户超过 1024 token 的相同前缀已自动命中,确认前缀顺序稳定即可。
把非实时任务切到 Batch。盘一遍你的定时任务、批处理脚本,凡是"等几小时也没关系"的,统统改写成 JSONL 提交。一次改造,长期 5 折。重点候选:评测跑分、数据标注、批量摘要、embedding 生成。
加一层路由网关。不想自己写分类器,直接上 LiteLLM 或 RouteLLM,配规则把"意图识别/简单分类/格式化"导给 Haiku,复杂推理才升级。再用语义缓存兜底相似 query。一周内能上线,效果立竿见影。
一句话收尾:API 定价不是铁板一块,它是一张带一堆暗开关的折扣表。你不是没资格打折,你只是从没问过收银员"还有没有优惠"。这三把开关拧开,你的账单结构会彻底变样。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
