一个轻量级 LLM 网关管理系统,提供直观的 Web UI 界面,用于管理多个 LLM 提供商、虚拟密钥、路由配置和模型管理
更多截图请见 服务截图
- 提供商管理: 支持 20+ 主流 LLM 提供商,包括 OpenAI、Anthropic、Google、DeepSeek 等
- 虚拟密钥: 创建和管理虚拟 API 密钥,支持速率限制和访问控制
- 路由配置: 支持负载均衡和故障转移策略,提高服务可用性
- 模型管理: 统一管理所有提供商的模型,支持批量导入和自定义配置
- 多端点支持: 提供
/v1/chat/completions、/v1/responses、/v1/messages等多个兼容端点 - Prompt 管理: 为虚拟模型配置 prompt 处理规则,支持替换、前置添加、系统消息等操作
- LiteLLM 预设集成: 自动从 LiteLLM 官方库获取模型配置,支持搜索和一键应用
- 健康监控: 公开免登录健康检查页面,实时展示模型可用率、延迟分位数(P50/P95)和错误分布
- 用户认证: 基于 JWT 的安全认证机制
- 实时监控: 仪表盘展示系统状态和配置信息
- 中转站支持: 隔离 Codex 等上游强制注入的提示词,使得下游应用对 Prompt 遵循更规范
- Node.js v20 或更高版本
- npm / cnpm
- Docker (可选,用于容器化部署)
# 克隆仓库
git clone https://github.com/sxueck/llm-gateway.git
cd llm-gateway
# 安装后端依赖
pnpm install
# 安装前端依赖
cd web
pnpm install
cd ..创建 .env 文件并配置环境变量:
cp .env.example .env编辑 .env 文件:
PORT=3000
NODE_ENV=development
DB_PATH=./data/gateway.db
LOG_LEVEL=info
JWT_SECRET=your-secret-key-change-this-in-production重要: 生产环境请务必修改 JWT_SECRET 为一个强随机字符串(至少 32 字符)。
npm run start:all此命令将自动:
- 分别启动前后端服务
- 初始化数据库
请参考 Docker 部署指南
- 添加供应商,这个供应商指的是类似 DeepSeek 这样的 AI 服务商,并填入供应商密钥
- 添加模型,模型指的是供应商提供的 AI 模型,例如 DeepSeek 的
deepseek-chat - 创建虚拟密钥,虚拟密钥用于访问 LLM Gateway 的 API
- (可选) 为虚拟模型配置 Prompt 管理规则,实现 prompt 的动态修改和增强
- 在应用中使用虚拟密钥访问 LLM Gateway 的 API
LLM Gateway 提供公开的健康监控页面,无需登录即可访问,实时展示各模型的可用性和性能指标。
- 在“系统设置 -> 监控设置”中开启“启用持久监控”
- 首次开启时系统会自动创建一个“监控专用虚拟密钥”,具备访问全部模型的能力,仅用于健康检查,且默认禁用请求体/响应体日志
- 只有当“持久监控”为开启状态时,以下能力才会生效:
- 后端健康检查调度器运行(周期性对目标执行健康检查)
- 公开监控页面与相关免鉴权 API 可访问
- 可随时关闭“持久监控”,系统将停止调度器并关闭公开访问(公开端点返回 404)
访问 http://your-gateway-url/status 即可查看健康监控页面。
- 实时状态监控: 显示所有配置的模型目标的当前状态(健康/降级/宕机)
- 可用率统计: 展示 1小时 和 24小时 的可用率
- 延迟指标: P50 和 P95 延迟统计
- 错误追踪: 记录并展示错误类型和错误信息
- 自动刷新: 默认每 60 秒自动刷新数据
- 详细历史: 点击目标可查看详细的检查历史记录
健康监控提供以下公开 API 端点(免鉴权):
GET /public/health/summary- 获取所有目标的汇总信息GET /public/health/targets- 获取目标清单GET /public/health/detail?target_id=xxx- 获取单个目标的详细信息GET /public/health/runs?target_id=xxx&window=24h&page=1&page_size=50- 获取检查历史记录
健康检查目标通过数据库配置,可以为任何模型或虚拟模型设置健康检查:
-- 示例:为模型添加健康检查
INSERT INTO health_targets (id, name, type, target_id, enabled, check_interval_seconds, check_prompt)
VALUES ('target-1', 'DeepSeek Chat', 'model', 'model-id-here', 1, 300, 'Say "OK"');主要配置参数:
check_interval_seconds: 检查频率(秒),默认 300 秒(5分钟)check_prompt: 健康检查使用的提示词,默认为 "Say 'OK'"check_config: JSON 配置,可设置超时、重试等参数
健康监控 API 默认启用限流保护,每个 IP 每分钟最多 60 个请求,超过限制将返回 429 错误。
# 安装后端依赖
pnpm install
# 安装前端依赖
cd web && pnpm install && cd ..
# 直接启动前后端
npm run start:all欢迎提交 Issue 和 Pull Request!
MIT License - 详见 LICENSE 文件