theopenco/llmgateway

Route, manage, and analyze your LLM requests across multiple providers with a unified API interface.

LLM Gateway – 是什么

LLM Gateway 是一个开源的 API 网关,位于您的应用程序与多个大语言模型(LLM)提供商(OpenAI、Anthropic、Google Vertex AI 等)之间。它提供单一的 OpenAI 兼容端点,让您将不同提供商的密钥集中存储在一个地方,并记录使用数据,以便查看您已消耗的 token 数量以及每次调用的成本。


核心功能(如 README 所述)

  • 统一 API – 调用遵循 OpenAI 的 /v1/chat/completions 格式,因此您无需更改客户端代码即可切换提供商。
  • 多提供商路由 – 可为每个请求配置要调用的后端模型;网关会将请求转发到相应的提供商。
  • 密钥管理 – 将所有提供商的 API 密钥集中管理,通过启动时设置的密钥进行保护。
  • 使用分析 – 服务会记录请求次数、token 使用量、响应延迟和成本,帮助您监控和优化支出。
  • 性能监控 – 从同一仪表板比较不同模型/提供商之间的延迟和价格。
  • 自托管或 SaaS – 可使用 llmgateway.io 上的托管服务,或自行部署整个栈。

如何运行

托管选项

  1. llmgateway.io 上注册。
  2. 获取 API 密钥,并开始向 https://api.llmgateway.io/v1/... 发送请求。

自托管(Docker 优先)

  1. 生成两个密钥:
    export LLM_GATEWAY_SECRET=$(openssl rand -base64 32 | tr -d '\n')
    export GATEWAY_API_KEY_HASH_SECRET=$(openssl rand -base64 32 | tr -d '\n')
    
  2. 运行提供的脚本以创建 PostgreSQL 和 Redis 卷并启动统一容器,或手动使用命名卷启动容器(完整 docker run 命令请参见 README)。
  3. 容器暴露多个端口(3002–3007,4001–4002)用于 UI、API 和内部服务。
  4. 启动后,您可以像调用 OpenAI 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?"}]}'
    

开发工作流

  • 依赖管理 – 使用 pnpm。运行 pnpm i && pnpm run setup 安装包、启动 Docker 服务、同步数据库模式并填充数据。
  • 开发服务器pnpm dev 以监听模式启动所有应用(前端仪表板、API、网关等)。
  • 生产构建pnpm build 生成用于部署的优化包。
  • 单体仓库结构 – 仓库为单体仓库,包含多个 Next.js 应用(uiplaygroundcodeairsidedocs)和共享包(dbmodelsshared)。实际路由逻辑位于 apps/gateway(Hono 后端)。

许可证

  • 开源核心 – AGPL-v3(参见 LICENSE)。
  • 企业附加功能ee/ 目录包含高级计费、无限数据保留、多组织管理等商业功能,采用独立的企业许可证。详情请联系 contact@llmgateway.io

谁会使用它?

  • 需要在不重写客户端代码的情况下切换或组合多个 LLM 提供商的产品团队。
  • 希望在一个地方审计 token 使用量和成本的组织。
  • 偏好自托管以满足数据隐私或合规要求的开发者。

总结

LLM Gateway 是一个实用、生产就绪的中间件,抽象了 LLM API 之间的差异,增加了分析功能,并提供 SaaS 和自托管两种部署路径。它以 TypeScript 单体仓库构建,支持 Docker,并在 UI、API 和网关组件之间保持清晰分离。

相关

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