模型选择与回退
本指南用于在 OpenAI、Claude、Gemini 三类模型之间做稳定的生产编排。
1)先发现,再固定
先调用 GET /v1/models 获取实时模型 ID,再按场景固定使用。
不要直接假设外部文档里的模型名在你的账号中一定可用。
2)按能力设计回退链
文本生成示例链路:
gpt-5.2claude-sonnet-4-6gemini-3-pro-preview
最终链路应以实时模型列表和你的延迟/成本目标为准。
3)请求体先用保守兼容形态
优先使用通用的 /v1/chat/completions 基础请求:
{
"model": "gpt-5.2",
"messages": [
{ "role": "user", "content": "请用 3 点总结。" }
],
"temperature": 0.2
}
除非你已做逐模型校验,否则不要在 fallback 链里依赖提供方特有参数。
4)推荐路由策略
- 瞬时错误(
429、5xx)先对同模型退避重试。 - 达到重试预算后切换到下一个回退模型。
- 每次尝试记录
model、request_id、延迟、token usage。
5)生命周期治理
结合 UniGateway 模型元数据能力,生命周期状态需要纳入策略(AVAILABLE、PREVIEW、DEPRECATED、SUNSET、UNAVAILABLE)。
建议:
- 不要给
DEPRECATED或SUNSET模型新增正式流量。 - 替代模型映射放在配置层,不要硬编码在业务代码里。