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.2
  • gpt-5.2-codex - GPT 5.2 Codex
  • gpt-5.1 - GPT 5.1
  • gpt-5.1-codex - GPT 5.1 Codex
  • gpt-5.1-codex-mini - GPT 5.1 Codex Mini更快更便宜
  • gpt-5.1-codex-max - GPT 5.1 Codex Max
  • gpt-5 - GPT 5
  • gpt-5-codex - GPT 5 Codex
  • gpt-5-codex-mini - GPT 5 Codex Mini

在 Cherry Studio 中使用

Cherry Studio 是一个支持多种 AI 服务的桌面客户端。配置步骤:

1. 启动代理服务

cd gpt2api-node
npm start

2. 在 Cherry Studio 中配置

  1. 打开 Cherry Studio
  2. 进入 设置模型提供商
  3. 添加新的 OpenAI 兼容 提供商
  4. 填写配置:
    • 名称: 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

注意事项

  1. Token 安全: 请妥善保管 token.json 文件,不要提交到版本控制系统
  2. 网络要求: 需要能够访问 chatgpt.comauth.openai.com
  3. Token 有效期: Token 会自动刷新,但如果 refresh_token 失效,需要重新获取
  4. 并发限制: 根据 OpenAI 账户限制,注意控制并发请求数量

故障排除

Token 加载失败

确保 token.json 文件存在且格式正确,参考 token.example.json

Token 刷新失败

可能是 refresh_token 已过期,需要重新从 CLIProxyAPI 获取新的 token。

代理请求失败

检查网络连接,确保能够访问 OpenAI 服务。

许可证

MIT License

相关项目

Description
No description provided
Readme 1.1 MiB
Languages
JavaScript 74%
HTML 25.8%
Dockerfile 0.2%