01. 概念与整体架构
New API 是做什么的
New API 是一个大模型 API 网关。它不负责登录 ChatGPT / Claude / Gemini 账号,也不直接变出免费额度;它负责把已经可用的上游 API 统一管理起来。
它主要做这些事:
- 多渠道聚合:OpenAI、Claude、Gemini、DeepSeek、OpenRouter、CPA 等。
- 用户管理:给不同用户创建账号、分组、额度。
- Token 分发:每个用户生成自己的 API key。
- 日志统计:记录调用模型、token、错误、用量。
- 模型计费:为不同模型设置价格,按额度扣费。
- 路由转发:客户端只连 New API,New API 再转发到上游渠道。
CPA 和 New API 的关系
CPA 是“凭据层”,New API 是“网关层”。
[ 用户 / 客户端 ]
|
| Base URL: http://服务器公网IP:3000/v1
| API Key: 用户在 New API 生成的 token
v
[ New API :3000 ]
|
| 渠道:CPA
| Base URL: http://172.17.0.1:8317
| API Key: CPA 的 api-key
v
[ CPA / CLIProxyAPI :8317 ]
|
| OAuth 凭据、账号池、代理出口
v
[ ChatGPT / Claude / Gemini 等上游 ]New API 只看到 CPA 是一个 OpenAI 兼容的上游 endpoint。用户不需要知道 CPA 的 key,也不需要直接访问 8317。
为什么还要加 New API
只自己用时,CPA 直接给客户端调用就够了。
需要下面能力时,才有必要加 New API:
- 给朋友或团队开独立账号。
- 给不同用户分配不同额度。
- 想看每个人的调用日志和用量。
- 想把 CPA、官方 key、OpenRouter、DeepSeek 等渠道统一到一个入口。
- 想以后做计费、充值、分组路由。
本次实际架构
你的 Mac
|
| 浏览器访问后台
| http://服务器公网IP:3000
|
| 客户端调用 API
| http://服务器公网IP:3000/v1
v
腾讯云 VPS
|
| Docker bridge
|
+-- new-api 容器
| 镜像:calciumion/new-api:latest
| 端口:0.0.0.0:3000 -> 容器 3000
| 数据:/root/new-api/data -> /data
|
+-- cli-proxy-api 容器
| 端口:8317
| New API 从容器内用 http://172.17.0.1:8317 访问它
|
+-- mihomo 容器
给 CPA 提供代理出口注意 127.0.0.1 的含义
New API 在容器里访问 127.0.0.1,指的是 New API 容器自己,不是宿主机,也不是 CPA 容器。
所以 New API 渠道里的 CPA 地址不要填:
http://127.0.0.1:8317本次部署填的是:
http://172.17.0.1:8317172.17.0.1 是 Docker 默认 bridge 网络里,容器访问宿主机的网关地址。