theopenco/llmgateway · 上手攻略

  • 仓库:theopenco/llmgateway
  • 链接:https://github.com/theopenco/llmgateway
  • 分类:llm-infra
  • 作者:Tom
  • 更新:2026-07-31

是什么

LLM Gateway 是一个开源的 LLM API 网关,作为应用层与多个 LLM 提供商之间的中间件,提供统一的 API 接口。开发者只需集成一次网关,后续可自由切换/混用 OpenAI、Anthropic、Google Vertex AI 等多种模型,无需逐一对接每个提供商的 SDK 和认证体系。

同时,它内置了用量追踪、成本分析和性能监控功能,让团队一目了然地掌握各模型的实际消耗。LLM Gateway 有两种使用方式:

  • 托管版:在 llmgateway.io 注册,直接用 API Key 调用,月费+按量计费(平台收取 5% 固定手续费)
  • 自托管版:通过 Docker 部署,完全免费(AGPLv3 协议),数据留本地

仓库地址的 GitHub stars 目前约 1415(2026年7月数据),周增 +21,成熟度标注为 research,但产品本身已完成度较高,已提供统一的 Docker 一件启动脚本。

解决什么问题

直接对接多个 LLM 提供商的典型痛处:

  • SDK 不统一:OpenAI 用 openai 库,Anthropic 用 anthropic 库,Google 用 vertexai,每个都有独立的认证、错误处理、重试逻辑。
  • 密钥管理混乱:每个提供商一个 API Key,分散在多个地方,泄露风险高,轮换困难。
  • 没有统一监控:无法横向对比 GPT-4o 和 Claude-3.5-Sonnet 的响应时间、成本和 token 消耗。
  • 切换成本高:一旦业务深度绑定某一家提供商的 SDK,换模型需要大量代码改动。

LLM Gateway 用统一的 OpenAI 兼容格式(/v1/chat/completions 等)封装所有请求,以上问题一次解决。

快速安装

环境要求

  • Docker Desktop(或 Docker Engine)
  • openssl(生成随机密钥用)
  • docker compose(若用 compose 方式启动)
  • 推荐:至少 4 核 8GB 虚拟机

自托管(推荐方式)

方式一:使用统一启动脚本(最简)

# 克隆仓库
git clone https://github.com/theopenco/llmgateway.git
cd llmgateway

# 生成安全密钥(必需)
export LLM_GATEWAY_SECRET="$(openssl rand -base64 32 | tr -d '\n')"
export GATEWAY_API_KEY_HASH_SECRET="$(openssl rand -base64 32 | tr -d '\n')"

# 一键启动(自动拉起 PostgreSQL + Redis + 各微服务)
./scripts/run-unified-container.sh

方式二:手动 docker run

# 创建持久化卷
docker volume create llmgateway_postgres
docker volume create llmgateway_redis

# 启动容器
docker run -d \
  --name llmgateway \
  --restart unless-stopped \
  -p 3002:3002 \
  -p 3003:3003 \
  -p 3005:3005 \
  -p 3006:3006 \
  -p 4001:4001 \
  -p 4002:4002 \
  -v llmgateway_postgres:/var/lib/postgresql/data \
  -v llmgateway_redis:/var/lib/redis \
  -e AUTH_SECRET="$LLM_GATEWAY_SECRET" \
  -e GATEWAY_API_KEY_HASH_SECRET="$GATEWAY_API_KEY_HASH_SECRET" \
  ghcr.io/theopenco/llmgateway-unified:latest

⚠️ 不要 bind-mount 主机目录/var/lib/postgresql/data,否则权限初始化可能失败。用 docker volume create 创建命名卷更稳定。

托管版(直接调用)

# 直接调用托管 API
curl -X POST https://api.llmgateway.io/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $LLM_GATEWAY_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Hello, how are you?"}]
  }'

核心用法

统一 API 调用(OpenAI 兼容)

一次集成,随意切换模型:

from openai import OpenAI

# 只需改 base_url 和 API key,SDK 代码完全不用动
client = OpenAI(
    base_url="https://api.llmgateway.io/v1",  # 或 http://localhost:3002/v1(自托管)
    api_key="llmgw_xxxxxxxxxxxx"
)

# 切模型只需改 model 参数
r = client.chat.completions.create(
    model="gpt-4o",        # 切 Claude: "claude-3-5-sonnet-20241022"
    messages=[{"role": "user", "content": "Explain quantum entanglement."}]
)
print(r.choices[0].message.content)

前端面板(托管版/自托管均有)

启动后访问: - http://localhost:3002 — 主仪表盘(用量概览) - http://localhost:3003 — Playground(聊天测试) - http://localhost:3006 — 管理员面板(密钥管理)

开发者自托管本地开发

# 克隆后安装依赖(pnpm)
git clone https://github.com/theopenco/llmgateway.git
cd llmgateway
pnpm i && pnpm run setup  # 安装依赖 + 启动 Docker 服务 + 同步数据库 schema + 种子数据

# 启动开发服务器
pnpm dev

架构概览(自托管部署后各端口服务)

端口 服务
3002 主 UI / 仪表盘
3003 Playground(聊天测试)
3005 API 网关核心
3006 管理员面板
4001 / 4002 内部微服务通信端口

典型适用场景

场景 说明
多模型聚合产品 需要同时给用户提供 GPT-4o / Claude / Gemini 选择,但不想维护多套 SDK
成本敏感团队 对各模型实际用量没有感知,LLM Gateway 仪表盘直接看到谁贵谁便宜
数据合规要求 不能把数据发给境外 API 服务商,选择自托管,数据完全留本地
LLM 能力对比 A/B 测试不同模型在同一业务场景的实际表现(延迟、成本、质量)
密钥集中管理 多个人/服务需要调用 LLM,但不想把 API key 散落在各处
快速原型开发 用统一格式先接好网关,换模型只改一行配置,不用改业务代码

坑与注意

  1. AGPLv3 许可证:核心路由层开源免费,但如果使用其企业版功能(高级计费、团队管理、超长数据保留等),需购买商业许可证。
  2. 托管版 5% 手续费:自带密钥(Bring Your Own Keys)模式免手续费,但平台会在充值额度上收 5% 固定手续费。
  3. 端口众多:自托管需要暴露 6 个端口(3002/3003/3005/3006/4001/4002),内网穿透或 K8s 部署时需要合理配置 Service。
  4. PostgreSQL + Redis 强依赖:没有内置嵌入式存储,生产环境需要额外部署数据库,不算"零依赖"。
  5. GitHub 文档有限:README 较为简略,高级配置(自定义 provider、认证方式、自定义模型映射)需要更多摸索。
  6. 成熟度标注为 research:相比 Portkey、TrueFoundry 等已大量商用的网关,llmgateway 社区较小,遇到复杂问题支持有限。
  7. Notion/Wiki 提到端口 3002/3003:自托管时确认一下官方文档给出的端口映射,避免用错端口导致连不上。

与同类对比

特性 LLM Gateway Portkey LiteLLM OpenRouter Helicone
部署方式 自托管 + 托管版 SaaS + 自托管 自托管 仅托管 SaaS + 自托管
许可证 AGPLv3 / 商业 专有 MIT 专有 专有
多 provider 支持 ✅(1600+) ✅(130+)
OpenAI 兼容格式
用量追踪/分析 基础 基础 ✅(强项)
成本分析 基础 基础
自托管免费
社区规模 较小 成熟 活跃 成熟 活跃
模型数量 中等 极多 极多 中等
数据自控(自托管) 部分 部分

结论:LLM Gateway 的差异化在于真正完全免费的自托管(对比 Portkey 等纯 SaaS),以及内置的统一计费/分析。如果你需要将 LLM 请求路由能力留在自己服务器上,且希望有不错的分析功能,它是当前开源选项中值得尝试的轻量方案;如果只需要路由+最小的自托管,LiteLLM 社区更活跃;如果需要大量第三方模型的一站式接入,OpenRouter 更省心。

一句话推荐结论

有数据合规需求或想完全自控的团队,LLM Gateway 是开源 LLM 网关中少数同时提供路由+分析+免费自托管的完整方案,Docker 一键启动即可本地使用。