<!-- title: 不急的活白付一倍：批处理叠缓存砍到一成 -->
<!-- domain: cost-hacks -->

# 不急的活白付一倍：批处理叠缓存砍到一成

如果你手里有一批「不需要立刻出结果」的 AI 活——历史评论分类、日志摘要、专利数据结构化、A/B 测试的合成数据生成——而你现在还在用实时接口一条条同步调用，那你正在**白付一倍**的钱。海外三大厂（OpenAI、Anthropic、Google Gemini）和国内两家（智谱 GLM、DeepSeek）都有一条叫 **Batch API（批处理接口）** 的官方半价通道，但九成开发者根本没用过它。今天就把这条「半价通道」彻底讲透，再告诉你怎么把它和上一次讲的缓存（Caching）叠起来——两个折扣相乘，账单能从 100% 直接砍到 5%。

---

## 一、信息差核心：你有一半的活，其实可以等 24 小时

先做一个自测。把你过去一周跑过的所有 LLM 调用分成两类：

- **用户盯着屏幕等结果**——客服机器人、实时翻译、对话式搜索。这类**必须走实时接口**，没得省。
- **用户提交任务后就去做别的了**——凌晨跑的全量数据清洗、一次性导入的 50 万条历史评论、知识库初始化的向量+摘要。这类**全部可以走 Batch API**，且官方直接给你**打五折**。

绝大多数团队的真实情况是：第二类任务占了总调用量的 30%–60%，但因为「实时接口写习惯了」「懒得改架构」，全部按全价付。这就是最大的信息差——**不是没有便宜通道，是没人告诉你哪些活该换通道**。

而且 Batch API 的五折**没有门槛**。不像企业折扣要谈量、不像促销券有时效，哪怕你只提交 10 条请求，这 10 条照样半价。官方原话就是「unconditional 50% off」。

## 二、五家厂商 Batch API 横向对比（2026 年实测）

| 厂商 | 接口名 | 折扣 | 单批上限 | 完成时间 | 支持流式 |
|------|--------|------|----------|----------|----------|
| **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 | 批量推理 | 异步返回 | ❌ |

几个关键差异要记住：

1. **Anthropic 单批容量最大**（10 万请求），适合超大单次任务；
2. **智谱 GLM 的 Batch API 有免费额度**，国内团队跑验证零成本；
3. **五家全部不支持流式（streaming）**——这是批处理的本质，结果是一次性吐给你的 JSONL 文件。

## 三、折扣相乘：50% × 10% = 5% 的算账时刻

这才是真正的杀招。Batch API 的半价，和 Prompt Caching（提示词缓存）的「命中部分打一折」**是相乘叠加的**，不是取其中一个。逻辑是这样的：

- Batch 把**所有 token**的价格打到 50%；
- Caching 把**缓存命中那部分**的 token 在标准价基础上再降到 10%；
- 两者叠加 → 缓存命中部分 = 50% × 10% = **5% 的原始价格**。

用一个真实案例感受一下。假设你要给 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。** 详细的判断和折扣叠加路径看下面这张图：

```mermaid
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 个实操坑（踩中一个就白省）

抓取海外那篇工程实战贴，作者把踩过的坑列得很细，我挑最致命的 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 | 配缓存是杀手锏组合 |

## 七、国内团队的落地路径

国内开发者别以为这是海外专属：

- **智谱 GLM** 有完整的 Batch API，而且**有免费额度**。某团队用它处理 10 万+ 条专利数据，零成本跑通了流程，CSDN 上有完整代码可抄。
- **DeepSeek** 的批量处理 API 同样 50% off。有开发者复盘过反面案例——同步调用处理 8 万条客服工单，几天烧掉上百刀；换批处理通道后同样工作量成本腰斩。

如果你跑的是中文任务，智谱和 DeepSeek 的 Batch API 在中文 token 效率上比海外模型更划算，再叠上批处理半价，是国产场景下性价比最高的组合。

## 信息差总结：你交的 vs 别人交的

| 维度 | 你（实时全价） | 懂批处理的人 |
|------|---------------|-------------|
| 离线任务计费 | 100% 标准价 | 50%（Batch） |
| 有重复 prompt | 100% | 50% × 10% = 5% |
| 5000 条评论处理 | $45 | $4.28 |
| 速率限制 | 受实时 RPS 限制 | Batch 突破实时限流 |
| 单次最大批量 | 受并发限制 | 一次 5万–10万请求 |
| 适合的活 | 全部硬扛 | 离线任务全切走 |

## 行动指南（今晚就能做）

1. **盘点账单**：导出过去一个月的 API 调用日志，按「用户是否在等结果」分两类。我赌你至少 30% 的调用是离线的。
2. **挑一个试点**：找一个固定的离线任务（比如每日报表摘要、知识库重建），改成 Batch API。这是最低风险、最快见效的。
3. **加缓存叠加**：试点任务如果有固定的长 system 指令，把 `cache_control` 打上，跑一轮看命中率，账单会再砍一截。
4. **建一个工具函数**：把「提交-轮询-捞结果-补跑失败」封装成一个可复用的 `BatchRunner`，团队所有人以后写离线任务直接调用，从源头杜绝全价调用。
5. **监控折扣覆盖率**：加一个看板，统计「Batch 调用占比」和「缓存命中率」两个指标。目标——离线任务 100% 走 Batch，重复 prompt 100% 命中缓存。

一句话收尾：**批处理不是「慢一点」的功能，是「便宜一半」的开关。** 你不开它，等于主动给厂商多付一倍的钱。

---

### 参考来源

- [OpenAI Batch API 官方文档](https://developers.openai.com/api/docs/guides/batch) — 50% off、50,000 请求/100MB 上限
- [Anthropic Message Batches API 实战：先砍 50%，再叠缓存砍 90%](https://claudeapi.com/en/blog/dev-guides/claude-batch-api-cost-optimization/)
- [Gemini Batch Mode：异步处理更多，花费更少（Google 官方博客）](https://developers.googleblog.com/en/scale-your-ai-workloads-batch-mode-gemini-api/)
- [智谱 GLM Batch API 文档（含免费额度）](https://docs.bigmodel.cn/cn/guide/tools/batch)
- [Batch API Savings Calculator（实时 vs 批处理省钱计算器）](https://digiqt.com/tools/batch-api-savings/)

---
> 本文由「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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
