# 用主机根地址 BASE_URL 把 NextChat 接到 Router One

> https://router.one/zh/integrations/nextchat 的 Markdown 镜像，供 AI 助手与爬虫使用。Router One 是 OpenAI 兼容的统一 LLM API 网关。
> 最后更新：2026-09-07

NextChat（原 ChatGPT-Next-Web）是开源的 ChatGPT 风格聊天应用，支持 Vercel 一键部署、Docker 部署和桌面客户端。它通过 Chat Completions 调用 OpenAI 格式的 API，一个 Router One Key 就能把 GPT、Claude、Gemini、Grok 系列放进它的模型选择器——网关在大陆可直连，部署在国内服务器上也不用代理，支付宝即可充值。有两个细节决定能否接通：NextChat 自己会拼接 v1/chat/completions，所以 base URL 是主机根地址而不是 /v1；它的模型列表由配置固定，目录里的模型要按精确 ID 加入后才会出现。

## 把 NextChat 配置到 Router One base URL

自托管部署时，把下面的变量作为 Docker 的 -e 参数或 Vercel 项目环境变量填入，然后重新部署。BASE_URL 是主机根地址：NextChat 的服务端路由会去掉请求路径里的 /api/openai/，再把剩下的 v1/chat/completions 拼到 BASE_URL 后面，填了以 /v1 结尾的地址就会请求 /v1/v1/chat/completions。OPENAI_API_KEY 是所有对话共用的服务端 Key；CODE 是用户在界面里输入的访问密码。CUSTOM_MODELS 先用 -all 隐藏 NextChat 内置的模型名，再按精确 ID 逐个加入目录模型；@OpenAI 标记让模型走 NextChat 的 OpenAI 格式客户端，=<展示名> 决定选择器里显示的名字。DEFAULT_MODEL 指定新会话默认使用哪一个：

`nextchat.env`

```bash
# NextChat self-hosted: Docker -e flags or Vercel project environment variables
BASE_URL=https://api.router.one
OPENAI_API_KEY=sk-your-router-one-key
CODE=your-access-password
CUSTOM_MODELS=-all,+<model-id-from-/models>@OpenAI=<label>
DEFAULT_MODEL=<model-id-from-/models>

# Example: docker run -d -p 3000:3000 --env-file nextchat.env yidadaa/chatgpt-next-web
```

## 桌面客户端或托管界面：在设置里填接口地址

无法改服务端变量时——桌面客户端，或管理员允许用户自带 Key 的托管实例——打开设置，开启「自定义接口」，「模型服务商」保持 OpenAI，填入主机根地址、你的 Key 和模型 ID。主机根地址的规则不变：客户端会把 v1/chat/completions 拼到接口地址后面。在浏览器部署里，开启这项设置后浏览器会直接请求网关，而不再经过实例自己的 /api/openai 路由（网关接受跨域请求，所以能直连），在这里填的 Key 会代替访问密码。若管理员设置了 HIDE_USER_API_KEY=1，整块设置会被隐藏，所有对话仍走服务端 Key。桌面客户端本身直接发请求，只需要填这一处。

| 设置项 | 填写的值 | 说明 |
| --- | --- | --- |
| 自定义接口 | 开启 | 展开服务商相关字段；HIDE_USER_API_KEY=1 时隐藏 |
| 模型服务商 | OpenAI | 选择 NextChat 的 OpenAI 格式客户端（Chat Completions） |
| 接口地址 | https://api.router.one | 主机根地址；NextChat 会自行拼接 v1/chat/completions |
| API Key | sk-your-router-one-key | 在这个浏览器或客户端里代替访问密码 |
| 自定义模型名 | -all,+<model-id>@OpenAI=<展示名> | 语法与 CUSTOM_MODELS 相同；只影响这个浏览器或客户端的选择器 |

## NextChat 从模型 ID 里读出了什么

NextChat 对不在内置列表里的模型没有能力查询，多项行为都按模型名字符串判断，所以 openai/gpt-5.5 这样的精确目录 ID 与 NextChat 原本针对的不带前缀的模型名处理方式不同：

| 行为 | NextChat 的判断方式 | 使用目录 ID 时怎么做 |
| --- | --- | --- |
| 模型选择器 | 内置模型名加上 CUSTOM_MODELS；从端点拉取列表默认关闭，即使打开也只保留 gpt- 和 chatgpt- 开头的 ID | 想用的模型都按精确 ID 加入；NextChat 不会读取网关的 /models |
| 服务端允许列表 | 设置了 CUSTOM_MODELS 后，请求未被允许的 ID 会被 NextChat 自己的路由以 403「you are not allowed to use … model」拒绝 | 先找这条提示，再考虑网关问题；这类请求根本没有离开 NextChat |
| 图片上传 | 先看 VISION_MODELS 变量，再按名称模式匹配（gpt-5、带 3 或 4 的 claude、gemini-2.0 或 2.5、grok-4、o3、o4-mini、vision） | 先在模型页核对输入模态，再把模式匹配不到的 ID 写进 VISION_MODELS |
| 采样参数 | 只有以 gpt-5、o1、o3、o4-mini 开头、不带前缀的模型名会改用 NextChat 固定的采样值而不是会话设置，并使用 max_completion_tokens | 带前缀的 ID 会按当前会话的设置发送；若 400 错误点名某个参数，把该会话的 Temperature 和 Top P 调到 1 |

## NextChat 该填哪个模型 ID？

从 /models 页复制精确的模型 ID，保留大小写、连字符和版本后缀，不要用展示名称代替。打开该模型的详情页，核对支持的 API 端点、上下文窗口和工具调用等能力，再与 NextChat 当前选择的 provider 和功能对应。模型出现在目录里，不等于当前客户端能调用它的所有功能。建议为每个工具单独建 API Key，并设置 maxSpend 消费上限。

## NextChat 用的是哪种 API 协议？

OpenAI 兼容描述的是接口格式，不能据此推断 Chat Completions（/v1/chat/completions）、Responses（/v1/responses）和 Anthropic Messages（/v1/messages）可以互换。先核对工具当前版本、provider 配置和实际请求路径，再查模型详情与 API 兼容性事实页。一次普通对话成功，也不能证明服务端工具、历史状态或文件编辑功能都受支持。

## 在 trace 里验证 NextChat 的调用

先在 NextChat 发出一次简单文本请求，再到 Dashboard → Logs 按时间、模型和 request_id 核对 trace：tokens、花费、延迟和状态码。成功后再分别验证流式输出、工具调用和多轮历史。失败时保留实际请求路径、完整错误消息及 request_id；没有对应日志时，先查客户端配置和网络，不能仅凭客户端报错认定是网关或上游故障。

## 常见问题

### BASE_URL 要不要以 /v1 结尾？

不要。NextChat 的 README 把 BASE_URL 写成 http://your-openai-proxy.com 这样的主机地址，服务端路由会把 v1/chat/completions 拼在后面。填 BASE_URL=https://api.router.one；填成 https://api.router.one/v1 会请求 /v1/v1/chat/completions 并失败。应用内的「接口地址」字段规则相同。这与本站 SDK 指南里带 /v1 的 base URL 正好相反，不要在工具之间照抄地址。

### 为什么目录里的模型没有出现在 NextChat 的模型选择器里？

NextChat 不会请求网关的 /models 端点：它的 OpenAI 客户端默认关闭模型列表拉取，即使打开也只保留 gpt- 或 chatgpt- 开头的 ID。选择器显示的是 NextChat 内置模型名，加上 CUSTOM_MODELS（或应用内「自定义模型名」）添加的模型。先用 -all 隐藏内置模型名——其中一部分网关未必提供——再按精确 ID 逐个加入目录模型，例如 -all,+openai/gpt-5.5@OpenAI=GPT-5.5,+anthropic/claude-sonnet-5@OpenAI=Claude Sonnet 5。@OpenAI 标记对所有系列都适用：它选择的是 NextChat 的 OpenAI 格式客户端，也就是网关为每个聊天模型提供的 Chat Completions 请求。不加标记时，NextChat 会把该模型归入一个以模型名命名的服务商分组。

### 共享的 NextChat 实例花的是谁的 Key？

服务端设置了 OPENAI_API_KEY 时，所有输入 CODE 访问密码的用户都用这一把 Router One Key 对话，整个实例就是一份 Trace、一个 maxSpend 上限。用户在设置 → 自定义接口里填了自己的 Key，就会绕过访问密码，改用自己的 Key 计费；只有 HIDE_USER_API_KEY=1 时，NextChat 服务端才会拒绝用户自带的 Key。建议给实例单独建一把 Key 并设置 maxSpend，核对共享部署的账单时在 Dashboard → Logs 按这把 Key 筛选。

### NextChat 能通过网关用哪些模型？

选用当前目录中同时支持 NextChat 所用端点和所需功能的模型。精确 ID、当前单价与能力以 /models 及模型详情为准；不要仅按 GPT、Claude 等系列名判断兼容性。客户端能列出模型，只证明模型发现成功，仍需验证实际调用。

### 能列出模型，但调用报 400 或 404，怎么办？

先记录实际请求路径和错误消息，再核对精确模型 ID。400 可能是参数、工具类型或模型与端点不匹配；404 可能是请求路径或资源不存在，不能直接判定模型下线。若错误提示 must be called via，按它指明的端点调整客户端 provider，或换用支持当前端点的模型。不要在所有工具里统一增删 /v1 或 /chat/completions。

### 中国大陆能直连吗？

能。网关在大陆可直连、无需 VPN，配置与全球环境完全一致。

### 报 401/402/403/429 怎么排查？

先到 Dashboard → Logs 核对请求及错误消息。401 查 Key 是否传入和有效；402 查钱包余额与 maxSpend；403 查 Key 权限和访问限制；429 查请求频率、token 限额及上游限流，按错误来源处理。保留 request_id，再按错误码速查页逐项排查。

## 相关页面

- 全部接入指南：https://router.one/zh/integrations
- NextChat 的 API 错误排查：https://router.one/zh/llm-api-error-codes
- API 兼容性：端点与功能对照：https://router.one/zh/facts/api-compatibility.md
- Responses API 配置与限制：https://router.one/zh/codex-responses-api
- CrewAI 接入：https://router.one/zh/integrations/crewai
- Spring AI 接入：https://router.one/zh/integrations/spring-ai
- LibreChat 接入：https://router.one/zh/integrations/librechat
- Open WebUI 接入：https://router.one/zh/integrations/open-webui
- Chatbox / Cherry Studio 接入：https://router.one/zh/chatbox-cherry-studio
- 支付宝充值：https://router.one/zh/alipay-llm-api
- NextChat README：环境变量：https://github.com/ChatGPTNextWeb/NextChat#environment-variables
- NextChat 官方文档：自托管环境变量：https://docs.nextchat.dev/quickstart/selfhost/env
- 网关层负责什么：https://router.one/zh/llm-api-gateway
- OpenAI 兼容 API：https://router.one/zh/openai-compatible-api
- API 文档：https://router.one/zh/docs
- 本页规范地址：https://router.one/zh/integrations/nextchat
- 模型与每模型 token 价格：https://router.one/zh/models （markdown：https://router.one/zh/models.md ）
- 定价：https://router.one/zh/pricing
- API 文档（markdown）：https://router.one/zh/docs.md
- 公司事实（markdown）：https://router.one/zh/facts/company.md
