自建 AI 号池与网关实现 AI 自由

本文参考 L 站文章 https://linux.do/t/topic/1972677

自建 AI 号池与网关实现 AI 自由

本文主要面向 ChatGPT 的 Plus/Pro 订阅方案。

搭建 AI API 网关

使用 Docker Compose 部署 Sub2API:

Linux

1
2
3
4
5
6
7
8
9
mkdir -p /opt/sub2api
cd /opt/sub2api

# 下载官方部署文件
curl -o docker-compose.local.yml https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-compose.local.yml
curl -o .env https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/.env.example

# 创建数据目录
mkdir -p data postgres_data redis_data

编辑 .env,至少改这几项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 对外访问端口
BIND_HOST=0.0.0.0
SERVER_PORT=8080

# 时区
TZ=Asia/Shanghai

# PostgreSQL
POSTGRES_USER=sub2api
POSTGRES_PASSWORD=改成强密码
POSTGRES_DB=sub2api

# 管理员账号
ADMIN_EMAIL=admin@yourdomain.com
ADMIN_PASSWORD=改成强密码

# JWT / 2FA 密钥,强烈建议固定,不要留空
JWT_SECRET=用 openssl rand -hex 32 生成
TOTP_ENCRYPTION_KEY=用 openssl rand -hex 32 生成

生成两段密钥可以使用该指令:

1
2
openssl rand -hex 32
openssl rand -hex 32

启动命令:

1
docker compose -f docker-compose.local.yml up -d

更新和停止命令:

1
2
3
4
5
6
# 更新镜像
docker compose -f docker-compose.local.yml pull
docker compose -f docker-compose.local.yml up -d

# 停止
docker compose -f docker-compose.local.yml down

Windows

Docker Desktop + PowerShell
先创建目录并下载文件:

1
2
3
4
5
6
7
8
9
10
11
12
mkdir D:\sub2api -Force
cd D:\sub2api

Invoke-WebRequest `
-Uri "https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-compose.local.yml" `
-OutFile "docker-compose.local.yml"

Invoke-WebRequest `
-Uri "https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/.env.example" `
-OutFile ".env"

mkdir data, postgres_data, redis_data -Force

编辑 .env,至少改这几项:

1
2
3
4
5
6
7
8
9
10
11
12
13
BIND_HOST=0.0.0.0
SERVER_PORT=8080
TZ=Asia/Shanghai

POSTGRES_USER=sub2api
POSTGRES_PASSWORD=改成你的强密码
POSTGRES_DB=sub2api

ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=改成你的后台密码

JWT_SECRET=自己生成一段长随机字符串
TOTP_ENCRYPTION_KEY=自己生成一段长随机字符串

生成两段密钥可以使用该指令:

1
2
[guid]::NewGuid().ToString("N") + [guid]::NewGuid().ToString("N")
[guid]::NewGuid().ToString("N") + [guid]::NewGuid().ToString("N")

把生成的两行分别填进:

  • JWT_SECRET=
  • TOTP_ENCRYPTION_KEY=

然后启动:

1
docker compose -f docker-compose.local.yml up -d

后续常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
# 更新镜像
docker compose -f docker-compose.local.yml pull
docker compose -f docker-compose.local.yml up -d

# 重启
docker compose -f docker-compose.local.yml restart

# 停止
docker compose -f docker-compose.local.yml down

# 查看全部日志
docker compose -f docker-compose.local.yml logs -f

注册 ChatGPT

推荐使用注册机批量注册,这里放个 L 站佬的注册机:
https://github.com/QLHazyCoder/codex-oauth-automation-extension

手动稳定注册,我使用过的方案:

  1. 首先购买一个 .com 域名,价格在几十块一年 (也可以购买一些置信度高的纯净邮箱,比如一毛钱的 Outlook/Gmail,TG、咸鱼均有渠道)
  2. 按照文档部署 Cloud Mail 服务 https://doc.skymail.ink/guide/dashboard.html
  3. 使用浏览器无痕模式 + 纯净代理 IP 开始注册,如出现 add_phone 可考虑使用下面方法:
    • 使用 Roxy 指纹浏览器。
    • 代理节点严格设置在 日本 或 韩国。

为账号开通订阅

Free 额度太低,现在没什么稳定高速的注册机,且 Free AI 速率很低,所以不推荐 Free 号池了。
我们从渠道批发一些无质保的订阅 CDK,下面是 GPT 订阅参考价格:

订阅类型 参考价格 元 / 月
Plus 7 ~ 10
Pro5x 130 ~ 160
Pro20x 200~260

一些我看到的渠道,不含推广 / AFF,也可以自己去 TG 搜:
- 若曦 AI 渠道 (我一直从这家批的,目前没有掉订阅的)
- 86 渠道
- auto-subscribe 渠道

将账号导入网关

先配置 Sub2API,如果跟着教程配置过的可以跳过:

  1. 分组管理:创建任意名称的分组,选择 OpenAI 平台,计费类型改为 订阅(配额),打开 允许 /v1/messages 调度,其他保持默认即可。
  2. 订阅管理:给自己分配刚才创建的分组。
  3. IP 管理:添加自己的代理,能够访问 ChatGPT 的 IP。
  4. 用户管理:编辑自己账号,把并发改高(如 10)。
  5. 账号管理,把之前注册和订阅的账号添加进号池:账号名称建议用注册邮箱,选择 OpenAI 平台,账号类型选择 OAuth,代理选择刚才创建的代理,优先级改 10 为之后的预留优先级空间,分组选择刚才创建的分组,然后根据提示完成添加。

接入你要使用的 AI 工具

以 Opencode 为例,添加 自定义提供商

  • 提供商 ID 可填写为:openaisub2api,显示名称同理,
  • BaseURL 填写网关接口:http://127.0.0.1:8080/v1
  • API-Key 先去 Sub2API 创建,然后粘贴。
  • 模型 ID 按需填写,示例:
    model-id:gpt-5.4
    显示名称:gpt-5.4