跳到正文
OpenRouter Blog·· 13 天前精选AI 评分62

OpenRouter 推出 Batch API,批量请求按半价计费

Batch API: half-price inference by bundling requests

AI 导读

OpenRouter 上线 Batch API,把请求打包提交后由供应商在 24 小时窗口内完成,价格通常为正常每 token 价格的 50%,目前已支持 70 多个模型。

推荐理由

OpenRouter 公布 Batch API 的定价折扣与实测延迟分布,可据此判断异步批处理是否适合现有工作流。

正文 · AI 翻译

对于大批量、无需立即完成的工作或请求,你现在可以使用新的 batch API。提交批次时,提供商可以在 24 小时窗口内自行选择何时完成请求,作为交换,他们通常只收取正常每 token 价格的 50%(有时更低)。

它目前已在 70 多个模型上可用。请在 Batch API 文档中了解如何使用它。

实际上,我们观察到等待时间很少接近 24 小时。在我们为期两周的测试期内完成的 230k+ 个批次中,中位完成时间为 7 分钟,90% 在一小时内完成。

Batch 是一种异步 API,适用于可以接受高度可变响应时间的工作负载,例如为语料库打标签、回填嵌入、为评估集评分、汇总积压的工单,或在夜间对几千行数据运行相同的提示词。

Batch API 如何工作

调用 api/v1/batches 并传入你的请求列表,并指定要使用的端点形态。支持 chat completions、responses、messages 和 embeddings。例如:

curl https://openrouter.ai/api/v1/batches \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -d '{
  "endpoint": "/v1/chat/completions",
  "model": "google/gemini-3.8-flash",
  "requests": [
    { "custom_id": "ticket-0001", "body": { "messages": [{ "role": "user", "content": "Summarize this ticket in one sentence." }] } },
    { "custom_id": "ticket-0002", "body": { "messages": [{ "role": "user", "content": "Summarize this ticket in one sentence." }] } }
  ]
}'

请求之后,开始轮询 GET /api/v1/batches/:id,直到状态为 completed、failed、expired 或 cancelled。已完成的批次会在同一响应中内联返回其结果。

大多数批次几分钟内完成

我们查看了在为期两周的测试期内完成的批次,并测量了从接受到完成结果的时间。中位数为 7 分钟,第 90 百分位为 1.0 小时,第 99 百分位为 10.3 小时。我们还发现,你提交的时间点比发送多少请求更重要。

Bar chart of batch completion time by the Pacific hour a batch was submitted, showing the median, 75th percentile, and 90th percentile for each hour. The median stays between 5 and 11 minutes all day. The 90th percentile sits under 1.1 hours for most hours but climbs to between 2 and 4.5 hours for batches submitted from 5am to noon Pacific, peaking at 4.5 hours for the 9am hour.

在太平洋时间上午 5 点到中午之间提交的批次明显比其他时间更慢。最慢的十分之一需要 2 到 4.5 小时。在任何其他时间提交,第 90 百分位会降到 1.1 小时以下,而在太平洋时间下午 6 点之后则低于 50 分钟。

单请求批次根据时段不同会在 5 到 11 分钟内完成,而 1,000 个或更多请求的批次会在 12 到 21 分钟内完成。大批次确实需要更长时间处理。在太平洋时间午夜到中午之间提交的、超过 100 个请求的批次中,最慢的十分之一耗时长达 6.8 小时。

Heatmap of median hours to complete by three-hour Pacific submission window and batch size bucket (1, 2 to 10, 11 to 100, 101 to 1k, and 1k+ requests). Every cell shows a median of 5 to 21 minutes. Each cell also lists the sample size and 90th percentile, which climbs as high as 6.8 hours for batches of 101 or more requests submitted between midnight and noon Pacific.

批次支持哪些内容

  • 请求形态:你已发送给 OpenRouter 的任何文本请求体形态都将受到支持,包括 chat completions、responses、messages 和 embeddings。
  • 路由:每个批次都在单个提供商上执行。默认情况下,在应用你的提供商允许列表、数据政策和 BYOK 设置后,我们会为该模型选择最便宜的批次端点。
  • BYOK:配置了 提供商密钥后,支持该功能的提供商上的批次会通过你的密钥路由,你只需支付 BYOK 费用。
  • 逐请求结果:每个结果都会独立返回,因此少数坏行绝不会导致其余任务失败。
  • 保留:输入和结果会保留 30 天,或直到你 DELETE 该批次。
  • 日志:每个批次都会显示在日志的 Batches 标签页中,包含模型、提供商、状态和成本。
  • 定价:折扣适用于每 token 定价,并因模型而异。网页搜索调用按标准费率计费。
  • 输入:图片和文件必须是公开 URL。音频、视频以及 OpenRouter 自有的网页搜索插件在 batch 中不可用(请参阅文档的限制部分)。

开始使用

选择一个支持 batch 的模型,获取一个 API 密钥,然后将你的第一个批次提交到 https://openrouter.ai/api/v1/batches。快速开始包含完整的请求和响应形态。

在 Discord 的 #feedback 中告诉我们你正在批处理什么。

来源:OpenRouter Blog · openrouter.ai