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 散落在各处 |
| 快速原型开发 | 用统一格式先接好网关,换模型只改一行配置,不用改业务代码 |
坑与注意
- AGPLv3 许可证:核心路由层开源免费,但如果使用其企业版功能(高级计费、团队管理、超长数据保留等),需购买商业许可证。
- 托管版 5% 手续费:自带密钥(Bring Your Own Keys)模式免手续费,但平台会在充值额度上收 5% 固定手续费。
- 端口众多:自托管需要暴露 6 个端口(3002/3003/3005/3006/4001/4002),内网穿透或 K8s 部署时需要合理配置 Service。
- PostgreSQL + Redis 强依赖:没有内置嵌入式存储,生产环境需要额外部署数据库,不算"零依赖"。
- GitHub 文档有限:README 较为简略,高级配置(自定义 provider、认证方式、自定义模型映射)需要更多摸索。
- 成熟度标注为 research:相比 Portkey、TrueFoundry 等已大量商用的网关,llmgateway 社区较小,遇到复杂问题支持有限。
- 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 一键启动即可本地使用。