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即可。支持的提供商提供商环境变量说明OpenAIOPENAI_API_KEY需从OpenAI官网获取AnthropicANTHROPIC_API_KEYClaude模型Google GeminiGEMINI_API_KEYGemini模型xAI (Grok)XAI_API_KEYGrok模型GroqGROQ_API_KEY高性能推理模型OpenRouterOPENROUTER_API_KEY聚合多个提供商Z.aiZAI_API_KEY智谱AI GLM模型Azure OpenAIAZURE_API_KEYAZURE_BASE_URLAzure云服务OracleORACLE_API_KEYORACLE_BASE_URLOracle云服务OllamaOLLAMA_BASE_URL本地LLM服务vLLMVLLM_BASE_URL自建vLLM服务虽然支持上面这些主流LLM但是要么需要科学上网要么太贵反正老苏都没有所以研究了一下怎么添加OpenAI兼容的LLM还是以硅基流动为例为了区别多个自定义API在环境变量中使用了下面的变量# 硅基流动作为 openai-siliconflow 提供商OPENAI_SILLICONFOLW_API_KEYsk-xxx OPENAI_SILLICONFOLW_BASE_URLhttps://api.siliconflow.cn/v1安装在群晖上以 Docker 方式安装。在注册表中搜索gomodel选择第一个enterpilot/gomodel版本选择latest。本文写作时latest版本对应为0.1.20版本卷在docker文件夹中创建一个新文件夹gomodel并在其中建一个子文件夹data需要给data目录新增Everyone的读写权限否则会导致SQLite数据库创建失败文件夹装载路径说明docker/gomodel/data/app存放数据库、缓存等端口本地端口不冲突就行不确定的话可以用命令查一下# 查看端口占用netstat-tunlp|grep端口号本地端口容器端口81108080环境可变值OPENAI_SILLICONFOLW_API_KEY你的硅基流动API KeyOPENAI_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_KEYAZURE_BASE_URL、ORACLE_API_KEYORACLE_BASE_URL、OLLAMA_BASE_URL等。更多的环境变量设置请参考官方文档https://github.com/ENTERPILOT/GoModel#gateway-configurationdocker cli 安装# 新建文件夹 gomodel 及子目录mkdir-p/volume1/docker/gomodel/data# 进入 gomodel 目录cd/volume1/docker/gomodel# 修改目录权限chmodarw data# 运行容器dockerrun-d\--namegomodel\--restartunless-stopped\-p8110:8080\-v$(pwd)/data:/app\-eOPENAI_SILLICONFOLW_API_KEY你的硅基流动 API Key\-eOPENAI_SILLICONFOLW_BASE_URLhttps://api.siliconflow.cn/v1\enterpilot/gomodeldocker-compose 安装也可以用docker-compose安装将下面的内容保存为docker-compose.yml文件version:3services:gomodel:image:enterpilot/gomodelcontainer_name:gomodelrestart:unless-stoppedports:-8110:8080volumes:-./data:/appenvironment:-LOGGING_ENABLEDtrue-LOGGING_LOG_BODIEStrue-LOG_FORMATtext-LOGGING_LOG_HEADERStrue-OPENAI_SILLICONFOLW_API_KEY你的硅基流动 API Key-OPENAI_SILLICONFOLW_BASE_URLhttps://api.siliconflow.cn/v1然后通过SSH登录到您的群晖执行下面的命令# 新建文件夹 gomodel 及子目录mkdir-p/volume1/docker/gomodel/data# 进入 gomodel 目录cd/volume1/docker/gomodel# 修改目录权限chmodarw data# 将 docker-compose.yml 放入当前目录# 一键启动docker-composeup-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 KeysCreate API Key可以设置到期时间这个API Key只显示一次之后就不会再显示了API 调用示例做个Chat Completions测试# API callcurlhttp://群晖IP:8110/v1/chat/completions\-HAuthorization: Bearer YOUR_API_KEY\-HContent-Type: application/json\-d{ model: gpt-5-chat-latest, messages: [{role: user, content: Hello!}] }# 示例curlhttp://192.168.0.197:8110/v1/chat/completions\-HAuthorization: Bearer sk_gom_qYDDx_wObLlAjKuZ0BhZaCWx49F1sheYGJH8rugrniQ\-HContent-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_KEYAPI 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