Skip to content

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 或控制台公告获取最新进展。

SDKMAX — Enterprise AI Gateway, Aggregating Global AI Resources