一个 API Key 调用 GPT、Claude、Gemini 和 DeepSeek
为 OpenAI、Anthropic、Google、DeepSeek 分别管理账号、密钥、SDK 和发票,既繁琐又容易出错。网关把这一切收敛成一个 API Key和一个 base_url,改一个字符串就能调任意模型。下面讲多模型接入的原理,以及怎么用好它。
核心思路
网关暴露一个 OpenAI 兼容入口。你认证一次,按请求选择模型:
from openai import OpenAI
client = OpenAI(
api_key="你的网关Key",
base_url="https://api.your-gateway.com/v1",
)
for model in ["gpt-5.4-mini", "claude-sonnet-4-6", "gemini-3.1-pro", "deepseek-v4"]:
resp = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "总结:猫坐在垫子上。"}],
)
print(model, "->", resp.choices[0].message.content)
同一个 Key、同一个客户端、四家供应商,无需重新接入。
一个 Key 为什么重要
- 运维开销更小:一个凭证轮换、一处设限额、一份账单。
- 试验更快:在你自己的任务上几分钟对比多模型。
- 按任务路由方便:每个请求都发给最合适的模型。
- 统一可观测:所有模型的用量、延迟、成本在一个控制台。
按任务路由,而非习惯
不同模型擅长不同活儿。一张实用的路由表:
| 任务 | 合适的模型 |
|---|---|
| 便宜、高量的分类/抽取 | 小而快的模型(mini/flash 档、DeepSeek、Qwen) |
| 编程与重构 | Claude(Sonnet/Opus)、强档 GPT |
| 长上下文分析 | 大上下文窗口的模型 |
| 多模态(图像/音频) | 具备多模态能力的模型 |
| 困难的多步推理 | 旗舰推理模型 |
因为切换只是改字符串,你可以在自己的代码或配置里实现这套路由,不动其余技术栈。
一个简单的兜底模式
def complete_with_fallback(client, messages, models):
for model in models:
try:
return client.chat.completions.create(model=model, messages=messages)
except Exception:
continue
raise RuntimeError("所有模型都失败了")
# 先试高端模型,失败再退到更便宜/更健康的
resp = complete_with_fallback(
client,
[{"role": "user", "content": "简要解释一下 transformer。"}],
["claude-sonnet-4-6", "gpt-5.4-mini", "deepseek-v4"],
)
很多网关还提供内置故障转移,所以你可能根本不用自己写这段。
用一个(或多个)Key 做治理
- 签发多个 Key,按应用或团队限定作用域,全在一个账号下。
- 为每个 Key 设预算和速率限制,控制失控用量。
- 按 Key 和模型审计日志,做成本归属与安全。
常见问题
所有模型请求格式完全一样吗? 通过 OpenAI 兼容网关,标准对话是一样的。部分模型有额外参数,具体看模型列表。
一个 Key 能看到分模型成本吗? 能——好的网关在控制台按 Key 和模型拆分用量与成本。
一个 Key 有安全风险吗? 按应用/团队用作用域 Key 并定期轮换。一个账号不等于到处用一个 Key。