批量API异步
批量处理:大规模任务省 50%
·约 5 分钟阅读
如果你需要用 Claude 处理成百上千条数据——翻译 1000 篇文章、分类 10000 条评论、从 500 份简历中提取信息——逐条调用 API 太慢也太贵。Message Batches API 提供异步批量处理,所有模型直接打五折。
你将学到什么
- Batch API 的工作流程
- 如何创建和管理批量任务
- 费用节省的实际数据
- 适用场景和限制
工作流程
- 创建批量任务:提交一组请求(最多 10000 条)
- 异步处理:Anthropic 后台处理,24 小时内完成
- 查询状态:定期检查任务进度
- 获取结果:任务完成后下载结果
创建批量任务
batch = client.messages.batches.create(
requests=[
{
"custom_id": "review-001",
"params": {
"model": "claude-haiku-4-5",
"max_tokens": 512,
"messages": [{"role": "user", "content": "分析这条评论的情感:太好用了!强烈推荐"}]
}
},
{
"custom_id": "review-002",
"params": {
"model": "claude-haiku-4-5",
"max_tokens": 512,
"messages": [{"role": "user", "content": "分析这条评论的情感:快递太慢了,等了一周"}]
}
},
# ... 更多请求
]
)
print(batch.id) # batch_abc123
查询状态
batch_status = client.messages.batches.retrieve(batch.id)
print(batch_status.processing_status) # in_progress / ended
print(batch_status.request_counts)
# {"processing": 50, "succeeded": 150, "errored": 0, "canceled": 0, "expired": 0}
获取结果
# 任务完成后
for result in client.messages.batches.results(batch.id):
print(f"ID: {result.custom_id}")
if result.result.type == "succeeded":
print(f"回答: {result.result.message.content[0].text}")
else:
print(f"错误: {result.result.error}")
费用对比
所有模型批量处理一律五折:
- Opus 4.6:$2.50/$12.50(原 $5/$25)
- Sonnet 4.6:$1.50/$7.50(原 $3/$15)
- Haiku 4.5:$0.50/$2.50(原 $1/$5)
实际例子:用 Haiku 分析 10000 条评论,每条约 200 输入 + 100 输出 token
- 同步 API:200 × 10000 × $1/M + 100 × 10000 × $5/M = $7.00
- 批量 API:$3.50(直接五折)
适用场景
- 内容分类:大量文本的情感分析、标签标注
- 数据提取:从文档中批量提取结构化信息
- 翻译:大批量文本翻译
- 摘要:批量生成文章摘要
- 评估:大量 prompt 的质量评估
限制
- 最多 10000 条请求每批
- 24 小时内处理完成(通常更快)
- 不支持流式输出
- 不保证处理顺序
Tip: 批量 API + Haiku 模型是成本最低的组合。对于不需要实时响应的任务,这是最佳选择。
实战练习
Tip: 用批量 API 处理一批数据。
- 准备 100 条文本数据,创建一个批量分类任务
- 监控任务进度,获取结果
- 对比同步 API 和批量 API 的费用差异
关键要点
Note: 本文核心总结
- Message Batches API 提供异步批量处理,所有模型五折
- 最多 10000 条请求,24 小时内完成
- 适合不需要实时响应的大规模数据处理
- Haiku + Batch 是成本效率最高的组合