如何使用
在extra_body.models 中放一个有序的模型 ID 列表,并把
extra_body.route 设为 "fallback"。顶层的 model 字段仍然有意义
——它是第一次尝试——不过当 models 链存在时,OrcaRouter 会优先用链。
规则
- 链中最多 5 个模型。超出部分会被静默截断。
- 建议链中所有模型属于同一端点类型(全 chat,或全 image)。把一个
chat 模型混进 image 模型不会让网关崩溃,但实际承接请求的回退条目
必须匹配你调用的端点(例如,调用
/v1/chat/completions时,链中 只有 chat 模型可用)。 - 回退行为:
- 无法解析的
orcarouter/{name}条目(错误的名字、被禁用的路由器) 会被静默跳过。 - 调用密钥无权访问的模型(模型白名单不匹配)会被静默跳过。
- 当主模型在上游失败(5xx / 429 / 网络错误)时,会尝试链中的下一条。
- 只有当链中的每一条都耗尽,请求才会失败。
- 流式警示:一旦响应已经发出任何一个字节给客户端,回退就不能 再启动——如果上游中途掉线,客户端看到的是被截断的流,而不是 透明切换到下一个模型。
- 无法解析的
- 计费按实际承接响应的那个模型的费率计算——不是按主模型。
extra_body.route必须恰好为"fallback",链才会生效。任何其他值 (或缺失)都会让链被忽略,只用顶层model。
如何知道哪个模型承接了响应
查看X-Orca-Fallback-Level 和 X-Orca-Fallback-Model 响应头。详见
响应头。
什么时候不该用这个
如果你想让 OrcaRouter 自动 挑选最便宜的可用模型而不必自己写链, 请使用orcarouter/auto。回退链适用于
那些你需要显式控制顺序的场景。