【免费下载链接】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是一个用 Go 编写的AI 网关(AI Gateway / AI 控制面),也是AI 代理(AI Proxy)。它能把 OpenAI、Anthropic、Gemini、Groq、xAI、Ollama、vLLM 等数十家大模型服务商,统一封装成一套 OpenAI 兼容接口 + 一套 Anthropic 兼容接口,并内置可观测性、护栏(Guardrails)、流式输出、成本跟踪、智能路由、故障转移与实时用量统计。下文带你理解 AI 网关的本质,并完整演示如何用 GoModel同时接入 OpenAI 与 Anthropic 双协议。
一、AI 网关是什么?为什么需要它?
想象一下:你的产品同时调用 OpenAI 的gpt-4o、Anthropic 的claude、以及本地 Ollama 的llama3。如果没有中间层,你会遇到一堆麻烦:
- 接口不统一:OpenAI 用
/v1/chat/completions,Anthropic 用/v1/messages,请求和响应字段各不相同; - 密钥分散:每个服务商一套 Key,散落在代码各处,难以轮换和审计;
- 成本失控:Token 花在哪、花了多少,全凭各家账单;
- 单点风险:某家服务商抖动或限流,你的服务直接不可用。
AI 网关就是站在"你的应用"和"所有大模型服务商"之间的统一入口:
| 痛点 | AI 网关如何解决 |
|---|---|
| 多服务商接口不一致 | 用一套标准协议对外,网关负责翻译到各家上游 |
| 密钥分散难管理 | 集中托管密钥,支持多 Key 轮换、按团队下发 |
| 成本不透明 | 逐请求估算成本、聚合用量、可视化看板 |
| 上游不稳定 | 故障转移、重试、熔断、智能路由 |
一句话:AI 网关让你"只维护一个入口",就能安全、可控地调用所有大模型。
二、GoModel 是什么:一个用 Go 写的 AI 网关
GoModel 的定位非常直接——"你最后会一直用的那个 AI 网关"(The last AI gateway you will ever need)。它用Go实现,特点是快、资源占用低、生产可用(Prod ready),同时提供:
- 🧩双协议接入:同时提供 OpenAI 兼容 API(
/v1)与 Anthropic 兼容 API(/v1/messages); - 🌐广泛的模型供应商支持:OpenAI、Anthropic、Google Gemini、xAI、Groq、DeepSeek、Azure、Bedrock、Ollama、vLLM 等;
- 📊管理台 Dashboard:实时审计日志、用量分析、成本跟踪、Playground 试跑;
- 🛡️生产级能力:预算(Budgets)、限流(Rate limits)、护栏(Guardrails)、工作流(Workflows)、虚拟模型(Virtual models)、故障转移与韧性。
💡 GoModel 常被作为LiteLLM 的替代品:协议相同、客户端几乎只需改一个 base URL,配置还能一键迁移(见第七节)。
完整功能与供应商矩阵,可参考项目根目录的 README.md。
三、核心亮点:一套网关,OpenAI 与 Anthropic 双协议
这是 GoModel 最值得强调的能力:同一个网关、同一套密钥,既能接 OpenAI SDK,也能接 Anthropic SDK。官方 SDK无需任何改动,只要把 base URL 指向网关即可:
| 客户端 | 指向 GoModel 的地址 | 调用的网关接口 |
|---|---|---|
| OpenAI SDK | http://localhost:8080/v1 | /v1/chat/completions、/v1/responses等 |
| Anthropic SDK | http://localhost:8080(SDK 自动拼上/v1/messages) | /v1/messages、/v1/messages/count_tokens |
3.1 OpenAI 兼容协议(/v1)
GoModel 在/v1下暴露了一整套 OpenAI 风格的接口,包括对话补全、Responses API、Embeddings、模型列表、批量任务、文件、音频与图像等,详见 docs/advanced/api-endpoints.mdx。
3.2 Anthropic 兼容协议(/v1/messages)
GoModel 在POST /v1/messages上接受Anthropic Messages API的请求格式,并把它翻译成网关内部的标准对话类型,再走和/v1/chat/completions完全相同的流水线——也就是说,虚拟模型、工作流、预算、故障转移、缓存、成本与审计全部生效。
更妙的是:Anthropic 格式的请求可以路由到任意已配置的服务商,而不只是 Anthropic。也就是说,你可以用 Anthropic SDK 的写法去调用 OpenAI 或 Gemini 的模型。协议翻译的核心实现在 internal/anthropicapi/,完整说明见 docs/advanced/anthropic-messages-api.mdx。
⚠️ 两种鉴权方式都支持:
Authorization: Bearer <key>(网关主用)和x-api-key: <key>(Anthropic 原生头部),因此 Anthropic 官方 SDK 可以"即插即用"。
四、如何快速部署 GoModel AI 网关
4.1 方式一:Docker 一条命令启动(推荐)
同时配置 OpenAI 与 Anthropic 两把密钥,启动网关:
docker run --rm -p 8080:8080 \ -e OPENAI_API_KEY="your-openai-key" \ -e ANTHROPIC_API_KEY="your-anthropic-key" \ enterpilot/gomodel4.2 方式二:Docker Compose 全栈启动
仓库自带docker-compose.yaml,一条命令拉起完整栈(含 GoModel + Prometheus):
docker compose --profile app up -d📝 配置遵循"良好默认值 →
config.yaml→.env→ 环境变量"的优先级顺序,且不写任何配置文件也能跑。完整配置项见 config/config.example.yaml。
4.3 在管理台配置你的第一个模型供应商
如果不想用环境变量,也可以零密钥启动后,直接到管理台Providers 页面添加供应商(无需重启)。打开:
http://localhost:8080/admin/dashboard在Providers页面选择类型(如openai)、填写名称与 API Key 并保存,网关会立即把该供应商纳入路由。
保存后,网关会自动拉取该供应商的模型目录,你可以在Models页面看到全部已注册模型,并为它们设置输入/输出单价用于成本跟踪。
五、双协议同时接入实战
下面用同一个网关,分别演示 OpenAI 与 Anthropic 两种写法。
5.1 用 OpenAI SDK 调用(指向/v1)
from openai import OpenAI client = OpenAI( base_url="http://localhost:8080/v1", api_key="your-gomodel-key", ) completion = client.chat.completions.create( model="openai/gpt-4o-mini", messages=[{"role": "user", "content": "一句话打个招呼。"}], ) print(completion.choices[0].message.content)5.2 用 Anthropic SDK 调用(指向网关根地址)
import anthropic client = anthropic.Anthropic( base_url="http://localhost:8080", api_key="your-gomodel-key", ) message = client.messages.create( model="anthropic/claude-sonnet-4-6", max_tokens=256, messages=[{"role": "user", "content": "一句话打个招呼。"}], ) print(message.content[0].text)💡 关键点:两个 SDK 用的是同一个 GoModel 密钥、同一个网关。模型名可用
provider/model的限定形式(如openai/...、anthropic/...),网关据此路由到对应上游。
5.3 用 curl 直接验证
# OpenAI 兼容 curl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your-gomodel-key" \ -d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"hi"}]}' # Anthropic 兼容 curl http://localhost:8080/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your-gomodel-key" \ -d '{"model":"anthropic/claude-sonnet-4-6","max_tokens":64,"messages":[{"role":"user","content":"hi"}]}'🔍 不确定某次请求长什么样?用管理台的Playground选端点(Chat Completions / Responses / Messages)、填消息、点 Send,右侧能直接看到发往网关的完整请求 JSON,非常适合排查与教学。
六、网关管理台:用量、成本、健康与审计
部署后,真正的"网关价值"体现在管理台里。
6.1 用量与成本分析
Usage页面聚合请求数、估算成本、缓存命中、按模型与按用户路径(user path)的 Token 分布,让你一眼看清"钱花在哪"。
6.2 供应商健康状态
Providers Overview以卡片形式展示每个上游的健康/降级状态、可用模型数、最近 10 分钟请求与错误数、熔断器(Circuit Breaker)状态、Base URL、重试策略等,是排查"某家服务商抽风"的第一现场。
6.3 实时审计日志
Audit Logs按"会话(session)"分组记录每一次请求的模型、端点、耗时与状态码,并可展开查看完整的系统提示词、用户输入与 Agent 输出,天然形成可追溯的"对话线程"。
七、从 LiteLLM 平滑迁移到 GoModel
如果你已经在用 LiteLLM proxy,迁移成本很低——因为协议相同,客户端大多只需改一个 base URL。GoModel 提供了gomodel migrate litellm命令,可把 LiteLLM 的config.yaml(model_list、router_settings、虚拟 Key、团队、预算等)转换过去。
先做一次干跑(dry run),只打印迁移报告、不写任何文件:
gomodel migrate litellm litellm_config.yaml确认无误后再落盘:
gomodel migrate litellm --out ./gomodel litellm_config.yaml完整迁移步骤与字段对照表见 docs/guides/migrate-from-litellm.mdx。
八、常见问题(FAQ)
Q1:GoModel 只能接 OpenAI 和 Anthropic 吗?不是。它支持 OpenAI、Anthropic、Gemini、Groq、xAI、DeepSeek、Azure、Bedrock、Ollama、vLLM 等数十家供应商,完整清单见 docs/providers/overview.mdx。
Q2:用 Anthropic SDK 能调用 OpenAI 的模型吗?可以。/v1/messages请求会走网关的统一路由,任何已配置服务商的模型都能被调用,不限于 Anthropic。
Q3:一定要写配置文件吗?不需要。GoModel 有良好默认值,可用.env、config.yaml或直接在 Dashboard 里管理最关键的设置。
Q4:网关本身安全吗?网关支持托管 API Key、按用户路径(user path)做模型白名单、预算与限流,并可开启护栏(Guardrails)在网关层拦截请求/响应。
九、小结
- AI 网关是大模型调用与多家服务商之间的统一入口,解决接口碎片化、密钥分散、成本不透明与单点故障四大痛点。
- GoModel用 Go 实现,主打快、省资源、生产可用,是 LiteLLM 的有力替代。
- 它最核心的能力是OpenAI 与 Anthropic 双协议同网关接入:改一个 base URL,两套官方 SDK 都能直接用。
- 部署只需一条
docker run,配置可在 Dashboard 里可视化完成;用量、成本、健康、审计全都在一个管理台里。
想更进一步,可阅读快速上手 docs/getting-started/quickstart.mdx,以及缓存、预算、护栏等特性文档(见 docs/features/)。把网关跑起来的那一刻,你会发现:接入大模型,真的可以只维护一个入口。
【免费下载链接】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.
相关推荐
CCX 接入 MiniMax 完整指南:OpenAI Chat 与 Anthropic Messages 双协议配置
CCX 接入 MiniMax 完整指南:OpenAI Chat 与 Anthropic Messages 双协议配置 MiniMax 是同时提供 OpenAI
API网关LLM 网关后端CCX 接入智谱 GLM 完整配置指南:OpenAI Chat 与 Anthropic Messages 双协议接入详解
CCX 接入智谱 GLM 完整配置指南:OpenAI Chat 与 Anthropic Messages 双协议接入详解 智谱 GLM(品牌升级后为 Z.AI)
API网关LLM 网关后端CCX 接入智谱 GLM(Zhipu AI / Z.AI)完整指南:OpenAI Chat 与 Anthropic Messages 双协议配置与源码解析
CCX 接入智谱 GLM(Zhipu AI / Z.AI)完整指南:OpenAI Chat 与 Anthropic Messages 双协议配置与源码解析 本文
API网关LLM 网关后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考