tbphp/gpt-load
Self-hosted AI gateway for multi-channel, multi-credential setups — API keys and subscription accounts, scheduling, failover, request logs and usage. 自托管 AI 网关:多渠道多凭据统一接入,含密钥与订阅账号、调度容错、日志与用量。
GPT-Load - 面向 LLM API 的自托管网关
功能
- 提供一个模拟原生 OpenAI、Anthropic、Gemini 等 API 的单个 HTTP 端点。
- 在该端点背后,您可以配置多个通道(不同的提供商、账户或订阅服务),并让网关根据权重、健康状况或成本路由请求。
- 处理 API 密钥管理、OAuth 流程、重试、冷却、黑名单以及按客户端的访问密钥。
- 在由 SQLite、MySQL 或 PostgreSQL 支持的嵌入式 UI 中存储日志、使用统计和成本估算,凭据在磁盘上加密。
为什么需要它
- 当应用程序需要与多个 LLM 提供商(OpenAI、Claude、Gemini、Bedrock 等)通信而无需为每个提供商修改代码时。
- 在多个 API 密钥之间平衡流量,避免速率限制命中,并在一个密钥失败时自动回退到健康的密钥。
- 在一个地方维护所有 LLM 调用的统一审计跟踪和成本仪表板。
关键组件
| 组件 | 作用 |
|---|---|
| 网关服务器(用 Go 编写) | 暴露 OpenAI 兼容路由,将请求转发到选定的上游通道,并应用调度和重试逻辑。 |
| 管理 UI | Web 控制台(端口 3001),用于添加通道、组和 AccessKey;显示健康状况、日志和使用图表。 |
| 通道 | 特定上游服务(例如 OpenAI、Anthropic、自定义 OpenAI 兼容中继)以及一个或多个 API 凭据的配置。 |
| 组 | 带有模型白名单和路由策略(权重、冷却、会话亲和性)的通道集合。 |
| AccessKey | 提供给客户端应用程序的令牌,决定客户端可以使用哪些组和协议。 |
支持的协议和模型
- OpenAI 聊天、补全、嵌入、图像、重排、OCR/音频等。
- Anthropic
messages、Geminimodels端点、Mistral OCR/音频以及通用 OpenAI 兼容中继。 - 超过 30 个内置提供商:OpenAI、Azure OpenAI、AWS Bedrock、Google Vertex AI、Claude、Gemini、DeepSeek、Moonshot、Hugging Face、Cohere、Groq 等,以及 Codex、Grok 等基于订阅的服务。
部署选项
- Docker Compose(默认) – 在容器中运行服务,将数据存储在 Docker 卷(
gpt-load-data)中。 - 原生二进制 – 下载适用于 Linux/macOS/Windows 的预构建可执行文件;Windows 还提供创建服务的安装程序。
- 数据库 – 开箱即用的 SQLite;可通过
DATABASE_DSN切换到 MySQL 或 PostgreSQL。
配置亮点
.env文件控制主机、端口、超时、日志记录、代理设置和加密密钥。AUTH_KEY保护管理 UI;ENCRYPTION_KEY加密存储的 API 密钥(必须与数据库一起备份)。CLIENT_IP_HEADER和TRUSTED_PROXIES允许您在反向代理后面运行并强制执行基于 IP 的限制。
典型工作流程
- 启动 服务(
docker compose up -d)。 - 读取 生成的管理密钥(
cat /app/data/auth.key)。 - 登录
http://127.0.0.1:3001并添加一个通道(例如 OpenAI + 您的 API 密钥)。 - 创建组,选择通道和要暴露的模型。
- 生成访问密钥,并在调用网关时在
Authorization: Bearer ...请求头中使用该密钥。
需要谨慎的情况
- 丢失
encryption.key将使所有存储的凭据无法恢复。 - 版本 2.0 是全面重写,无法从旧的 1.x 系列导入数据。
- 服务默认绑定到 localhost – 仅在您自己的防火墙或反向代理后面暴露它。
许可证与社区
- MIT 许可的核心代码。
- 依赖 Apache-2.0
Bifrost Core实现提供商适配器,依赖 MITCLIProxyAPI处理 OAuth。 - 官方 Docker 镜像:
ghcr.io/tbphp/gpt-load:2。
所有细节均直接来源于项目的 README。
相关
- 项目
- 项目
- 项目
- 项目
- 项目