AI使用追踪和代理网关GoModel
简介
什么是 GoModel ?
GoModel是一个使用Go语言编写的高性能AI网关,它提供统一的OpenAI兼容API接口,可以同时连接OpenAI、Anthropic、Google Gemini、xAI、Groq、OpenRouter、Z.ai、Azure OpenAI、Oracle、Ollama和vLLM等多种LLM提供商。它可以帮助用户在一个端点上访问所有这些AI模型,同时获得审计日志、监控指标和安全护栏功能。
主要特点
- 多提供商支持:统一接入
12+个主流LLM提供商,一个端点访问所有模型 - OpenAI 兼容:完全兼容
OpenAI API规范,现有应用无需修改代码即可切换提供商 - 可观测性:内置审计日志、
Prometheus指标监控和用量统计 - 响应缓存:支持精确匹配缓存和语义相似缓存,大幅降低
API调用成本 - 安全护栏:内置
guardrails管道,支持内容过滤和请求审查 - 管理界面:提供
Web管理仪表板,直观查看使用情况和日志 - 开源免费:基于
MIT协议开源,可免费使用和修改
应用场景
- AI 应用开发:开发者可以使用统一的
API调用多个LLM提供商,无需为每个提供商单独集成 - 成本优化:通过响应缓存减少重复请求,通过用量监控分析成本分布
- 提供商切换:在多个提供商之间灵活切换,避免单一提供商服务中断影响
- 企业内部部署:在私有环境中部署
AI网关,统一管理API密钥和用量

GoModel 是一个高性能的 AI 网关,可以帮助开发者在一个端点上访问所有主流 LLM 提供商,同时获得完整的审计和监控能力。
准备
GoModel 支持配置多个 LLM 提供商,只需在环境变量中添加相应的 API key 即可。
支持的提供商
| 提供商 | 环境变量 | 说明 |
|---|---|---|
OpenAI |
OPENAI_API_KEY |
需从 OpenAI 官网获取 |
Anthropic |
ANTHROPIC_API_KEY |
Claude 模型 |
Google Gemini |
GEMINI_API_KEY |
Gemini 模型 |
xAI (Grok) |
XAI_API_KEY |
Grok 模型 |
Groq |
GROQ_API_KEY |
高性能推理模型 |
OpenRouter |
OPENROUTER_API_KEY |
聚合多个提供商 |
Z.ai |
ZAI_API_KEY |
智谱 AI GLM 模型 |
Azure OpenAI |
AZURE_API_KEY + AZURE_BASE_URL |
Azure 云服务 |
Oracle |
ORACLE_API_KEY + ORACLE_BASE_URL |
Oracle 云服务 |
Ollama |
OLLAMA_BASE_URL |
本地 LLM 服务 |
vLLM |
VLLM_BASE_URL |
自建 vLLM 服务 |
虽然支持上面这些主流 LLM,但是要么需要科学上网,要么太贵,反正老苏都没有,所以研究了一下怎么添加 OpenAI 兼容的 LLM
还是以 硅基流动 为例,为了区别多个自定义 API,在环境变量中使用了下面的变量
1 | # 硅基流动(作为 openai-siliconflow 提供商) |
目前硅基流动(SiliconFlow)注册就送 16 元的代金券
注册地址:
https://cloud.siliconflow.cn/i/NkUiXVhQ

和之前的不同,现在的券虽然多了 2 块钱,但是有有效期,不过可以用于 Pro/ 开始的模型

安装
在群晖上以 Docker 方式安装。
在注册表中搜索 gomodel,选择第一个 enterpilot/gomodel,版本选择 latest。
本文写作时,
latest版本对应为0.1.20版本;

卷
在 docker 文件夹中,创建一个新文件夹 gomodel,并在其中建一个子文件夹 data
需要给 data 目录新增 Everyone 的读写权限,否则会导致 SQLite数据库创建失败

| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/gomodel/data |
/app |
存放数据库、缓存等 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
| 本地端口 | 容器端口 |
|---|---|
8110 |
8080 |

环境
| 可变 | 值 |
|---|---|
OPENAI_SILLICONFOLW_API_KEY |
你的硅基流动 API Key |
OPENAI_SILLICONFOLW_BASE_URL |
硅基流动的地址:https://api.siliconflow.cn/v1 |

环境变量说明:提供商的
API key至少需要配置一个,GoModel才能正常工作。可以配置的环境变量包括:OPENAI_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEY、XAI_API_KEY、GROQ_API_KEY、OPENROUTER_API_KEY、ZAI_API_KEY、AZURE_API_KEY+AZURE_BASE_URL、ORACLE_API_KEY+ORACLE_BASE_URL、OLLAMA_BASE_URL等。
更多的环境变量设置,请参考官方文档:https://github.com/ENTERPILOT/GoModel#gateway-configuration
docker cli 安装
1 | # 新建文件夹 gomodel 及子目录 |
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 gomodel 及子目录 |

提示:如果需要更高级的功能(如
Redis缓存、PostgreSQL存储、MongoDB日志),可以使用项目提供的完整docker-compose.yaml文件,它包含Redis、PostgreSQL、MongoDB、Adminer和Prometheus等额外服务。
运行
在浏览器中访问 http://<群晖IP>:8110/admin/dashboard 即可进入进入管理仪表板

进入模型 Models,在原有的模型名称前增加了 provider 的名称,所以 Pro/zai-org/GLM-5.1 现在变成了 openai-silliconfolw/Pro/zai-org/GLM-5.1

进入 API Keys

Create API Key,可以设置到期时间

这个 API Key 只显示一次

之后就不会再显示了

API 调用示例
做个 Chat Completions 测试
1 | # API call |

Cherry Studio
添加提供商

输入相关信息
API 密钥:就是上一步我们在GoModel中创建的API KeyAPI 地址:就是GoModel的地址

根据需要添加模型

只加了几个最新的

简单做个测试

回到首页,可以看到调用情况

而进入 Usage,可以看到模型的更精确的调用情况

注意事项
- 安全配置:默认情况下
GoModel没有认证保护,强烈建议生产环境设置GOMODEL_MASTER_KEY - API key 安全:避免通过命令行
-e参数直接传递密钥,可能泄露到shell历史记录,使用.env文件更安全 - 存储选择:默认使用
SQLite,适合单实例部署;高并发场景可使用PostgreSQL或MongoDB - 缓存优化:可配置
Redis实现响应缓存,结合语义缓存可达到60-70%的命中率 - 多实例部署:如需多实例运行,
storage类型需切换为PostgreSQL或MongoDB
参考文档
GoModel - High-performance AI gateway written in Go
地址:https://github.com/ENTERPILOT/GoModelenterpilot/gomodel - Docker Image
地址:https://hub.docker.com/r/enterpilot/gomodelGoModel Documentation
地址:https://gomodel.enterpilot.io/docs