ENTERPILOT/GoModel
AI gateway / AI control plane / AI proxy written in Go. Unified OpenAI-compatible and Anthropic-compatible API for OpenAI, Anthropic, Gemini, Groq, xAI, Ollama, vLLM and more. A LiteLLM alternative with observability, guardrails, streaming, cost tracking, intelligent routing, sticky sessions, failover, real-time logs and usage tracking. Prod ready.
GoModel 是什么?
GoModel 是一个用 Go 编写的开源 AI 网关。它位于你的应用程序(或任何兼容 OpenAI/Anthropic 的 SDK)与众多 LLM 提供商之间,为你处理 HTTP 调用。其主要目标是让使用多个模型变得廉价、可靠且可观测。
核心概念
| 概念 | 为何重要 |
|---|---|
单一端点 – 暴露一个 /v1(OpenAI)或 /v1/messages(Anthropic)API,转发到任何已配置的提供商。 |
你可以在不更改现有代码的情况下切换或混合后端。 |
| 缓存与提示压缩 – 存储精确或语义响应,并可选地在请求到达提供商之前压缩提示。 | 减少 token 使用量,从而降低成本。 |
| 成本与预算跟踪 – 每次请求的成本估算、仪表板、硬性支出限制。 | 防止使用昂贵模型时产生意外账单。 |
| 故障转移与密钥轮换 – 自动重路由、熔断器、多个 API 密钥的轮询。 | 提高可靠性并绕过每个密钥的速率限制。 |
| 可观测性 – Prometheus 指标、OpenTelemetry 追踪、Web UI 中的实时请求流。 | 为你提供监控性能和调试问题所需的数据。 |
可扩展插件与工作流 – 自定义护栏、响应过滤器、路由逻辑,以 Go 插件(.so)形式加载。 |
让团队无需更改应用程序代码即可实施策略(例如,不当内容过滤器)。 |
主要功能(如 README 中所列)
- 缓存 – 精确和语义响应缓存。
- 成本跟踪与预算 – 实时支出分析,每个用户/团队/密钥的硬性限制。
- 速率限制 – 对请求、token、并发数的上限。
- 虚拟模型 – 稳定的模型别名,可在提供商之间进行负载均衡。
- 会话保持 – 将客户端会话固定到特定提供商,以保持其提示缓存温暖。
- 故障转移与弹性 – 重试、熔断器、备用提供商。
- 标签与用户路径 – 密钥、预算和审计日志的分层范围。
- MCP 网关 – 在一个端点后聚合多个 MCP 服务器。
- 透传 API – 在
/p/{provider}/…下直接访问提供商原生端点。 - 音频与图像 API – TTS、转录、图像生成/编辑,均具有相同的访问控制。
- 护栏与插件 – 请求/响应策略、自定义过滤器、路由策略。
- 工作流 – 版本化的每请求策略包。
- 提供商密钥轮换 – 多个 API 密钥的轮询。
- 可观测性 – Prometheus、OpenTelemetry、审计日志、实时流。
- Playground UI – 从仪表板试用任何模型并查看原始 JSON。
谁可能使用它?
| 使用场景 | GoModel 如何帮助 |
|---|---|
| 初创公司或 SaaS 平台,需要在 OpenAI、Anthropic、Gemini 等之间切换而无需重写代码。 | 一个可配置的网关取代了许多 SDK 更改。 |
| 预算严格的团队,希望按项目或用户限制支出。 | 内置成本跟踪、预算和速率限制。 |
| 企业,需要审计日志、SSO 和自定义护栏。 | 仪表板、OpenTelemetry、OIDC SSO(Pro)、插件系统。 |
| 运行自托管 LLM 的开发者(例如,Ollama、vLLM)。 | 支持“所有兼容 OpenAI 的提供商”,并可代理到本地模型。 |
| 需要指标和警报的运维团队。 | Prometheus 指标、熔断器逻辑、健康检查。 |
快速入门(简要回顾)
- 安装 – macOS/Linux 的一行脚本、Windows 的 PowerShell 脚本或 Docker 镜像。
- 配置 –
.env、config.yaml或仪表板 UI;模板列出了所有环境变量。 - 运行 –
gomodel(或docker run …)。管理 UI 位于http://localhost:8080/admin/dashboard。 - 调用 API – 向
/v1/responses(OpenAI 风格)发送 POST,或使用任何指向http://localhost:8080/v1的 OpenAI/Anthropic SDK。
许可证与社区
该仓库是开源的(README 未指定许可证,但 CI、Docker 镜像和公共仓库的存在表明是 OSS 许可证)。该项目正在积极维护 – 链接了 CI 徽章、Docker 拉取、Discord 社区和 Hacker News 讨论。
总结
GoModel 是一个基于 Go 的自托管 AI 网关,允许你在单个兼容 OpenAI 的端点后路由、缓存、监控和控制对数十个 LLM 提供商的请求。它面向需要成本控制、可靠性和可观测性,同时保持现有 SDK 不变的团队。
相关
- 项目
- 项目
- 项目
- 项目
- 项目