集成指南/模型选择与回退

说明如何在 OpenAI、Claude、Gemini 间选择模型并配置回退链路。

模型选择与回退

本指南用于在 OpenAI、Claude、Gemini 三类模型之间做稳定的生产编排。

1)先发现,再固定

先调用 GET /v1/models 获取实时模型 ID,再按场景固定使用。

不要直接假设外部文档里的模型名在你的账号中一定可用。

2)按能力设计回退链

文本生成示例链路:

  1. gpt-5.2
  2. claude-sonnet-4-6
  3. gemini-3-pro-preview

最终链路应以实时模型列表和你的延迟/成本目标为准。

3)请求体先用保守兼容形态

优先使用通用的 /v1/chat/completions 基础请求:

{
  "model": "gpt-5.2",
  "messages": [
    { "role": "user", "content": "请用 3 点总结。" }
  ],
  "temperature": 0.2
}

除非你已做逐模型校验,否则不要在 fallback 链里依赖提供方特有参数。

4)推荐路由策略

  • 瞬时错误(4295xx)先对同模型退避重试。
  • 达到重试预算后切换到下一个回退模型。
  • 每次尝试记录 modelrequest_id、延迟、token usage。

5)生命周期治理

结合 UniGateway 模型元数据能力,生命周期状态需要纳入策略(AVAILABLEPREVIEWDEPRECATEDSUNSETUNAVAILABLE)。

建议:

  • 不要给 DEPRECATEDSUNSET 模型新增正式流量。
  • 替代模型映射放在配置层,不要硬编码在业务代码里。

Example request

Run it in your stack

Pick the SDK style that matches your app and copy the snippet directly into your project.

from openai import OpenAI

client = OpenAI(api_key="<YOUR_UNIGATEWAY_API_KEY>", base_url="https://api.unigateway.ai/v1")
resp = client.chat.completions.create(model="claude-sonnet-4-6", messages=[{"role":"user","content":"hello"}])
print(resp.choices[0].message.content)