new-api 部署:把多家大模型 API 聚合成一个 OpenAI 兼容接口

用着 ChatGPT、又想试试 Claude 和几家的国产模型,很快就会发现一件事:每个 SDK、每个 key、每套计费口径都不一样,代码里到处是 if provider == ...。

new-api 解决的就是这个:它把一堆上游模型渠道,汇聚成一个 OpenAI 兼容的接口。你的客户端只认一个 BASE_URL + 一个 key,背后换了哪家供应商,代码一行都不用改。

聚合的价值在哪

  • 一个接口统一所有模型:换供应商、加新模型,客户端无感;
  • 统一额度与限流:给不同的下游令牌分配额度、设分组,防止单 key 被刷爆;
  • 渠道故障切换:某家上游挂了,自动切到备用渠道;
  • 用量统计:谁用了多少、花了多少,面板上一目了然。

数据流向

new-api 聚合接口的数据流

客户端(Claude Code、脚本、任意 OpenAI 兼容工具)→ new-api 统一端点 → 按模型路由到不同上游渠道(OpenAI / Anthropic / Gemini / 国产模型)→ 结果原路返回。

操作步骤速览

new-api 部署步骤

一、Docker 起服务

步骤 1:启动 new-api

$ docker run -d --name new-api --restart=always \
    -p 3000:3000 \
    -v /opt/new-api:/data \
    calciumion/new-api:latest

访问 http://服务器IP:3000。默认账号 root / 密码 123456——登进去第一件事就是改密码,这是明牌口令,公网裸奔等于送人。

二、加渠道:把各家 key 塞进来

步骤 2:配置上游渠道

面板 →「渠道」→ 新增渠道:

  • 类型:选上游种类(OpenAI / Anthropic / Gemini / 各种国产模型);
  • 上游地址(Base URL):注意——很多"OpenAI 兼容"的国产模型 base 地址各不相同,要按各家文档填对;
  • 密钥:填该家的 key;
  • 模型列表:填这个渠道要开放的模型名。

同一个模型可以配多个渠道,后面就能做负载均衡和故障切换。

三、建令牌,分配给客户端

步骤 3:创建令牌并接入客户端

面板 →「令牌」→ 新建:

  • 设额度上限、过期时间、可用分组;
  • 复制生成的 sk-... 令牌。

然后把地址和令牌给客户端(以 OpenAI 兼容用法为例):

$ export OPENAI_BASE_URL="https://api.example.com/v1"
$ export OPENAI_API_KEY="sk-你的令牌"

Claude Code 之类的工具同理,只要把 ANTHROPIC_BASE_URL 指向 new-api 的 Anthropic 兼容端点即可。

四、反代 + 加固

步骤 4:反代与安全加固

  • 反代:Nginx 把 api.example.com 反代到 127.0.0.1:3000,开 HTTPS;
  • 锁面板:/panel 路径加 Basic Auth 或限制来源 IP,只把 /v1 暴露给客户端;
  • 渠道容错:开启渠道自动禁用 / 失败重试,上游报错自动切备用;
  • 额度兜底:给每个令牌设额度上限,单个 key 被刷爆也只损失设定值。

三个常见的坑

  • 默认口令不改:root / 123456 是全网都知道的,公网入口必须第一时间改掉,并给面板加访问保护。
  • 上游 base 地址填错:很多国产模型虽"OpenAI 兼容",但 base 路径不同(有的要带 /v1,有的不带)。渠道测试不通,先怀疑这里。
  • 面板暴露在前端:正确姿势是只暴露 /v1 给客户端,管理面板要么锁 IP、要么加认证,别让 /panel 裸奔。

小结

new-api 的价值不在于"多了一个管理面板",而在于把散落在各家的模型能力收编成一个稳定接口——上游怎么变,下游都不用动。

对同时用 Claude Code、脚本、又想在多家模型间横向比较的人,这一步几乎是必做的基础设施:先有统一入口,才谈得上灵活换模型、控成本、看用量。

常见问题

new-api 和 one-api 是什么关系?

new-api 是 one-api 的活跃分支,界面与功能更现代,兼容 one-api 的渠道与数据格式;已有的 one-api 数据可以直接迁移过来。

聚合接口安全吗?

关键看部署。别把上游 key 明文暴露到前端;用令牌(token)分配额度、设分组与限流,并给面板加访问保护,这样即使某个下游 key 泄露,损失也可控。

相关阅读

上一篇 OpenList 部署实战:Alist 换血之后,自建网盘聚合的正确姿势(2026)
下一篇 Cloudflare Tunnel 实战:零开放端口把内网服务暴露到公网(2026)