Batch API
当前状态:尚未提供独立的批处理接口
与 OpenAI 官方的 POST /v1/batches(上传 JSONL 任务文件、异步批量处理、按折扣价结算)对标的专用批处理接口,SDKMAX 目前尚未上线。如果你的代码依赖 /v1/batches、/v1/files 等接口,请暂时不要接入生产环境,我们会在该能力上线后更新本页文档。
WARNING
本页先前版本可能被误认为已支持批处理——特此明确:在官方公告更新前,请不要假设 Batch API 已经可用。
当前的替代方案
在专用 Batch API 上线之前,如果你需要批量处理大量请求,推荐以下模式:
1. 客户端并发 + 限速
对普通同步接口(如 /v1/chat/completions)发起受控并发的批量调用,而不是一次性拍发全部请求:
python
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(api_key="sk-你的密钥", base_url="https://api.sdkmax.com/v1")
semaphore = asyncio.Semaphore(5) # 控制并发数,避免触发限流
async def call_one(prompt: str):
async with semaphore:
resp = await client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
)
return resp.choices[0].message.content
async def run_batch(prompts: list[str]):
return await asyncio.gather(*[call_one(p) for p in prompts])2. 指数退避重试
遇到 429(限流/额度)或 5xx 时,按指数退避重试,避免整批任务因个别失败而中断:
python
import time
def call_with_retry(fn, max_retries=5):
for attempt in range(max_retries):
try:
return fn()
except RateLimitError:
time.sleep(2 ** attempt)
raise RuntimeError("重试次数耗尽")3. 任务队列 + 落库
对于大规模、长时间运行的批量任务,建议在自己的后端引入任务队列(如 Celery / BullMQ / 自建队列表),逐条调用 SDKMAX 接口并落库结果,而不是依赖单次长连接一次性处理完全部数据。
后续规划
Batch API 已在路线图中,上线后将支持文件方式提交批量任务、异步处理与结果回收。请关注 FAQ 或控制台公告获取最新进展。
