04. 把 CPA 添加为渠道

前提

CPA 已经可以单独调用:

curl -s http://127.0.0.1:8317/v1/models \
  -H "Authorization: Bearer 你的CPA_API_KEY"

返回模型列表说明 CPA 本身可用。

添加渠道

New API 后台:

渠道 -> 添加渠道

字段按下面填。

字段
类型OpenAI
名称CPA
分组default
模型先填你要测试的模型,比如 gpt-5.4
密钥CPA 的 api-key
代理 / Base URLhttp://172.17.0.1:8317

保存后点“测试”。

为什么 Base URL 是 172.17.0.1

New API 运行在 Docker 容器里。容器内的 127.0.0.1 是 New API 容器自己,不是宿主机。

本次 CPA 通过宿主机暴露 8317,所以 New API 容器访问 CPA 要走 Docker bridge 网关:

http://172.17.0.1:8317

如果以后把 New API 和 CPA 放到同一个自定义 Docker network,也可以用容器名访问,例如:

http://cli-proxy-api:8317

但本次实际跑通的是 172.17.0.1

从 New API 容器里测试 CPA

如果渠道测试失败,先在服务器执行:

docker exec new-api wget -qO- http://172.17.0.1:8317/v1/models \
  --header="Authorization: Bearer 你的CPA_API_KEY"

能返回模型列表,说明 New API 容器到 CPA 的网络通。

如果失败:

  • Connection refused:CPA 没监听宿主 8317,或端口映射有问题。
  • 401 Unauthorized:CPA key 错了。
  • timeout:容器网络、防火墙或 CPA 监听地址问题。

模型名

模型名要以 CPA 实际返回为准。先看列表:

curl -s http://127.0.0.1:8317/v1/models \
  -H "Authorization: Bearer 你的CPA_API_KEY" | python3 -m json.tool

New API 渠道里填写的模型名必须和上游支持的模型名一致。

测试链路

渠道测试成功代表这条链路已经通:

New API -> CPA -> 上游账号/模型

后续用户调用 New API 时,不再直接使用 CPA key,而是使用 New API 分发的用户 token。