Claude Message Batches API
Message Batches API 允许你异步发送大量的 API 请求。如果你不需要即时响应(例如批量的文本分析、翻译或数据提取),使用 Batch API 可以获得 50% 的价格折扣。
#1. 核心优势
- 成本降低 50%:所有通过 Batch 接口处理的任务,费用直接减半。
- 超大规模并发:一次 Batch 可以包含多达 10,000 个请求,且不计入常规的 Rate Limit(速率限制)。
- 简单可靠:只需上传一个包含所有请求的文件,Claude 会在 24 小时内(通常快得多)处理完毕。
#2. 工作流程
- 准备请求文件:创建一个
.jsonl文件,每行是一个标准的 Messages API 请求对象。 - 上传文件:将文件通过 API 上传到 Anthropic 平台。
- 创建 Batch:启动批处理任务。
- 轮询状态:等待任务完成。
- 下载结果:任务完成后下载包含所有回复的结果文件。
#3. 代码示例 (Python)
#步骤 1:准备 JSONL 文件
json{"custom_id": "request-1", "params": {"model": "claude-3-5-sonnet-20240620", "max_tokens": 100, "messages": [{"role": "user", "content": "翻译为英文:你好"}]}} {"custom_id": "request-2", "params": {"model": "claude-3-5-sonnet-20240620", "max_tokens": 100, "messages": [{"role": "user", "content": "翻译为英文:再见"}]}}
#步骤 2:发起批处理
pythonimport anthropic client = anthropic.Anthropic() # 1. 创建批处理任务 batch = client.beta.messages.batches.create( requests=[ # ... 这里也可以直接传入字典列表 ] ) # 2. 获取任务状态 print(batch.status) # 'processing', 'ended', 等
#4. 适用场景
- 离线数据标注:给成千上万条评论打标签。
- 批量内容生成:一次性生成 1000 个 SEO 标题。
- 大规模翻译:将整个网站的本地化文件进行翻译。
- 历史数据重处理:用最新的 Claude 3.5 模型重新运行之前的任务。
#5. 注意事项
- 非实时性:最长处理时间为 24 小时。如果你的应用需要用户等待几秒钟就拿到结果,请使用常规 API。
- 模型支持:Claude 3 全系列模型均支持 Batch 处理。
- 错误处理:如果 batch 中某些请求失败,结果文件中会包含对应的错误信息,不会影响其他请求。
总结:Batch API 是大规模处理任务时的“省钱利器”。只要对实时性要求不高,就应该优先考虑。