用 Message Batches 批量处理离线请求
把大量非实时 Claude 请求提交到 Message Batches,稍后再取回结果。
基于 Claude Docs 整理 · Batches · 官方资料
评测、翻译、分类这类不需要立刻返回的任务,适合 Message Batches。
这篇完成:创建批次、轮询状态、下载结果。
创建批次请求
batches.create
python
import anthropic
client = anthropic.Anthropic()
batch = client.messages.batches.create(
requests=[
{
"custom_id": "task-1",
"params": {
"model": "claude-sonnet-4-6",
"max_tokens": 200,
"messages": [
{"role": "user", "content": "把这句话翻译成英文:缓存命中。"}
],
},
}
]
)
print(batch.id, batch.processing_status)等待完成并取结果
用 batches.retrieve 查看状态;完成后按官方方式流式读取结果行,用 custom_id 对齐原始任务。
最容易踩的坑
把批次当成实时聊天
Batches 有处理延迟;交互式 UI 仍用普通 Messages / Streaming。
官方资料
Claude DocsBatch processing相关 TodayAI 指南
- 用 Structured Outputs 拿到可解析的模型结果用 json_schema + strict 约束 Chat Completions 输出,让结果可以直接解析进入应用逻辑。
- 用 Gemini Embeddings 做文本向量化按 Gemini API Embeddings 文档:用 embedContent 生成向量,配置 task 前缀或 task_type,并用 output_dimensionality 控制维度。
- 用 Gemini Structured Outputs 约束 JSON 结果按官方 Structured outputs:用 JSON Schema / Pydantic 约束 Gemini 的最终回答格式,提取菜谱等结构化数据并可直接校验。