LLM API 网关 · 企业私有化部署

基于快手万擎网关 · 多租户隔离 · 账户额度管控 · 两种方案可选

New APILiteLLM的关系——两者都能作为 API 网关接入万擎,根据需求二选一即可。

方案 A:New API(一栈式企业网关)

适合场景:需要 Web 管理后台、多租户 Key 管理、开箱即用的额度/限流/计费系统。

QuantumNous/new-api ⭐ 35,956

架构

┌──────────────────────────────────────────────┐ │ 企业用户层 │ │ 部门A (Key-1) 部门B (Key-2) 客户C (Key-3) │ └──────────────────┬───────────────────────────┘ │ OpenAI 兼容调用 ┌──────────────────▼───────────────────────────┐ │ New API (统一网关) │ │ │ │ 用户管理 · Key分发 · 额度管控 · 日志审计 │ │ 渠道聚合 · 限流 · 计费 · Web Admin │ └──────┬──────────────────────┬─────────────────┘ │ │ ┌──────▼──────┐ ┌──────────▼──────────┐ │ 快手万擎 │ │ 其他模型源 │ │ DeepSeek │ │ Claude · OpenAI │ │ 混元 · Qwen │ │ 自建 vLLM │ └─────────────┘ └─────────────────────┘

账户隔离

维度实现
Key 隔离每用户/应用独立 API Key,互不可见
额度隔离按 Key / Group 设置 token 日上限 + 月上限,超额 429
路由隔离不同 Group 路由不同模型优先级(研发→万擎,客户→海外池)
审计隔离超级管理员 / 组管理员 / 普通用户三级权限

万擎渠道配置

# New API 渠道配置
channels:
  - name: "快手万擎-DeepSeek"
    type: "openai"
    base_url: "https://wanqing.kuaishou.com/v1"
    key: "${WANQING_API_KEY}"
    models: ["deepseek-chat", "deepseek-reasoner"]
    groups: ["研发部", "产品部"]   # 限定可用部门

  - name: "快手万擎-混元"
    type: "openai"
    base_url: "https://wanqing.kuaishou.com/v1"
    key: "${WANQING_API_KEY}"
    models: ["hunyuan-turbo", "hunyuan-pro"]

  - name: "Anthropic-Claude"
    type: "anthropic"
    base_url: "https://api.anthropic.com"
    key: "${ANTHROPIC_API_KEY}"
    models: ["claude-opus-4-8", "claude-sonnet-4-6"]

部署

# docker-compose.yml
services:
  postgres:
    image: postgres:16

  redis:
    image: redis:7-alpine

  new-api:
    image: calciumion/new-api:latest
    ports: ["3000:3000"]
    environment:
      SQL_DSN: "postgres://admin:${DB_PASSWORD}@postgres/apigateway"
      REDIS_CONN_STRING: "redis://redis:6379"
      SESSION_SECRET: ${SESSION_SECRET}
    depends_on: [postgres, redis]

优点 / 缺点

优点
  • 自带 Web Admin 面板,运维友好
  • 多租户 Key 管理 + 额度/限流开箱即用
  • 渠道层统一管理所有模型源
  • 国内社区活跃,中文文档齐全
缺点
  • 组件较重,需要 Postgres + Redis
  • 不内置 cost tracking(需外挂)
  • 格式转换能力弱于 LiteLLM
  • 更新频繁,稳定版需锁定版本

方案 B:LiteLLM(轻量模型代理)

适合场景:已有自建用户体系,只需统一模型接入 + 负载均衡 + cost tracking + fallback。

BerriAI/litellm ⭐ 23,000+

架构

┌──────────────────────────────────────────────┐ │ 企业自建用户系统 (已有) │ │ 部门A 部门B 客户C │ └──────────────────┬───────────────────────────┘ │ 通过自建系统分配 Key + 额度 ┌──────────────────▼───────────────────────────┐ │ LiteLLM Proxy (模型代理) │ │ │ │ 统一 OpenAI 格式 · 负载均衡 · fallback │ │ cost tracking · budget · spend 报表 │ │ virtual key · team 隔离 │ └──────┬──────────────────────┬─────────────────┘ │ │ ┌──────▼──────┐ ┌──────────▼──────────┐ │ 快手万擎 │ │ 其他模型源 │ │ DeepSeek │ │ Claude · OpenAI │ │ 混元 · Qwen │ │ 自建 vLLM │ └─────────────┘ └─────────────────────┘

账户隔离(LiteLLM Virtual Key + Team)

机制实现
Virtual Key每个用户/应用生成独立 Key,关联到 Team
Team 隔离Team 级 budget + rpm/tpm 上限,超额自动拦截
Model Access按 Team 限定可用模型列表
Spend Tracking内置 dashboard,按 Key/Team/Model 查看费用

万擎代理配置

# LiteLLM proxy config.yaml
model_list:
  - model_name: deepseek-chat
    litellm_params:
      model: openai/deepseek-chat
      api_base: https://wanqing.kuaishou.com/v1
      api_key: ${WANQING_API_KEY}
      rpm: 1000
      tpm: 5000000

  - model_name: hunyuan-turbo
    litellm_params:
      model: openai/hunyuan-turbo
      api_base: https://wanqing.kuaishou.com/v1
      api_key: ${WANQING_API_KEY}

  - model_name: claude-opus-4-8
    litellm_params:
      model: anthropic/claude-opus-4-8
      api_key: ${ANTHROPIC_API_KEY}

litellm_settings:
  fallbacks:
    - deepseek-chat: qwen-max     # 万擎挂了自动切备用
  num_retries: 3
  request_timeout: 600

general_settings:
  master_key: ${LITELLM_MASTER_KEY}
  database_url: "postgresql://..."

router_settings:
  allowed_fails: 3
  cooldown_time: 30               # 冷却 30 秒再重试

Virtual Key + Team 配置示例

# 创建 Team + 分配额度
curl -X POST http://localhost:4000/team/new \
  -H "Authorization: Bearer ${MASTER_KEY}" \
  -d '{"team_alias":"rd-dept","models":["deepseek-chat","hunyuan-turbo"],"max_budget":100,"tpm_limit":500000}'

# 给小王发 Key
curl -X POST http://localhost:4000/key/generate \
  -H "Authorization: Bearer ${MASTER_KEY}" \
  -d '{"team_id":"rd-dept","key_alias":"wang-key","max_budget":30,"rpm_limit":20}'

部署

# docker-compose.yml
services:
  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    ports: ["4000:4000"]
    volumes:
      - ./litellm_config.yaml:/app/config.yaml
    environment:
      DATABASE_URL: "postgresql://user:pass@postgres/litellm"
      LITELLM_MASTER_KEY: ${LITELLM_MASTER_KEY}
      STORE_MODEL_IN_DB: "true"

  postgres:
    image: postgres:16

优点 / 缺点

优点
  • 轻量级,部署简单
  • 100+ provider 统一 OpenAI 格式
  • 内置 cost tracking + spend dashboard
  • 自动 fallback + 负载均衡
  • Virtual Key / Team 实现租户隔离
缺点
  • 无自建用户管理,需外挂用户系统
  • Web UI 较简单,不如 New API 的 Admin 面板
  • 社区以英文为主
  • 部分国产模型适配需手动调参

选型对比

维度New APILiteLLM
GitHubQuantumNous/new-api ⭐35KBerriAI/litellm ⭐23K
定位一站式 API 网关 + 运营平台轻量模型代理 + 统一接口
用户管理内置 Web Admin,开箱即用需自建或外挂用户系统
Key 管理Group/Key 二级隔离Virtual Key + Team 隔离
额度管控日/月 token 上限 + RPMTeam budget + tpm/rpm limit
计费基础用量统计内置 cost tracking + spend 报表
格式转换OpenAI + Anthropic100+ provider 统一格式
Fallback手动配置备用渠道自动 fallback + 冷却重试
部署复杂度PG + Redis + New APIPG + LiteLLM (更轻)
社区中文活跃英文为主
适用场景需要完整运营后台的 API 分销/企业网关已有用户体系,只需统一模型接入层
建议:如果用户体系从零起步 → 选 New API(一栈搞定)。如果已有用户系统 + 需要精确 cost tracking → 选 LiteLLM(更轻更专)。两者都能完美接入万擎,万擎作为 OpenAI 兼容的模型源接入即可。