模型回退导读
先把“模型回退”和“供应商选路”分清楚,再谈高可用。
模型回退解决的是“这次请求如果主模型没成功,下一个尝试哪个模型”, 而不是“优先走哪家 provider”。很多团队把这两件事混在一起,最后配置越来越多,却解释不清为什么会那样回退。
什么时候先看这页
当你已经知道主模型是谁,但担心它偶发失败、限流或拒绝时,就该先看模型回退。 如果你主要关心的是供应商优先级,那应该先看 provider selection。
最小模型回退链
通过 models 数组定义优先顺序。TheRouter 会按顺序尝试,直到有一个模型成功返回。
TypeScript
const response = await fetch('https://api.therouter.ai/v1/chat/completions', {
method: 'POST',
headers: {
Authorization: 'Bearer <THEROUTER_API_KEY>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
models: [
'anthropic/claude-sonnet-4.5',
'openai/gpt-5-mini',
'google/gemini-3-flash-preview',
],
messages: [{ role: 'user', content: 'Summarize this document.' }],
}),
});和 OpenAI SDK 怎么配合
如果你的客户端仍然基于 OpenAI SDK,主模型放在 model, fallback 候选放进 extra_body.models。
TypeScript
const completion = await client.chat.completions.create({
model: 'openai/gpt-5',
extra_body: {
models: ['anthropic/claude-sonnet-4.5', 'google/gemini-3-flash-preview'],
},
messages: [{ role: 'user', content: 'Draft a release note from these bullet points.' }],
});最容易搞混的 3 个概念
模型回退
作用:
主模型失败后,尝试下一个模型
控制维度:
模型列表顺序常见误区
- 把模型回退当成供应商优先级配置。
- 主模型和 fallback 模型差异过大,结果行为波动明显。
- 写了很长的回退链,但没有任何监控和验证。
- 默认就堆很多 fallback,实际上根本没看过真实失败分布。
回退链需要能解释
如果你不能解释为什么第二个模型是它,而不是另一个,这条回退链通常还需要继续收敛。