LLM工程化 高级 25分钟

统一AI API网关

统一接入多个LLM供应商,实现负载均衡、故障转移、成本优化、用量管控。

LiteLLMRedisPrometheusGrafanaKong

项目概述

企业在使用 LLM 的过程中,通常会接入多个供应商(OpenAI、Anthropic、Google、DeepSeek 等)和多种模型(GPT-4、Claude、Gemini)。每个供应商有不同的 API 风格、定价策略、限流规则,底层架构也可能随时变更。如果每个业务团队各自对接,不仅开发成本高、重复造轮子,还难以统一管控成本和安全。

本案例展示了一个基于 LiteLLM 的统一 AI API 网关。网关作为 LLM 流量的唯一入口,实现供应商透明切换、负载均衡、自动故障转移、成本优化、用量监控和权限管控。

关键指标

15+
供应商支持
40%
成本降低
99.9%
故障转移成功率
500万+
月均请求量

系统架构

以 LiteLLM 为核心路由引擎,Redis 作为缓存和限流后端,Prometheus + Grafana 实现可观测性,Kong API 网关提供外部统一入口。

┌──────────────────────────────────────────────────────┐
│              业务应用 / AI Agent 层                     │
│  ┌────────┐  ┌────────┐  ┌────────┐  ┌────────┐     │
│  │ Chatbot│  │ Agent  │  │ RAG    │  │ 分析    │     │
│  └───┬────┘  └───┬────┘  └───┬────┘  └───┬────┘     │
│      │           │           │           │           │
├──────┴───────────┴───────────┴───────────┴──────────┤
│               Kong API 网关 (统一端点)                 │
├──────────────────────┬──────────────────────────────┤
│            LiteLLM 路由引擎                            │
│  ┌──────────────────────────────────────────────┐    │
│  │  ┌────────┐  ┌───────┐  ┌──────┐  ┌──────┐  │    │
│  │  │ 负载均衡│→│ 故障转移│→│ 成本  │→│ 重试  │  │    │
│  │  └────────┘  └───────┘  └──────┘  └──────┘  │    │
│  └──────────────────────────────────────────────┘    │
├──────────┬──────────┬──────────┬──────────┬─────────┤
│  OpenAI  │ Claude   │ Gemini   │ DeepSeek │ 其他     │
│  GPT-4o  │ Sonnet   │ Pro 2.0  │ V3/R1    │ Llama    │
│  GPT-4o- │ Haiku    │ Flash    │          │ Qwen    │
│  mini    │          │          │          │         │
├──────────┴──────────┴──────────┴──────────┴─────────┤
│           可观测性 & 基础设施                          │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐          │
│  │ Prometheus│  │ Grafana  │  │ Redis    │          │
│  │ 指标收集  │  │ 仪表盘   │  │ 缓存/限流 │          │
│  └──────────┘  └──────────┘  └──────────┘          │
└──────────────────────────────────────────────────────┘

实现细节

1

路由与负载均衡

供应商抽象

LiteLLM 提供统一接口,将 15+ 供应商的 API 差异(认证方式、请求格式、流式/非流式、模型命名)封装为一致的 OpenAI-compatible 接口。

智能路由策略

支持多种路由策略:Round-Robin(默认)、Least-Load(最低负载)、Latency-Based(最低延迟)、Cost-Optimized(最低成本)。可按业务场景配置不同策略。

模型别名管理

通过模型别名实现供应商透明切换。如将 "gpt-4o" 别名映射到 "claude-sonnet-4",上游完全无感知。切换后只需更改 LiteLLM 的 config,无需修改业务代码。

2

故障转移与容错

自动故障检测

持续监控每个模型的健康状态(HTTP 5xx、超时、限流 429)。连续 3 次失败自动标记为不健康,从路由池中移除。

级联降级

配置降级链:如 "gpt-4o → claude-sonnet → gemini-pro → gpt-4o-mini"。高级模型不可用时自动降级到次优模型,确保业务不中断。

智能重试

对可恢复的错误(限流、超时)自动重试。支持指数退避、抖动(jitter)、指定重试次数。限流错误增加 0.5-2 秒随机延迟后重试,成功率 95%+。

3

成本优化与管控

成本路由

Cost-Optimized 策略根据实时成本数据自动选择最便宜的可用模型。对于非关键请求(如数据摘要、内容分类),优先使用低成本模型。

预算管控

按团队、项目、模型设置月度预算上限。达到阈值后自动告警、降级或限制。支持预算滚动周期(月度/季度/年度)。

用量监控

每 15 秒收集一次指标:输入/输出 Token 数、请求延迟、错误率、成本累计。Grafana 仪表盘实时展示,支持按团队、模型、时间段多维度下钻。

LiteLLM 网关配置

# config.yaml — LiteLLM 网关配置
model_list:
  # 主模型:GPT-4o
  - model_name: gpt-4o
    litellm_params:
      model: openai/gpt-4o
      api_key: os.environ/OPENAI_API_KEY
    model_info:
      tier: premium
      cost_per_input_token: 0.000005
      cost_per_output_token: 0.000015

  # 备用模型:Claude Sonnet
  - model_name: gpt-4o
    litellm_params:
      model: anthropic/claude-3.5-sonnet
      api_key: os.environ/ANTHROPIC_API_KEY
    model_info:
      tier: premium

  # 降级模型:Gemini
  - model_name: gpt-4o
    litellm_params:
      model: gemini/gemini-1.5-pro
      api_key: os.environ/GEMINI_API_KEY
    model_info:
      tier: standard

  # 经济模型:用于非关键请求
  - model_name: gpt-4o-mini
    litellm_params:
      model: openai/gpt-4o-mini
      api_key: os.environ/OPENAI_API_KEY
    model_info:
      tier: economy

router_settings:
  routing_strategy: latency-based  # 或 cost-optimized
  fallbacks:
    - gpt-4o: [claude-3.5-sonnet, gemini-1.5-pro, gpt-4o-mini]
  retry_policy:
    max_retries: 3
    retry_on_status: [429, 500, 502, 503]
    backoff_base: 1.0
    backoff_exponent: 2.0

general_settings:
  alerting:
    slack_webhook_url: os.environ/SLACK_WEBHOOK
    budget_alerts:
      - threshold: 75%
        action: warn
      - threshold: 90%
        action: degrade
      - threshold: 100%
        action: block
  cache:
    type: redis
    host: os.environ/REDIS_HOST
    port: 6379
    ttl: 3600
  max_parallel_requests: 100
  request_timeout: 120

经验教训

  • 模型别名是杀手特性 — 部署初期不要告诉业务团队底层用的具体模型,通过别名抽象后,切换供应商时完全无感。就连 OpenAI 断供 GPT-4 时我们 5 分钟就切到了 Claude
  • 成本路由需要业务打标 — 只有对请求做了优先级标记(critical/standard/batch),才能让成本优化策略生效。一开始所有请求都是 critical,成本根本降不下来
  • 缓存策略收益极高 — 对于 idempotent 请求(如数据分类、摘要),开启 Redis 缓存后命中率可达 30-40%,大幅降低成本和延迟
  • 可观测性要早于做 — 没有监控就不知道哪个模型有问题、哪个团队花最多钱。建议网关上线第一天就接好 Prometheus + Grafana

更多案例

查看其他 AI 工程化落地案例

返回案例库