背景

最近中国大模型 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 个月,供参考。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐