跳到正文
原文
OpenRouter:Announcements(RSS)·· 10 天前精选AI 评分64

OpenRouter 推出 Batch API,批量请求可享约半价推理

Batch API: half-price inference by bundling requests

AI 导读

OpenRouter 推出 Batch API,批量提交的请求由提供商在 24 小时窗口内完成,通常按正常 per-token 价格的 50%(有时更低)计费,目前已支持 70 多个模型。

推荐理由

官方给出了折扣幅度和两周 beta 的实测完成时间分布,读者可据此判断哪些离线工作流适合迁移到批处理。

正文 · AI 翻译

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

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

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

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

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 定价,并因模型而异。Web 搜索调用按标准费率计费。
  • 输入:图片和文件必须是公开 URL。音频、视频以及 OpenRouter 自有的 web 搜索插件在批次中不可用(参见文档的限制部分)。

开始使用

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

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

来源:OpenRouter:Announcements(RSS) · openrouter.ai