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 密钥和用量

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_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 安装

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 文件,它包含 RedisPostgreSQLMongoDBAdminerPrometheus 等额外服务。

运行

在浏览器中访问 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 Key
  • API 地址:就是 GoModel 的地址

根据需要添加模型

只加了几个最新的

简单做个测试

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

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

注意事项

  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

相关推荐
程序员老邢2 小时前
【技术底稿 23】Ollama + Docker + Ubuntu 部署踩坑实录:网络通了,参数还在调
java·经验分享·后端·ubuntu·docker·容器·milvus
小夏子_riotous2 小时前
Docker学习路径——8、Dockerfile
linux·运维·docker·容器·系统架构·centos·运维开发
2601_955256472 小时前
服务器日志管理最佳实践:logrotate配置详解、云日志服务对比与Docker日志限制方案
运维·服务器·docker
企业架构师老王2 小时前
药品生产环节:用实在Agent自动生成批记录与打印领料单的合规设计与架构落地
大数据·人工智能·ai·架构
切糕师学AI2 小时前
Docker Compose 完全指南:从入门到实践
运维·docker·容器
黎阳之光2 小时前
视频孪生重构轨交数字孪生新范式|黎阳之光以自主核心技术破解落地难题
大数据·人工智能·算法·安全·数字孪生
ai产品老杨2 小时前
告别重复造轮子:深度解析支持源码交付的 AI 视频平台架构,实现 X86/ARM 与 GPU/NPU 异构算力融合
人工智能·架构·音视频
好运的阿财2 小时前
OpenClaw工具拆解之 web_fetch+image_generate
前端·python·机器学习·ai·ai编程·openclaw·openclaw工具
写代码的小阿帆2 小时前
AI工具使用——外挂AI插件、AI原生IDE与AI终端
ide·人工智能·ai-native