5e3cbb0eca3ba424846edaaeed3ea4cd83464ecf
GPT2API Node
基于 Node.js + Express 的 OpenAI Codex 反向代理服务,支持 JSON 文件导入 token,自动刷新 token,提供 OpenAI 兼容的 API 接口。
功能特性
- ✅ OpenAI Codex 反向代理
- ✅ 自动 Token 刷新机制
- ✅ 支持流式和非流式响应
- ✅ OpenAI API 兼容接口
- ✅ JSON 文件导入 Token
- ✅ 简单易用的配置
快速开始
1. 安装依赖
cd gpt2api-node
npm install
2. 配置 Token
从 CLIProxyAPI 或其他来源获取 token 文件,复制到项目根目录并命名为 token.json:
{
"id_token": "your_id_token_here",
"access_token": "your_access_token_here",
"refresh_token": "your_refresh_token_here",
"account_id": "your_account_id",
"email": "your_email@example.com",
"type": "codex",
"expired": "2026-12-31T23:59:59.000Z",
"last_refresh": "2026-01-01T00:00:00.000Z"
}
3. 配置环境变量(可选)
复制 .env.example 为 .env 并修改配置:
cp .env.example .env
PORT=3000
TOKEN_FILE=./token.json
4. 启动服务
npm start
开发模式(自动重启):
npm run dev
API 接口
聊天完成接口
端点: POST /v1/chat/completions
请求示例:
curl http://localhost:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.3-codex",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": false
}'
流式请求:
curl http://localhost:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.3-codex",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
模型列表
端点: GET /v1/models
curl http://localhost:3000/v1/models
健康检查
端点: GET /health
curl http://localhost:3000/health
支持的模型
gpt-5.3-codex- GPT 5.3 Codex(最新)gpt-5.3-codex-spark- GPT 5.3 Codex Spark(超快速编码模型)gpt-5.2- GPT 5.2gpt-5.2-codex- GPT 5.2 Codexgpt-5.1- GPT 5.1gpt-5.1-codex- GPT 5.1 Codexgpt-5.1-codex-mini- GPT 5.1 Codex Mini(更快更便宜)gpt-5.1-codex-max- GPT 5.1 Codex Maxgpt-5- GPT 5gpt-5-codex- GPT 5 Codexgpt-5-codex-mini- GPT 5 Codex Mini
在 Cherry Studio 中使用
Cherry Studio 是一个支持多种 AI 服务的桌面客户端。配置步骤:
1. 启动代理服务
cd gpt2api-node
npm start
2. 在 Cherry Studio 中配置
- 打开 Cherry Studio
- 进入 设置 → 模型提供商
- 添加新的 OpenAI 兼容 提供商
- 填写配置:
- 名称: GPT2API Node(或自定义名称)
- API 地址:
http://localhost:3000/v1 - API Key: 随意填写(如
dummy),不会被验证 - 模型: 选择或手动输入模型名称(如
gpt-5.3-codex)
3. 开始使用
配置完成后,在 Cherry Studio 中选择刚才添加的提供商和模型,即可开始对话。
可用模型列表
在 Cherry Studio 中可以使用以下任意模型:
gpt-5.3-codex- 推荐,最新版本gpt-5.3-codex-spark- 超快速编码gpt-5.2-codex- 稳定版本gpt-5.1-codex- 较旧版本- 其他 GPT-5 系列模型
使用示例
Python
import openai
client = openai.OpenAI(
base_url="http://localhost:3000/v1",
api_key="dummy" # 不需要真实的 API key
)
response = client.chat.completions.create(
model="gpt-5.3-codex",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)
JavaScript/Node.js
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'http://localhost:3000/v1',
apiKey: 'dummy'
});
const response = await client.chat.completions.create({
model: 'gpt-5.3-codex',
messages: [
{ role: 'user', content: 'Hello!' }
]
});
console.log(response.choices[0].message.content);
cURL
curl http://localhost:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.3-codex",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
]
}'
Token 管理
自动刷新
服务会自动检测 token 是否过期(提前 5 分钟),并在需要时自动刷新。刷新后的 token 会自动保存到文件中。
手动导入
如果你有从 CLIProxyAPI 导出的 token 文件,直接复制为 token.json 即可使用。
Token 文件格式
Token 文件必须包含以下字段:
access_token: 访问令牌refresh_token: 刷新令牌id_token: ID 令牌(可选)account_id: 账户 ID(可选)email: 邮箱(可选)expired: 过期时间(ISO 8601 格式)type: 类型(固定为 "codex")
项目结构
gpt2api-node/
├── src/
│ ├── index.js # 主服务器文件
│ ├── tokenManager.js # Token 管理模块
│ └── proxyHandler.js # 代理处理模块
├── package.json
├── .env.example
├── token.example.json
├── .gitignore
└── README.md
注意事项
- Token 安全: 请妥善保管
token.json文件,不要提交到版本控制系统 - 网络要求: 需要能够访问
chatgpt.com和auth.openai.com - Token 有效期: Token 会自动刷新,但如果 refresh_token 失效,需要重新获取
- 并发限制: 根据 OpenAI 账户限制,注意控制并发请求数量
故障排除
Token 加载失败
确保 token.json 文件存在且格式正确,参考 token.example.json。
Token 刷新失败
可能是 refresh_token 已过期,需要重新从 CLIProxyAPI 获取新的 token。
代理请求失败
检查网络连接,确保能够访问 OpenAI 服务。
许可证
MIT License
相关项目
- CLIProxyAPI - 原始 Go 语言实现
Description
Languages
JavaScript
74%
HTML
25.8%
Dockerfile
0.2%