Loading...

文章背景图

自建 New API 网关:一个入口聚合所有大模型

2026-09-13
0
-
- 分钟
|

自建 New API 网关:一个入口聚合所有大模型

手上同时有 OpenAI、DeepSeek、Claude、智谱、月之暗面……一堆模型的 API key,每个 key 的地址、格式、计费都不一样,用起来很烦。New API 就是来解决这个问题的:一个网关,统一管理所有模型的 key、计费、配额,对外只暴露一个 OpenAI 兼容接口,下游任何工具都能直接用。

New API 是 one-api 的二次开发版本,功能更强、维护更活跃。本文记录我用 Docker 自建 New API 的完整过程(含反代 + HTTPS),敏感信息已脱敏。

一、New API 能干什么

  • 聚合渠道:把多家模型厂商配置成「渠道」,统一成一个入口。
  • OpenAI 兼容:对外提供标准的 /v1 接口,下游直接当 OpenAI 用。
  • 令牌管理:自己签发 token,控制谁能用、能用多少额度。
  • 计费与配额:按调用量统计消耗,给每个 token 设额度上限。
  • 日志审计:每次调用的请求/响应、耗时、报错都留痕。

二、环境准备

  • 一台 Linux 服务器 + Docker / Docker Compose
  • 一个域名(用于反代和 HTTPS,可选但强烈建议)
  • 反向代理工具(我用 Nginx Proxy Manager,也可以 Nginx / Caddy)

三、Docker Compose 部署

新建一个目录,写 docker-compose.yml

services:
  new-api:
    image: calciumion/new-api:latest
    container_name: new-api
    restart: always
    command: --log-dir /app/logs
    volumes:
      - ./data:/data
      - ./logs:/app/logs
    environment:
      - TZ=Asia/Shanghai
      - ERROR_LOG_ENABLED=true
      - MEMORY_CACHE_ENABLED=true
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3
docker compose up -d

启动后默认监听 3000 端口。

数据库选择

New API 默认用 SQLite/data/one-api.db),开箱即用、零依赖,个人自用完全够。如果要多机部署或高并发,再切到 MySQL / PostgreSQL,取消注释 SQL_DSN 环境变量即可:

environment:
  - SQL_DSN=root:密码@tcp(mysql:3306)/new-api  # MySQL 示例

四、反向代理 + HTTPS

New API 是 HTTP 服务,直接用 IP 也能访问,但配上域名 + HTTPS 才靠谱(token 走明文 HTTP 有泄露风险)。以 Nginx Proxy Manager 为例:

  1. 新建一个 Proxy Host,域名填 ai.example.top
  2. 转发到 new-api:3000(同一 Docker 网络内直接用容器名)。
  3. 开启 SSL,Let's Encrypt 自动签发证书。

核心反代配置要点:

location / {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_http_version 1.1;
    # 其余走标准 proxy 配置
}

完成后就能通过 https://ai.example.top 访问后台了。

五、初始化与配置

1. 注册管理员

首次打开后台会引导注册管理员账号。注册完登录,进入控制台。

2. 添加渠道(Channel)

渠道就是上游的模型厂商。点「渠道」→「添加渠道」,填入:

  • 类型:选对应的厂商(OpenAI / DeepSeek / Claude / 自定义等)
  • Base URL:上游接口地址
  • 密钥:你的上游 API key
  • 模型:勾选该渠道支持的模型列表

可以加多个渠道,New API 会按权重和优先级做负载均衡与故障转移。

3. 签发令牌(Token)

「令牌」页新建一个 token,设置额度、过期时间、可用模型。这个 token 就是你以后调用时用的 key。

六、对接使用

New API 对外提供 OpenAI 兼容接口,下游工具只要把 base URL 和 key 换成你的网关即可:

Base URL: https://ai.example.top/v1
API Key:  刚才签发的 token

比如在 OpenCode / 各类客户端 / 自己写的代码里:

{
  "baseURL": "https://ai.example.top/v1",
  "apiKey": "sk-xxxx"
}

之后无论上游切了多少家模型,下游都不用改,统一从这一个网关走。

七、踩坑小结

  1. 端口:New API 容器内监听 3000,别和别的服务冲突;走反代就不必映射到宿主机。
  2. 数据库密码:用 MySQL/Postgres 时务必改掉示例里的默认密码。
  3. SESSION_SECRET:多机部署必须设置并改成随机串,否则 session 会串。
  4. 流式超时:遇到空补全,试着调大 STREAMING_TIMEOUT(默认 120 秒)。
  5. 健康检查:用 /api/status 探活,返回 success: true 才算正常。

八、总结

New API 的价值在于把「一堆零散的模型 key」收敛成「一个统一入口 + 一套配额计费 + 一份日志」。Docker 部署五分钟搞定,SQLite 零依赖开箱即用,反代配上 HTTPS 就能稳定对外服务。下游任何支持 OpenAI 协议的工具,都能立刻从这一个网关接入所有模型。

如果你也在折腾自建 AI 服务,欢迎交流。

原创

自建 New API 网关:一个入口聚合所有大模型

本文链接: 自建 New API 网关:一个入口聚合所有大模型

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

评论交流

文章目录