剪藏#剪藏#各种折腾

AI使用追踪和代理网关GoModel

2026 年 4 月 25 日1 分钟
分享Twitter / XTelegram微博
AI使用追踪和代理网关GoModel 封面

简介

什么是 GoModel ?

GoModel 是一个使用 Go 语言编写的高性能 AI 网关,它提供统一的 OpenAI 兼容 API 接口,可以同时连接 OpenAIAnthropicGoogle GeminixAIGroqOpenRouterZ.aiAzure OpenAIOracleOllamavLLM 等多种 LLM 提供商。它可以帮助用户在一个端点上访问所有这些 AI 模型,同时获得审计日志、监控指标和安全护栏功能。

主要特点

  • 多提供商支持:统一接入 12+ 个主流 LLM 提供商,一个端点访问所有模型

  • OpenAI 兼容:完全兼容 OpenAI API 规范,现有应用无需修改代码即可切换提供商

  • 可观测性:内置审计日志、Prometheus 指标监控和用量统计

  • 响应缓存:支持精确匹配缓存和语义相似缓存,大幅降低 API 调用成本

  • 安全护栏:内置 guardrails 管道,支持内容过滤和请求审查

  • 管理界面:提供 Web 管理仪表板,直观查看使用情况和日志

  • 开源免费:基于 MIT 协议开源,可免费使用和修改

应用场景

  • AI 应用开发:开发者可以使用统一的 API 调用多个 LLM 提供商,无需为每个提供商单独集成

  • 成本优化:通过响应缓存减少重复请求,通过用量监控分析成本分布

  • 提供商切换:在多个提供商之间灵活切换,避免单一提供商服务中断影响

  • 企业内部部署:在私有环境中部署 AI 网关,统一管理 API 密钥和用量

Notion image

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,在环境变量中使用了下面的变量

JAVASCRIPT
# 硅基流动(作为 openai-siliconflow 提供商)
OPENAI_SILLICONFOLW_API_KEY=sk-xxx
OPENAI_SILLICONFOLW_BASE_URL=https://api.siliconflow.cn/v1

目前硅基流动(SiliconFlow)注册就送 16 元的代金券

注册地址:

https://cloud.siliconflow.cn/i/NkUiXVhQ

Notion image

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

Notion image

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 gomodel,选择第一个 enterpilot/gomodel,版本选择 latest

本文写作时,latest 版本对应为 0.1.20 版本;

Notion image

docker 文件夹中,创建一个新文件夹 gomodel,并在其中建一个子文件夹 data

需要给 data 目录新增 Everyone 的读写权限,否则会导致 SQLite数据库创建失败

Notion image

docker/gomodel/data /app 存放数据库、缓存等

Notion image

端口

本地端口不冲突就行,不确定的话可以用命令查一下

JAVASCRIPT
# 查看端口占用
netstat -tunlp | grep 端口号

8110 8080

Notion image

环境

OPENAI_SILLICONFOLW_API_KEY 你的硅基流动 API Key
OPENAI_SILLICONFOLW_BASE_URL 硅基流动的地址:https://api.siliconflow.cn/v1

Notion image

环境变量说明:提供商的 API key 至少需要配置一个,GoModel 才能正常工作。可以配置的环境变量包括:OPENAI_API_KEYANTHROPIC_API_KEYGEMINI_API_KEYXAI_API_KEYGROQ_API_KEYOPENROUTER_API_KEYZAI_API_KEYAZURE_API_KEY + AZURE_BASE_URLORACLE_API_KEY + ORACLE_BASE_URLOLLAMA_BASE_URL 等。

更多的环境变量设置,请参考官方文档:https://github.com/ENTERPILOT/GoModel#gateway-configuration

docker cli 安装

JAVASCRIPT
# 新建文件夹 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 文件

JAVASCRIPT
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=<你的硅基流动APIKey>
      - OPENAI_SILLICONFOLW_BASE_URL=https://api.siliconflow.cn/v1

然后通过 SSH 登录到您的群晖,执行下面的命令:

JAVASCRIPT
# 新建文件夹 gomodel 及子目录
mkdir -p /volume1/docker/gomodel/data

# 进入 gomodel 目录
cd /volume1/docker/gomodel

# 修改目录权限
chmod a+rw data

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -

Notion image

提示:如果需要更高级的功能(如 Redis 缓存、PostgreSQL 存储、MongoDB 日志),可以使用项目提供的完整 docker-compose.yaml 文件,它包含 RedisPostgreSQLMongoDBAdminerPrometheus 等额外服务。

运行

在浏览器中访问 http://<群晖IP>:8110/admin/dashboard 即可进入进入管理仪表板

Notion image

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

Notion image

进入 API Keys

Notion image

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

Notion image

这个 API Key 只显示一次

Notion image

之后就不会再显示了

Notion image

API 调用示例

做个 Chat Completions 测试

JAVASCRIPT
# API call
curl http://<群晖IP>:8110/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -'{
    "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" \
  -'{
    "model": "openai-silliconfolw/Pro/zai-org/GLM-5.1",
    "messages": [{"role": "user", "content": "你是什么模型?"}]
  }'

Notion image

Cherry Studio

添加提供商

Notion image

输入相关信息

  • API 密钥:就是上一步我们在 GoModel 中创建的 API Key

  • API 地址:就是 GoModel 的地址

Notion image

根据需要添加模型

Notion image

只加了几个最新的

Notion image

简单做个测试

Notion image

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

Notion image

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

Notion image

注意事项

  1. 安全配置:默认情况下 GoModel 没有认证保护,强烈建议生产环境设置 GOMODEL_MASTER_KEY

  2. API key 安全:避免通过命令行 -e 参数直接传递密钥,可能泄露到 shell 历史记录,使用 .env 文件更安全

  3. 存储选择:默认使用 SQLite,适合单实例部署;高并发场景可使用 PostgreSQLMongoDB

  4. 缓存优化:可配置 Redis 实现响应缓存,结合语义缓存可达到 60-70% 的命中率

  5. 多实例部署:如需多实例运行, storage 类型需切换为 PostgreSQLMongoDB

参考文档

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 地址:https://gomodel.enterpilot.io/docs

@所有人:写文不易,如果你都看到了这里,请点个在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

原文地址: https://mp.weixin.qq.com/s?__biz=MzI1NTQxMzc3MA==&mid=2247513935&idx=1&sn=54c6e6e86c811697ecf9985c6091a50f&chksm=ebd1eb7f985e5e38d21c521246e9d56355cbcbe01caa356d1bacee9b73f4b42f5d794ca60b9c&mpshare=1&scene=1&srcid=0425BBKjeyZyb1xTNpyv9Y2I&sharer_shareinfo=58682af02bcd1406035331386a578bbe&sharer_shareinfo_first=58682af02bcd1406035331386a578bbe#rd

相关文章