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、Gemini models 端点、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 的限制。

典型工作流程

  1. 启动 服务(docker compose up -d)。
  2. 读取 生成的管理密钥(cat /app/data/auth.key)。
  3. 登录 http://127.0.0.1:3001 并添加一个通道(例如 OpenAI + 您的 API 密钥)。
  4. 创建组,选择通道和要暴露的模型。
  5. 生成访问密钥,并在调用网关时在 Authorization: Bearer ... 请求头中使用该密钥。

需要谨慎的情况

  • 丢失 encryption.key 将使所有存储的凭据无法恢复。
  • 版本 2.0 是全面重写,无法从旧的 1.x 系列导入数据。
  • 服务默认绑定到 localhost – 仅在您自己的防火墙或反向代理后面暴露它。

许可证与社区

  • MIT 许可的核心代码。
  • 依赖 Apache-2.0 Bifrost Core 实现提供商适配器,依赖 MIT CLIProxyAPI 处理 OAuth。
  • 官方 Docker 镜像:ghcr.io/tbphp/gpt-load:2。

所有细节均直接来源于项目的 README。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目