如果你手里有一批「不需要立刻出结果」的 AI 活——历史评论分类、日志摘要、专利数据结构化、A/B 测试的合成数据生成——而你现在还在用实时接口一条条同步调用,那你正在白付一倍的钱。海外三大厂(OpenAI、Anthropic、Google Gemini)和国内两家(智谱 GLM、DeepSeek)都有一条叫 Batch API(批处理接口) 的官方半价通道,但九成开发者根本没用过它。今天就把这条「半价通道」彻底讲透,再告诉你怎么把它和上一次讲的缓存(Caching)叠起来——两个折扣相乘,账单能从 100% 直接砍到 5%。
先做一个自测。把你过去一周跑过的所有 LLM 调用分成两类:
绝大多数团队的真实情况是:第二类任务占了总调用量的 30%–60%,但因为「实时接口写习惯了」「懒得改架构」,全部按全价付。这就是最大的信息差——不是没有便宜通道,是没人告诉你哪些活该换通道。
而且 Batch API 的五折没有门槛。不像企业折扣要谈量、不像促销券有时效,哪怕你只提交 10 条请求,这 10 条照样半价。官方原话就是「unconditional 50% off」。
| 厂商 | 接口名 | 折扣 | 单批上限 | 完成时间 | 支持流式 |
|---|---|---|---|---|---|
| OpenAI | Batch API | 50% off | 50,000 请求 / 100MB JSONL | 24 小时内 | ❌ |
| Anthropic | Message Batches API | 50% off | 100,000 请求 / 256MB | 5 分钟 – 24 小时 | ❌ |
| Google Gemini | Batch Mode(2025年7月上线) | 50% off | 大批量异步 | 24 小时内 | ❌ |
| 智谱 GLM | Batch API(免费额度) | 50% off | 50,000 请求 / 100MB | 24 小时内 | ❌ |
| DeepSeek | 批量处理 API | 50% off | 批量推理 | 异步返回 | ❌ |
几个关键差异要记住:
这才是真正的杀招。Batch API 的半价,和 Prompt Caching(提示词缓存)的「命中部分打一折」是相乘叠加的,不是取其中一个。逻辑是这样的:
用一个真实案例感受一下。假设你要给 5000 条电商评论做 12 分类,每条请求带一个约 3000 token 的长 system 指令(分类规则+示例+边界情况)。以 Sonnet 4.6 输入价 $3/百万 token 粗算:
| 方案 | 计算过程 | 总成本 | 省了 |
|---|---|---|---|
| 实时接口、无缓存 | $3 × 15 | $45 | 基准 |
| 只用 Batch | $1.5 × 15 | $22.5 | -50% |
| 只用 Caching | $3×1.5 + $0.3×13.5 | $8.55 | -81% |
| Batch + Caching | $1.5×1.5 + $0.15×13.5 | $4.28 | -91% |
5000 条评论,从 $45 砍到 $4.28,降了九成。数据量越大,绝对省的钱越吓人。 把这个数放大到你真实的数据规模,你会知道自己过去扔了多少钱。
核心就一句话:用户在等,别用 Batch;用户不等,必用 Batch。 详细的判断和折扣叠加路径看下面这张图:
flowchart TD
A["一个离线任务<br/>例如: 5万条评论分类"] --> B{"用户在屏幕前<br/>等结果吗?"}
B -- "是 → 实时场景" --> C["走实时 API<br/>标准价 100%<br/>照单全收"]
B -- "否 → 离线场景" --> D["走 Batch API<br/>直接半价 50%"]
D --> E{"prompt 里有重复的<br/>长公共部分吗?<br/>(system指令 / 参考文档 / few-shot)"}
E -- "有" --> F["叠加 Prompt Caching<br/>命中部分再打一折"]
E -- "没有" --> G["只用 Batch 半价即可<br/>(50%)"]
F --> H["最终成本 5% 起步<br/>5000条: $45 → $4.28"]
C --> I["⚠️ 账单白付一倍"]
这张图你存在手机里。下次接需求时,先问自己一句「用户在等吗」,能省下你一半的 API 预算。
抓取海外那篇工程实战贴,作者把踩过的坑列得很细,我挑最致命的 6 个:
坑 1:custom_id 必须整批唯一。 别直接拿业务 ID 当 custom_id,可能有重复或非法字符。老实用 f"task-{i:08d}" 这种格式化数字,安全。
坑 2:单批有硬上限。 OpenAI / 智谱是 50,000 请求、100MB;Anthropic 是 100,000 请求、256MB。超了立即被拒。建议每批 5k–20k,好排错。
坑 3:不要拿 Batch 当「假同步」用。 哪怕你只提交 1 条请求,也可能要等 10 秒到几分钟才返回。Anthropic 不保证小批次快。
坑 4:失败请求不会自动重试。 errored 状态的请求,得你自己捞出来重投。所以一定要在客户端维护 custom_id → 原始数据 的映射,方便补跑失败项。
坑 5:缓存命中要求字节级一致。 system/tools 块里多一个空格,就是一把新的缓存键。把可缓存部分抽成一个冻结的常量字符串,谁都不许改。
坑 6:Batch 不支持流式,输出长度要设上限。 结果是全生成完才一次性返回的。prompt 容易产出超长输出的,务必设一个合理的 max_tokens,否则又把省下的钱吐回去了。
还有一个进阶技巧:缓存 TTL 只有 5 分钟。批处理任务一般几分钟到几十分钟跑完,缓存基本能命中。想更稳,可以在提交批处理前,先发一条同步请求「热身」缓存,再提交整批。
海外那篇给出了一条铁律——「Haiku 能过质量验证,就别用 Sonnet;Sonnet 够用,就别用 Opus」。因为 Batch + Caching 的折扣是相乘的,模型选小一档,省钱效果会乘上几倍:
| 场景 | 推荐模型 | 理由 |
|---|---|---|
| 短文本分类、海量评论 | Haiku 4.5 | 半价后每条几分钱,闭着眼睛堆量 |
| 长文档摘要、RAG 初始化 | Sonnet 4.6 | 质量+价格甜点,配缓存 ROI 最高 |
| 复杂推理类批处理 | Opus 4.7 | 必须用时再用,盯紧预算 |
| 100万长上下文批处理 | Sonnet 4.6 / Opus 4.7 | 配缓存是杀手锏组合 |
国内开发者别以为这是海外专属:
如果你跑的是中文任务,智谱和 DeepSeek 的 Batch API 在中文 token 效率上比海外模型更划算,再叠上批处理半价,是国产场景下性价比最高的组合。
| 维度 | 你(实时全价) | 懂批处理的人 |
|---|---|---|
| 离线任务计费 | 100% 标准价 | 50%(Batch) |
| 有重复 prompt | 100% | 50% × 10% = 5% |
| 5000 条评论处理 | $45 | $4.28 |
| 速率限制 | 受实时 RPS 限制 | Batch 突破实时限流 |
| 单次最大批量 | 受并发限制 | 一次 5万–10万请求 |
| 适合的活 | 全部硬扛 | 离线任务全切走 |
cache_control 打上,跑一轮看命中率,账单会再砍一截。BatchRunner,团队所有人以后写离线任务直接调用,从源头杜绝全价调用。一句话收尾:批处理不是「慢一点」的功能,是「便宜一半」的开关。 你不开它,等于主动给厂商多付一倍的钱。
本文由「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 等场景全覆盖。
