
简介
什么是 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,在环境变量中使用了下面的变量
yaml
# 硅基流动(作为 openai-siliconflow 提供商)
OPENAI_SILLICONFOLW_API_KEY=sk-xxx
OPENAI_SILLICONFOLW_BASE_URL=https://api.siliconflow.cn/v1
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 gomodel,选择第一个 enterpilot/gomodel,版本选择 latest。
本文写作时,
latest版本对应为0.1.20版本;

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

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

端口
本地端口不冲突就行,不确定的话可以用命令查一下
bash
# 查看端口占用
netstat -tunlp | grep 端口号
| 本地端口 | 容器端口 |
|---|---|
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 安装
bash
# 新建文件夹 gomodel 及子目录
mkdir -p /volume1/docker/gomodel/data
# 进入 gomodel 目录
cd /volume1/docker/gomodel
# 修改目录权限
chmod a+rw data
# 运行容器
docker run -d \
--name=gomodel \
--restart=unless-stopped \
-p 8110:8080 \
-v $(pwd)/data:/app \
-e OPENAI_SILLICONFOLW_API_KEY="<你的硅基流动 API Key>" \
-e OPENAI_SILLICONFOLW_BASE_URL="https://api.siliconflow.cn/v1" \
enterpilot/gomodel
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
yaml
version: '3'
services:
gomodel:
image: enterpilot/gomodel
container_name: gomodel
restart: unless-stopped
ports:
- 8110:8080
volumes:
- ./data:/app
environment:
- LOGGING_ENABLED=true
- LOGGING_LOG_BODIES=true
- LOG_FORMAT=text
- LOGGING_LOG_HEADERS=true
- OPENAI_SILLICONFOLW_API_KEY=<你的硅基流动 API Key>
- OPENAI_SILLICONFOLW_BASE_URL=https://api.siliconflow.cn/v1
然后通过 SSH 登录到您的群晖,执行下面的命令:
bash
# 新建文件夹 gomodel 及子目录
mkdir -p /volume1/docker/gomodel/data
# 进入 gomodel 目录
cd /volume1/docker/gomodel
# 修改目录权限
chmod a+rw data
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d

提示 :如果需要更高级的功能(如
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 测试
bash
# API call
curl http://<群晖IP>:8110/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5-chat-latest",
"messages": [{"role": "user", "content": "Hello!"}]
}'
# 示例
curl http://192.168.0.197:8110/v1/chat/completions \
-H "Authorization: Bearer sk_gom_qYDDx_wObLlAjKuZ0BhZaCWx49F1sheYGJH8rugrniQ" \
-H "Content-Type: application/json" \
-d '{
"model": "openai-silliconfolw/Pro/zai-org/GLM-5.1",
"messages": [{"role": "user", "content": "你是什么模型?"}]
}'

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/GoModel
enterpilot/gomodel - Docker Image地址:https://hub.docker.com/r/enterpilot/gomodel
GoModel Documentation