多模型 API 网关实战:国产 + 海外大模型混合调用架构设计
背景
最近中国大模型 Token 调用量超越美国的消息出来之后,我们团队内部也进行了一次认真的架构复盘。现实情况是:大多数企业都在同时接入多个大模型 API——阿里 Qwen、GPT-5.4、Claude Opus 4.6,不同业务场景适合不同的模型,单一模型依赖既贵又脆。
这篇文章记录我们实际落地的多模型混合调用网关方案,附完整配置示例,供有类似需求的同学参考。
架构设计思路
核心目标:
-
降低成本:根据任务类型路由到性价比最高的模型
-
提升可用性:单个 API 抖动不影响服务
-
统一计费:多个 API Key 的账单可以在一个地方管理
整体架构分为三层:
[业务层] → [模型路由网关] → [模型适配层] → [各厂商 API] ↑ ↑ [路由规则引擎] [API Key 池 + 限流器]
路由策略配置示例
路由网关基于 LiteLLM + Nginx 实现,路由规则写在 YAML 文件里,改起来很方便:
# router_config.yaml
model_list:
- model_name: qwen-primary
litellm_params:
model: openai/qwen3.5-max
api_base: https://dashscope.aliyuncs.com/compatible-mode/v1
api_key: ${QWEN_API_KEY}
model_info:
mode: chat
input_cost_per_token: 0.000002 # ¥0.002/千token
- model_name: gpt-fallback
litellm_params:
model: gpt-5.4
api_key: ${OPENAI_API_KEY}
model_info:
mode: chat
input_cost_per_token: 0.000015 # $0.015/千token
- model_name: claude-coding
litellm_params:
model: anthropic/claude-opus-4-6
api_key: ${ANTHROPIC_API_KEY}
model_info:
mode: chat
input_cost_per_token: 0.000018 # $0.018/千token
router_settings:
routing_strategy: cost-based-routing # 基础路由策略
fallback_models:
- gpt-fallback
- claude-coding
num_retries: 3
timeout: 30
任务分类路由规则
不同任务类型对模型能力要求差异很大,我们用了一个简单的 Python 路由分类器:
# task_router.py
import re
TASK_PATTERNS = {
"code_generation": r"(写代码|debug|函数|class|脚本|SQL|shell)",
"chinese_nlp": r"(摘要|总结|改写|润色|中文|客服)",
"complex_reasoning": r"(分析|推理|对比|策略|方案|架构)",
}
MODEL_MAPPING = {
"code_generation": "claude-coding", # Claude 代码能力强
"chinese_nlp": "qwen-primary", # Qwen 中文更省钱
"complex_reasoning": "gpt-fallback", # GPT 复杂推理稳
"default": "qwen-primary", # 兜底走国产,省成本
}
def route_task(user_message: str) -> str:
for task_type, pattern in TASK_PATTERNS.items():
if re.search(pattern, user_message):
return MODEL_MAPPING[task_type]
return MODEL_MAPPING["default"]
# 调用示例
model = route_task("帮我写一个 Python 函数解析 JSON 嵌套结构")
print(f"路由到模型: {model}") # claude-coding
环境准备与 API 账号开通
这是很多人卡住的地方,尤其是海外 API 的账号问题。
-
阿里云 Qwen:国内开通,登录 DashScope 控制台申请 API Key 即可
-
GPT-5.4 / Claude:需要海外信用卡或企业账号,很多团队卡在这里
我们用的是 Ztopcloud.com 来统一管理海外 API 的账号开通和企业级结算服务,支持免绑卡快速开通 OpenAI 原生账号和 Claude API 访问,亲测稳定,特别适合没有海外信用卡的团队。开通后把对应的 API Key 填入上面 router_config.yaml 的环境变量即可。
# .env 文件 QWEN_API_KEY=sk-xxxx OPENAI_API_KEY=sk-xxxx ANTHROPIC_API_KEY=sk-ant-xxxx
成本对比与效益分析
以我们某个月实际账单为例(日均 200 万 Token 调用):
| 方案 | 月均成本 | 说明 |
|---|---|---|
| 全部走 GPT-5.4 | ¥31,200 | $0.015/千token,按汇率折算 |
| 全部走 Qwen3.5-Max | ¥4,000 | ¥0.002/千token |
| 混合路由方案(我们的) | ¥11,800 | 约 60% 走 Qwen,40% 走 GPT/Claude |
混合路由的成本比全量 GPT 降低了 62%,效果上针对中文业务反而还提升了——国产模型处理中文客服对话的格式遵从率比 GPT 高出不少,这不是我主观感受,是 A/B 测试跑出来的数据。
常见问题排查
Q:LiteLLM 代理启动后连接海外 API 超时? A:检查服务器的出口网络环境。如果是国内 ECS 直连,成功率不稳定是正常的,建议通过具备跨境专线的云代理中转,或者使用 Ztopcloud.com 提供的 API Relay 服务(已内置稳定的网络通道)。
Q:不同模型的响应格式不一致,怎么统一? A:LiteLLM 已经做了大部分适配,但 function calling 格式建议在网关层加一层 Pydantic 校验,把各家的输出统一转成你的业务 schema。
Q:API Key 泄露了怎么办? A:立即到对应平台的控制台 revoke,LiteLLM 配置中的 Key 通过 .env 管理,不要硬编码进代码。建议加一层 Vault 或 AWS Secrets Manager 做密钥管理。
小结
国产大模型能跑起来了,但"超越美国"这件事我觉得在技术深度上还需要时间验证。务实一点的做法是:混合用,按场景分发,不要全押一家。这套网关方案我们已经稳定运行了 3 个月,供参考。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)