了解如何使用 OpenAI 的批处理 API 发送异步请求组,其成本降低 50%,具有一个独立的更高速率限制池,并提供明确的 24 小时完成时间。该服务非常适合处理不需要即时响应的作业。您也可以直接在这里查看 API 参考。
概述
虽然 OpenAI 平台的某些用途需要您发送同步请求,但有许多情况下请求不需要即时响应,或者速率限制会阻止您快速执行大量查询。批处理作业通常在以下用例中非常有用:
- 运行评估
- 对大型数据集进行分类
- 嵌入内容存储库
批处理 API 提供了一组直接的端点,允许您将一组请求收集到单个文件中,启动一个批处理作业来执行这些请求,查询批处理的状态,同时底层请求正在执行,以及在批处理完成时检索收集的结果。
与直接使用标准端点相比,批处理 API 具有以下优点:
- 更好的成本效益:与同步 API 相比,成本折扣 50%
- 更高的速率限制:与同步 API 相比,拥有更大的余地
- 快速完成时间:每个批次在 24 小时内完成(通常更快)
入门指南
1. 准备批处理文件
批次以 .jsonl 文件开头,其中每一行包含对 API 的一个单独请求的详细信息。目前,可用的端点是 /v1/chat/completions(聊天完成 API)和 /v1/embeddings(嵌入 API)。对于给定的输入文件,每行的 body 字段中的参数与底层端点的参数相同。每个请求必须包含一个唯一的 custom_id 值,您可以在完成后使用它来引用结果。以下是一个包含 2 个请求的输入文件示例。请注意,每个输入文件只能包含对单个模型的请求。
{
"custom_id": "request-1", "method": "POST", "url": "/v1/chat/completions", "body": {
"model": "gpt-3.5-turbo-0125", "messages": [{
"role": "system", "content": "You are a helpful assistant."},{
"role": "user", "content": "Hello world!"}],"max_tokens": 1000}}
{
"custom_id": "request-2", "method": "POST", "url": "/v1/chat/completions", "body": {
"model": "gpt-3.5-turbo-0125", "messages": [{
"role": "system", "content": "You are an unhelpful assistant."},{
"role": "user", "content": <