工具推荐·阅读约 2 分钟·
GoModel:用 Go 写的高性能开源 AI 网关,LiteLLM 的轻量替代

GoModel:用 Go 写的高性能开源 AI 网关,LiteLLM 的轻量替代

GoModel 是一个用 Go 写的 AI 网关/代理,统一 OpenAI 和 Anthropic 兼容 API,内置缓存、成本追踪、预算限额、智能路由、故障转移和实时日志。作为 LiteLLM 的替代品,它的性能和多 Provider 支持值得一试。

原文来源:GoModel — 用 Go 编写的 AI 网关,统一多家大模型厂商的 API,提供缓存、预算控制、智能路由与可观测性,目标成为 LiteLLM 的高性能替代品。

当你的项目同时接了好几家大模型——OpenAI、Anthropic、Gemini、DeepSeek——API 网关就成了刚需。它把各家差异化的接口统一成一个标准入口,顺便帮你做缓存、限流、成本控制和故障切换。这个赛道里 Python 写的 LiteLLM 是事实标准,但 GoModel 正在用 Go 重新做一遍这件事:MIT 协议、1.1k stars、778 次提交,最近一次提交就在几小时前,项目非常活跃。

它解决什么问题

直接对接多家模型厂商的 API,痛点很明显:每家协议细节不同(OpenAI 兼容和 Anthropic 兼容是两套体系)、每家的 key 有独立速率限制、请求分散导致成本难以汇总、某个厂商故障时没有自动切换机制。GoModel 把这些全部收敛到一个自托管的服务后面:你的业务代码只认一套 OpenAI 兼容接口,底层接哪家、怎么调度、花了多少钱,都由网关处理。

兼容性做得很彻底:暴露 OpenAI 兼容 API(/v1)和 Anthropic 兼容 API(/v1/messages),官方 SDK 无需改动,只要把 base URL 指向 GoModel 服务器、用 GoModel 的 key 即可。支持 OpenAI、Anthropic、Gemini、Groq、xAI、Ollama、vLLM 等主流后端。

—— 广告 ——

核心功能

按 README 的整理,GoModel 的功能清单相当完整:

  • 缓存:精确和语义级响应缓存,重复的 prompt 不再重复花钱
  • 成本追踪:每个请求的成本估算、用量分析和消费明细,仪表盘可视化
  • 预算:按用户、团队或 key 设置硬性消费上限
  • 速率限制:按用户路径、Provider 或模型设置请求数、token 数和并发上限
  • 虚拟模型:用稳定的模型别名做负载均衡(轮询或基于成本),业务代码不用跟着模型改名
  • 故障转移:自动切换到备用 Provider,带重试和熔断器
  • 标签:从 HTTP header 或 API key 给请求打标签,按标签拆分用量
  • 用户路径:key、模型访问、预算、用量和审计日志的分层作用域
  • MCP 网关:把多个 MCP server 聚合到一个带认证的端点
  • Passthrough API:在 /p/{provider}/... 下暴露 Provider 原生 API,同时保留 GoModel 的认证和追踪
  • Guardrails:在网关层强制执行请求和响应策略
  • Provider key 轮换:多个 API key 轮询,突破单 key 速率限制
  • 可观测性:Prometheus 指标、审计日志、仪表盘实时请求流

快速上手

安装和启动非常简单,一条命令:

code
curl -fsSL https://gomodel.enterpilot.io/install.sh | sh
gomodel

Docker 方式也支持:

code
docker run --rm -p 8080:8080 \
  -e OPENAI_API_KEY="your-openai-key" \
  enterpilot/gomodel

启动后打开 http://localhost:8080/admin/dashboard 配置,然后用标准 OpenAI 接口调用:

code
curl http://localhost:8080/v1/responses \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-5-chat-latest", "input": "Hello!"}'

配置方式有三种:.env 环境变量、config.yaml 文件、或仪表盘直接配置。生产环境最安全的做法是用 .env 加载 API key。

值得注意的细节

从提交历史能看出这个项目的工程质量。比如最近加入的 "chatgpt" Provider 支持:可以用 ChatGPT 订阅额度跑 Codex 流量,账单走订阅而不是 OpenAI Platform key。实现上处理了很多边缘情况——上游只支持流式、拒绝 temperature 等参数,GoModel 用白名单构建请求体、把流折叠成非流式响应给调用方;对截断的流正确返回错误而不是"空但成功"的响应。这类细节说明作者在认真对待生产环境的行为。

另一个例子:GoModel 支持 Codex 通过 ChatGPT 订阅计费,并且预置了 gpt-5.6-terra / gpt-5.6-luna 替代 8 月 31 日退役的 gpt-5.4。对用 ChatGPT 订阅省钱跑 Codex 的开发者来说,这是很实用的特性。

适用场景与局限

GoModel 适合这几类人:想把多家模型统一到一个入口的个人开发者和小团队;需要预算硬限制防止 key 被滥用(比如团队共享 key 的场景);想要语义缓存降低重复调用成本的应用;以及对 LiteLLM 的 Python 依赖和体量不满、想要更轻量自托管方案的人。

它和 LiteLLM 的定位高度重合,选择主要看两点:一是你是否偏好 Go 单二进制部署(无 Python 环境依赖、启动快、内存占用低);二是你需要的 Provider 列表是否都被覆盖——GoModel 的覆盖面已经很广,但 LiteLLM 在长尾 Provider 上依然更全。如果只是自用、接几家主流厂商,GoModel 的性能和简洁度是实打实的优势;如果团队有大量小众 Provider 需求,先确认列表再迁移。

分享到
微博Twitter

© 2026 四月

原文链接:https://www.aprilzz.com/tools/gomodel-go-ai-gateway