news 2026/10/14 16:51:14

什么是AI网关?用GoModel同时接入OpenAI与Anthropic双协议的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是AI网关?用GoModel同时接入OpenAI与Anthropic双协议的完整指南

【免费下载链接】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.

项目地址:https://gitcode.com/gh_mirrors/go/GoModel
点击查看免费下载

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 SDKhttp://localhost:8080/v1/v1/chat/completions、/v1/responses等
Anthropic SDKhttp://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/gomodel

4.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.

项目地址:https://gitcode.com/gh_mirrors/go/GoModel
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 16:50:46

MATLAB SOM Toolbox:解锁自组织映射的完整分析与可视化工作流

简介&#xff1a;基于MATLAB的Kohonen自组织映射&#xff08;SOM&#xff09;软件包&#xff0c;面向机器学习研究者、数据工程师以及希望探索高维数据内在规律的初学者&#xff0c;用于无监督降维、可视化和模式发现&#xff0c;通过二维或三维网格映射将复杂数据结构转化为清…

作者头像 李华
网站建设 2026/10/14 16:50:12

文件系统原理与架构:从存储介质到系统调用的完整图解

1. 存储介质回顾&#xff1a;数据最终落在哪里做后端或者系统方向的人&#xff0c;迟早会遇到文件系统。刚开始接触时往往一头雾水&#xff1a;明明有磁盘&#xff0c;为什么要再搞一层文件系统&#xff1f;更别说后续冒出来的块设备、页缓存、inode这些概念&#xff0c;每个词…

作者头像 李华
网站建设 2026/10/14 16:49:48

STM32F407心电监测系统:从电极到QRS检测的完整嵌入式信号链实现

简介&#xff1a;本资源是一款基于STM32F103C8T6的便携式多参数生理监测系统完整工程&#xff0c;面向嵌入式初学者、电子设计竞赛学生及医疗电子方向实践者&#xff0c;解决家庭场景下心率、血氧饱和度与心电图&#xff08;ECG&#xff09;三合一实时采集与可视化需求。压缩包…

作者头像 李华