首页 › cost-hacks › API默认不打折:三把开关砍掉八成账

你每调一次 API,可能都付了原价

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

开关一:Prompt Caching——你那 5 万字的 system prompt 不该每次都重算

这是三把开关里折扣最狠、最被忽视的一把。原理很简单:很多应用的输入里有一大段是固定不变的——几千上万 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——不急的活,异步排队能直接打对折

第二把开关更直接粗暴:只要你的任务不要求秒回,提交给 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 的坑,这里别混淆)。


开关三:Model Routing——简单问题不该请 GPT-5/Claude Opus 来回答

第三把开关讲的是流量分配。一个真实数据:绝大多数客服问答、意图识别、简单分类、格式化提取,用最便宜的 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%,且用户侧几乎无感知(缓存命中是加速、批处理是过夜跑、路由只在难题上才动用旗舰质量)。这张账单就是这三把开关的全部价值。


信息差总结:你知道的 vs 别人不知道的

维度 多数人的认知(贵) 信息差用户(省)
重复前缀 每次重新发送、全价计费 打 cache_control,命中 1 折
批量任务 for 循环同步调,实时全价 攒成 JSONL 走 Batch,直接 5 折
任务难度 全部打给 Opus/GPT-5 router 分流,简单题下放 Haiku
速率限制 实时额度被卡脖子 Batch 享有更宽松的额度
相似问题 每个都重新调模型 语义缓存命中,零调用返回
账单构成 只看总金额 拆出"缓存读/写/批处理/路由"占比

行动指南:今晚就能动手的三步

  1. 先查缓存命中率。打开你的 API provider 后台的 usage 明细,看有没有 cache_read_input_tokens 这一列。如果为 0,说明你完全没用上缓存。Anthropic 用户立刻在请求里给固定前缀加 cache_control: {"type": "ephemeral"};OpenAI 用户超过 1024 token 的相同前缀已自动命中,确认前缀顺序稳定即可。

  2. 把非实时任务切到 Batch。盘一遍你的定时任务、批处理脚本,凡是"等几小时也没关系"的,统统改写成 JSONL 提交。一次改造,长期 5 折。重点候选:评测跑分、数据标注、批量摘要、embedding 生成。

  3. 加一层路由网关。不想自己写分类器,直接上 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 等场景全覆盖。

51学通信知识星球海报-扫码加入