**Batch API** 是一种可以批量处理大量请求的异步接口,非常适合那些不需要立即返回结果的任务。例如,如果你有一个庞大的数据集需要分类、要进行大量的嵌入生成,或者需要对模型进行评估,那么 Batch API 可以帮助你更快、更省成本地完成这些工作。
**Batch API 的好处**
1. **降低成本**:Batch API 每次请求的费用比实时 API 低 50%,适合需要处理大量数据但又想节省成本的场景。
2. **更高的速率限制**:使用 Batch API 时,允许的请求速率比标准 API 高很多,让你可以一次性处理更多的请求。
3. **24小时内完成**:每个批次最多需要 24 小时就可以完成。对于不需要立即返回结果的任务(如数据分析),这是个非常合适的选择。
**使用流程**
1. **准备批处理文件**:首先,你需要一个.jsonl 文件(JSON格式的文本文件,每行代表一个请求)。在每一行里,包含请求的详细信息,比如模型名称、输入文本、输出的最大 token 数量等。
2. **上传批处理文件**:用 OpenAI 提供的 Files API 上传这个.jsonl 文件。
3. **创建批处理任务**:上传文件后,创建一个批处理任务。这个任务会依次处理每一行请求并返回结果。
4. **查询任务状态**:任务创建后,你可以随时查看其状态,如"处理中"、"已完成"或"已过期"等。
5. **下载批处理结果**:任务完成后,可以下载一个.jsonl 文件,其中包含每条请求的响应。
6. **取消任务**:如果批处理任务需要中止,可以发出取消指令。
**使用场景**
- **运行评估**:可以批量测试模型的输出质量,查看模型是否符合预期。
- **分类数据集**:对大规模数据集进行分类。
- **嵌入内容**:将大量文本内容转换成向量(Embedding)用于进一步的分析。
**限制和注意事项**
- **请求数量**:每个批处理任务最多包含 50,000 个请求。
- **文件大小**:批处理文件最大不能超过 200MB。
- **单个批次的执行时间**:每个批次会在 24 小时内完成,但通常会更快。
- **任务过期**:如果批处理任务超过 24 小时未完成,会自动变成过期状态,已完成的请求结果仍可以下载。
**总结**
Batch API 就像是一个"后台处理器",让你可以把大量的请求一次性提交给模型,它会在后台自动处理,而不占用实时请求的资源。所以,对于需要批量处理而不急于得到即时反馈的任务来说,Batch API 是一个高效且经济的选择。
```Java
```