Nginx UI 接入 OpenAI 兼容大模型:ChatGPT 助手与代码补全配置完全指南

发布时间:2026/9/23 22:55:15

Nginx UI 接入 OpenAI 兼容大模型:ChatGPT 助手与代码补全配置完全指南 后端前端运维MCP 服务【免费下载链接】nginx-uiYet another WebUI for Nginx项目地址https://gitcode.com/gh_mirrors/ngi/nginx-ui点击查看免费下载Nginx UI本项目为开源镜像gh_mirrors/ngi/nginx-ui内置了基于 ChatGPT 的 LLM 助手与代码编辑器补全功能其全部连接参数集中在「偏好设置 → LLMOpenAI」中对应后端配置结构体为 settings/openai.go 中的OpenAI。本文围绕官方文档 docs/guide/config-openai.md 展开逐项讲解 Provider、BaseUrl、Token、Proxy、Model、APIType、EnableCodeCompletion、CodeCompletionModel 等配置项并结合源码揭示这些参数如何被go-openai客户端消费、如何驱动聊天/终端助手与 Nginx 配置编辑器内的代码补全最终给出可复制的实操配置方案。官方文档明确提醒Nginx UI不校验你所填写的配置信息。任何一项参数错误如 Token 失效、BaseUrl 不可达都会直接导致 API 请求失败使 ChatGPT 助手不可用。配置时请务必核对账号权限、模型名与端点地址。配置入口与数据结构在 Web 界面中进入「偏好设置 → LLM」页即可看到全部 OpenAI 相关配置app/src/views/preference/Preference.vue 中将其挂载在openai页签下前端表单实现见 app/src/views/preference/tabs/OpenAISettings.vue。后端对应的数据结构定义如下settings/openai.gotype OpenAI struct { Provider string json:provider binding:omitempty,oneofopenai atlas_cloud minimax custom BaseUrl string json:base_url binding:omitempty,url Token string json:token binding:omitempty,safety_text sensitive:true Proxy string json:proxy binding:omitempty,url Model string json:model binding:omitempty,safety_text APIType string json:api_type binding:omitempty,oneofOPEN_AI AZURE EnableCodeCompletion bool json:enable_code_completion binding:omitempty CodeCompletionModel string json:code_completion_model binding:omitempty,safety_text }可以观察到三类重要的校验约束oneof约束provider只允许openai / atlas_cloud / minimax / custom四个取值api_type只允许OPEN_AI / AZURE。url约束base_url与proxy必须是合法 URL否则保存会被拒绝前端会提示 “The url is invalid.”。sensitive:trueToken字段被标记为敏感信息在后端序列化与持久化时会被脱敏处理参见 settings/redacted.go 相关逻辑前端也使用专门的SensitiveInput组件展示app/src/views/preference/tabs/OpenAISettings.vue。默认值方面未显式配置时Provider为openai、APIType为OPEN_AIsettings/openai.govar OpenAISettings OpenAI{ Provider: OpenAIProviderOpenAI, APIType: string(openai.APITypeOpenAI), }Provider选择 OpenAI 兼容服务商预设类型string默认值openai可选值openai、atlas_cloud、minimax、custom该选项用于选择 OpenAI 兼容提供商的预设。前端下拉选项及其默认端点定义在 app/src/constants/llm.tsProvider 取值含义默认端点openai使用 OpenAI 官方默认端点https://api.openai.com/atlas_cloud使用 Atlas Cloud 端点https://api.atlascloud.ai/v1minimax使用 MiniMax 全球 OpenAI 兼容端点https://api.minimax.io/v1custom保留自定义的BaseUrl取值由BaseUrl决定后端常量与之一一对应settings/openai.goOpenAIProviderOpenAI openai OpenAIProviderAtlasCloud atlas_cloud OpenAIProviderMiniMax minimax OpenAIProviderCustom custom AtlasCloudBaseURL https://api.atlascloud.ai/v1 MiniMaxGlobalOpenAIURL https://api.minimax.io/v1 MiniMaxCNOpenAIURL https://api.minimaxi.com/v1值得注意的一个实现细节GetProvider()并不会盲信你保存的Provider字段而是先根据 BaseUrl 反推——如果 BaseUrl 匹配 Atlas Cloud 或 MiniMax 的端点就返回对应 Provider只有无法从 URL 判断时才回退到配置值配置为空则默认openaisettings/openai.go。这意味着即使你把Provider设成custom只要 BaseUrl 填的是 MiniMax 端点后端依然会按 MiniMax 处理。前端切换 Provider 时也会自动联动改写 BaseUrl见 app/src/views/preference/tabs/OpenAISettings.vue 的watch逻辑。BaseUrl指定 API 基础地址类型string用于设置 API 的基础 URL不需要修改时留空即可。OpenAI 官方留空时走默认端点https://api.openai.com/。Atlas Cloud填写https://api.atlascloud.ai/v1。Atlas Cloud 与 OpenAI 兼容因此 Nginx UI 现有的聊天与代码补全功能无需任何后端改动即可直接使用。MiniMaxOpenAI 兼容端点为https://api.minimax.io/v1国际版与https://api.minimaxi.com/v1国内版。MiniMax 同时还提供 Anthropic 兼容端点https://api.minimax.io/anthropic与https://api.minimaxi.com/anthropic但注意本配置项要求的是 OpenAI 兼容端点Anthropic 兼容端点需配合 Anthropic 兼容客户端使用不能填入此处。官方建议的 MiniMax 文本模型为MiniMax-M3与MiniMax-M2.7。本地模型若在本地用 ollama、vllm 或 lmdeploy 部署了大模型这些服务通常也提供 OpenAI 兼容 API直接把BaseUrl指向本地地址即可前端帮助文案见 app/src/views/preference/tabs/OpenAISettings.vue。前端在 BaseUrl 输入框中内置了一个常用端点候选列表app/src/constants/llm.ts包括https://api.openai.com、https://api.atlascloud.ai/v1、两个 MiniMax OpenAI 端点、https://api.deepseek.com以及本地默认地址http://localhost:11434ollama可直接从下拉中选择。后端在拼接请求前会对 BaseUrl 做一次归一化去掉首尾空白并修剪尾部斜杠settings/openai.gofunc normalizeOpenAIBaseURL(baseURL string) string { return strings.TrimRight(strings.TrimSpace(baseURL), /) }GetBaseURL()的取值优先级是显式填写的BaseUrl归一化后优先为空时再按GetProvider()回退到 Atlas Cloud / MiniMax 的默认端点OpenAI 官方则返回空串交给go-openai客户端使用内置默认值settings/openai.go。TokenOpenAI API 密钥类型string用于设置 OpenAI API 的访问令牌API Key。该字段存储时敏感标记为sensitive:true后端接口返回与日志展示中均会被脱敏前端使用带“显示/隐藏”切换的SensitiveInput组件保存后回显为掩码形式。当APIType为AZURE时此处填写的则是 Azure OpenAI 的 API Key最终被go-openai的DefaultAzureConfig使用详见下文 APIType 小节。Proxy为 LLM 请求配置 HTTP 代理类型string用于配置访问 OpenAI API 的 HTTP 代理。如果你的网络环境无法直接访问 OpenAI API可以配置一个 HTTP 代理并将该选项设置为对应的代理 URL如http://127.0.0.1:7890。从源码看该配置生效于客户端构建阶段internal/llm/client.goif settings.OpenAISettings.Proxy ! { t, err : transport.NewTransport(transport.WithProxy(settings.OpenAISettings.Proxy)) if err ! nil { return nil, err } config.HTTPClient http.Client{ Transport: t, } }transport.NewTransport构建的http.Transport带连接池限制空闲连接 90 秒过期、单主机最多 4 个空闲连接见 internal/transport/transport.goWithProxy会把http.ProxyURL(proxy)写入 Transportinternal/transport/transport.go之后所有 LLM 出站请求都经由该代理转发。注意代理地址同样受url校验约束必须是合法 URL。Model聊天模型类型string默认值gpt-3.5-turbo用于设置聊天Chat模型。如果你的账号有权限访问 gpt-4 等更高阶模型可以相应修改该值。该模型同时服务于三处功能均读取settings.OpenAISettings.ModelNginx 配置助手 / 终端助手聊天补全请求体中的Model字段直接取自该配置api/llm/llm.go会话标题生成generate_title接口使用本地 LLM 配置生成会话标题api/llm/router.go代码补全的兜底模型当CodeCompletionModel留空时补全请求会回退使用Model见下文。前端将常用模型列表内置在 app/src/constants/llm.ts 中包括gpt-4o、gpt-4-turbo、gpt-3.5-turbo、o1、o3-mini、DeepSeek 系列deepseek-chat、deepseek-reasoner、deepseek-v3以及 MiniMax 的MiniMax-M3、MiniMax-M2.7等可直接下拉选择选用 MiniMax 模型时界面还会展示其上下文窗口与输入/输出计费参考信息app/src/views/preference/tabs/OpenAISettings.vue。聊天补全采用 SSEServer-Sent Events流式输出服务端通过CreateChatCompletionStream建立流将增量内容按 500ms 分片推送给浏览器api/llm/llm.go。请求体构造时还会根据场景注入系统提示词typeterminal时注入llm.TerminalAssistantPrompt并拼接操作系统信息api/llm/llm.go其他类型注入llm.NginxConfigPrompt并将当前 Nginx 配置片段以代码块形式前置到首条用户消息让模型基于真实配置作答api/llm/llm.go若请求携带语言代码还会追加“用对应语言回答”的指令api/llm/llm.go。APITypeAPI 类型类型string默认值OPEN_AI用于设置 API 类型可选值OPEN_AI使用 OpenAI 官方 APIAZURE使用 Azure OpenAI API。该值直接映射到go-openai的客户端构建分支internal/llm/client.goif openai.APIType(settings.OpenAISettings.APIType) openai.APITypeAzure { config openai.DefaultAzureConfig(settings.OpenAISettings.Token, baseURL) } else { config openai.DefaultConfig(settings.OpenAISettings.Token) }选择AZURE时Token字段应填写 Azure 的 API KeyBaseUrl应填写你的 Azure OpenAI 资源端点go-openai会按 Azure 的鉴权与路由规则构造请求Azure 模式下必须显式提供baseURL因此与Provider/BaseUrl的取值逻辑需仔细核对。EnableCodeCompletion开启代码补全类型boolean默认值false引入版本 2.0.0-rc.6用于在代码编辑器中启用代码补全功能。开关关闭时后端会直接拒绝补全请求并返回ErrCodeCompletionNotEnabled错误api/llm/code_completion.goif !settings.OpenAISettings.EnableCodeCompletion { cosy.ErrHandler(c, llm.ErrCodeCompletionNotEnabled) return }前端「偏好设置 → LLM」页的开关使用ASwitch组件未开启时补全模型输入框隐藏app/src/views/preference/tabs/OpenAISettings.vue另有一个只读状态接口GET /api/code_completion/enabled供前端查询开关状态api/llm/code_completion.go、api/llm/router.go。补全功能通过 WebSocket 长连接工作前端编辑器通过ws://.../code_completion建立连接携带光标位置、光标前/后代码、语言与当前缩进后端收到请求后调用 LLM 生成补全文本并以 JSON 帧回推含request_id与耗时completion_msapi/llm/code_completion.go。连接层还做了保活探测与并发写保护避免异常断开的浏览器拖垮其他用户api/llm/code_completion.go。CodeCompletionModel指定补全模型类型string引入版本 2.0.0-rc.6用于设置代码补全专用模型留空则使用聊天模型Model。这一回退逻辑在 settings/openai.go 中实现func (o *OpenAI) GetCodeCompletionModel() string { if o.CodeCompletionModel { return o.Model } return o.CodeCompletionModel }补全请求构造时即使用该方法返回的模型internal/llm/code_completion.goreq : openai.ChatCompletionRequest{ Model: settings.OpenAISettings.GetCodeCompletionModel(), Messages: messages, MaxCompletionTokens: MaxTokens, Temperature: Temperature, }建议聊天用大而全的对话模型、补全用轻快模型分开配置可兼顾响应速度与成本。补全请求固定使用MaxTokens 2000与Temperature 1internal/llm/code_completion.go并使用独立的系统提示词要求保持原始代码缩进。返回结果还会经过cleanCompletionResponse后处理剔除think/think推理标签、剥离 Markdown 代码块围栏、去掉已输入的“最后一个单词”以避免重复、并按当前缩进层级修正多行补全的缩进internal/llm/code_completion.go从而保证插入编辑器的是可直接落盘的干净代码。完整配置示例与排障思路以配置 MiniMax 全球版为例在「偏好设置 → LLM」中填写配置项取值示例说明Providerminimax选择预设自动带出端点BaseUrlhttps://api.minimax.io/v1全球版国内版用https://api.minimaxi.com/v1Token你的 MiniMax API Key必填否则请求会 401/403Proxyhttp://127.0.0.1:7890可选按网络环境决定是否填写ModelMiniMax-M2.7也可从候选列表直接选择APITypeOPEN_AIMiniMax 提供的是 OpenAI 兼容端点EnableCodeCompletiontrue可选开启编辑器补全CodeCompletionModel留空或填MiniMax-M2.7留空则跟随 Model改用 OpenAI 官方时Provider 选openai、BaseUrl 留空、Model 选gpt-4o等即可对接本地 ollama 时Provider 选custom、BaseUrl 填http://localhost:11434并确保模型已提前ollama pull。排障思路由于文档明确声明后端不校验配置准确性配置完成后请按以下顺序自查看 SSE 报错聊天助手请求失败时SSE 流会直接回传type: error及err.Error()内容api/llm/llm.go这是最直接的诊断入口核对 Token 与模型名401/403 通常是 Token 无效400 通常是模型名不存在于该账号或该端点核对 BaseUrl 归一化后端会修剪 BaseUrl 尾部斜杠重复填写/v1与v1/均无影响但务必保证整体是合法 URL含协议头检查代理链路若配置了 Proxy确保代理地址可达且允许 CONNECT 方法GetClient()构建代理 Transport 失败时会直接返回错误internal/llm/client.go确认补全开关编辑器补全无响应时先确认EnableCodeCompletion已开启且GET /api/code_completion/enabled返回true再检查 WebSocket 连接是否建立成功测试用例参考仓库中的 internal/llm/client_test.go、internal/llm/messages_test.go 与 internal/llm/code_completion_test.go 覆盖了提示词构造与补全响应清洗逻辑可作为理解各参数实际用法的辅助材料。小结Nginx UI 的 OpenAI 配置以Provider BaseUrl双轨驱动Provider 提供一键预设OpenAI / Atlas Cloud / MiniMax / CustomBaseUrl 支持任意 OpenAI 兼容端点含本地部署配合 Token、Proxy、APIType 三个连接级参数与 Model、CodeCompletionModel 两个模型级参数即可在 Web 界面内解锁 Nginx 配置助手、终端助手与编辑器代码补全三类能力。由于系统不校验配置正确性务必以官方文档与各服务商的实际端点为准逐项核对后再投入使用。赞分享后端前端运维MCP 服务【免费下载链接】nginx-uiYet another WebUI for Nginx项目地址https://gitcode.com/gh_mirrors/ngi/nginx-ui点击查看免费下载相关推荐AutoAgent 接入 OpenAI 模型完全指南LiteLLM 驱动的 Provider、兼容端点与代理配置AutoAgent 接入 OpenAI 模型完全指南LiteLLM 驱动的 Provider、兼容端点与代理配置 AutoAgentFully Automa人工智能大模型AI AgentAgent 框架工具调用自主智能体RAGlangchain/cohere 1.0 版本线演进解析从 streamEvents 原生转换到 Abort 信号处理的变更全记录langchain/cohere 1.0 版本线演进解析从 streamEvents 原生转换到 Abort 信号处理的变更全记录 本文基于 langch人工智能大模型本地部署模型推理服务通过 OpenAI 兼容 API 在 Aider 中接入任意模型openai-compat 完整配置指南通过 OpenAI 兼容 API 在 Aider 中接入任意模型openai compat 完整配置指南 本指南以仓库 qwencoder eval/inst大模型代码模型微调模型评测强化学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/23 22:55:15

内容创作失败的三大根源:选题、转化与交付

1. 这个标题不是玩笑,是内容创作者的真实生存切片“1024,鸽了1024篇博文的我……”——看到这个标题,我下意识点开,不是因为好奇,而是心头一紧:这数字太熟了。不是程序员节那个1024,而是我电脑里…

2026/9/23 22:55:15

软考高项257个记忆点:分类刷法、易混考点与避坑指南

简介:面向信息系统项目管理师(软考高项)考生整理的高频考点浓缩笔记,将散布在多本教材中的重点知识汇总为257个要点,覆盖项目管理、系统开发、计算机网络、数据安全、多媒体技术、企业信息化等常考方向。每个知识点以短…

2026/9/23 22:55:15

DeepSeek-R1技术报告解读:GRPO强化学习训练与复现指南

简介:DeepSeek-R1技术报告论文面向大模型研究者、算法工程师及对强化学习推理方向感兴趣的进阶学习者,系统呈现了如何通过大规模强化学习激发大语言模型推理能力。报告围绕DeepSeek-R1-Zero与DeepSeek-R1两代模型展开,前者在无监督微调前提下…

2026/9/24 0:00:21

Windows系统安装全指南:从U盘启动盘制作到UEFI/GPT分区方案

不管是给老电脑续命,还是给新装的机器做首次引导,Windows系统的安装都属于那种“看着简单,做起来全是细节”的活儿。我前前后后帮同事、朋友装了不下几十台机器,自己也因为手贱删错分区、改了引导方式导致安装失败过好多次&#x…

2026/9/24 0:00:21

齿轮箱故障诊断中的传递路径分析:原理、Matlab实现与工程应用

前阵子有朋友拿来一组齿轮箱振动数据,说频谱图上能看到好几个啮合频率边带,但就是说不清振动到底是从啮合点直接传出来的,还是先传到轴承、再经过箱体共振放大出来的。这个问题其实特别典型——齿轮箱故障诊断里,传感器只能装在箱…

2026/9/24 0:00:21

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:21

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:21

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/23 23:55:20

资源库含金量如何判断?从分类、更新到高效使用的实战指南

2. 一眼看穿资源库的含金量:数量只是入场券2.1 真实数量背后的组织方式我见过太多人一看到界面密密麻麻的分类就兴奋得不行,觉得“资源多资源好”,这个想法确实需要修正一下。能称得上“资源数不胜数”的库,背后一定有一套分类逻辑…

2026/9/23 12:07:00

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/24 0:00:21

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:21

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:21

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码