OpenAI Batch API 怎么批量处理任务?准备 JSONL、提交并核对结果

用 OpenAI Batch API 把请求写成 JSONL、提交异步批任务,并按 custom_id 对账成功与失败。

OpenAI Batch API 适合不要求立即返回的大量任务,例如离线分类、评测和批量生成。流程是把每个请求写成一行 JSONL,上传后创建批任务,完成时下载结果,并用 custom_id 与原始记录对账。

准备 JSONL 文件

官方 Batch API 指南要求每行是独立请求,同一个批次使用同一目标端点。下面的 requests.jsonl 有两行,真实文件中每个 JSON 对象必须独占一行。

OpenAI Batch API 怎么批量处理任务?准备 JSONL、提交并核对结果

{"custom_id":"row-0001","method":"POST","url":"/v1/responses","body":{"model":"gpt-6-luna","input":"把‘已发货’归类为订单状态,只返回标签"}}
{"custom_id":"row-0002","method":"POST","url":"/v1/responses","body":{"model":"gpt-6-luna","input":"把‘等待付款’归类为订单状态,只返回标签"}}

custom_id 应对应你自己的稳定记录 ID,并在批内唯一。不要用姓名、手机号或完整订单内容作为 ID。提交前逐行解析 JSON,确认没有空行、重复 ID 或混入不同端点。

上传并创建批任务

from openai import OpenAI

client = OpenAI()
with open("requests.jsonl", "rb") as fh:
    batch_file = client.files.create(file=fh, purpose="batch")

job = client.batches.create(
    input_file_id=batch_file.id,
    endpoint="/v1/responses",
    completion_window="24h",
)
print(job.id, job.status)

批处理是异步任务,创建成功不代表每一行都成功。应保存批任务 ID,并在状态完成后读取输出文件和错误文件。官方文档给出的完成窗口为 24 小时,适合离线任务,不适合聊天页面的即时回答。

按 custom_id 对账

  1. 读取输出 JSONL,每行解析后取得 custom_id。
  2. 用它找到原始记录,核对 HTTP 状态和响应正文。
  3. 把失败行单独列出并判断是否可重试,不能把整个批次标成全成功。
  4. 结果顺序可能与输入不同,禁止按文件行号直接写回业务表。

先用 2 至 5 行小文件完成演练:输入有两个唯一 ID,最终也必须找到两个对应结果;故意加入一行错误请求,报告应明确出现一条失败。通过后再扩大批量。

常见问题

Batch API 会更快吗?它提供异步处理、独立限额和批量价格优势,不保证适合实时响应。

为什么任务完成却少了结果?先查错误文件、重复 custom_id 和单行格式。本文没有提交你的真实文件,实际成本、限额和完成时间以账号及官方页面为准。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31673.html

赞 (0)
AI小管家的头像AI小管家
用豆包设计装饰图案:固定元素与配色,检查边缘留白
上一篇 2小时前
OpenAI 文字转语音 API 怎么用?生成音频、保存文件并试听核对
下一篇 2小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部