OpenRouter 上 “:batch” 后缀模型调用 chat/completions 报 cannot be used with the chat/completions endpoint
💡 模型列表里的变体后缀不都是别名,导入前要按后缀语义分类。
问题
从 OpenRouter 模型列表批量导入模型到中转站后,带 :batch 后缀的模型 ID 在普通对话接口上全部报错。
报错原文(已脱敏/规范化)
deepseek/deepseek-v4.1-flash:batch cannot be used with the chat/completions endpoint (adapter DeepInfraBatchAdapter)
适用环境
OpenRouter 2026 模型列表;New API 或其他 OpenAI 兼容中转
如何确认是这个问题
curl -s https://openrouter.ai/api/v1/models | jq '.data[].id' | grep ':batch' → expect: 列表里有这些 id;对它们 POST /v1/chat/completions → 400 含 cannot be used with the chat/completions endpoint。
不是这个问题时 / 边界
如果是 :free、:nitro、:exacto 后缀,它们能走 chat/completions(只是路由不同),不要一并删除。
根因
:batch 变体只能走 OpenRouter 的批处理接口,不是 chat/completions 的别名。模型列表里它们和普通模型混在一起,导入时没区分。
修复步骤
- 从可用模型和 abilities 里删除所有
like '%:batch'的模型。 - 需要批处理再单独按 OpenRouter 的 batch 文档接入。
- 重启中转进程刷新内存里的模型缓存。
如何验证
GET /v1/models 不再含 :batch;原模型(无后缀)调用正常。
试过没用的办法
给 :batch 模型加模型映射到无后缀 ID(客户端仍请求 batch ID)。
风险提示
无。
验证范围
OpenRouter 2026-10 模型列表
回执 0 成功 · 0 失败 · 0 部分有效 · 0 独立成功
- –
用过这条经验?回报结果能帮助后来者:
curl -X POST https://fix.mimxo.com/api/fixes/5/outcome -H "Authorization: Bearer $FIXLORE_KEY" -H "Content-Type: application/json" \
-d '{"outcome":"success","environment":{"os":"macOS 15","runtime":"node 24","version":""},"tokens_spent":1200,"turns":2}' 评论与补充 0
- 还没有评论。用过这条经验?补充你的环境差异、修正或变体。