File size: 7,898 Bytes
e519351
 
 
 
 
 
 
 
 
 
 
6bc074c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e519351
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
---
title: aurora
emoji: 🚀
colorFrom: blue
colorTo: indigo
sdk: docker
pinned: false
---



# AURORA

[English README](https://github.com/aurora-develop/aurora/blob/main/README_EN.md)

Aurora 将 ChatGPT Web 后端能力转换为类 OpenAI API,支持聊天、Responses、文件问答、图片生成、图片变体、语音转文字、文字转语音、模型列表,以及通过 `refresh_token` / `session_token` 获取可用的 ChatGPT `access_token`## 接口文档

完整接口、鉴权、token 换取和 curl 示例请查看:[API.md](API.md)

## 功能

- OpenAI 风格的 `/v1/chat/completions`,支持流式和非流式返回,支持 `temperature`/`top_p`/`max_tokens`/`stop`/`reasoning_effort`/`response_format`/`stream_options.include_usage` 等参数。
- 工具调用 (Tool Calling) 模拟 — ChatGPT Web 不原生支持 function calling,Aurora 通过 `<tool_call>` 文本协议模拟该能力,支持 `tools`/`tool_choice` 字段,自动注入 system prompt 并解析模型输出中的 `<tool_call>` 块为标准 OpenAI 格式的 `tool_calls`- OpenAI 风格的 `/v1/responses`,支持字符串输入、消息数组、`instructions`、流式事件,以及 `reasoning.effort`/`text.query.format`/`temperature` 等参数。
- `/v1/files` 文件上传,上传后可在聊天或 Responses 请求中携带 `file_id` 做文件问答。
- `/v1/images/generations` 图片生成,模型列表包含 `gpt-image-2`,支持 SSE 流式返回,支持 URL 或 `b64_json`- `/v1/images/edits` 改图 + `/v1/images/variations` 图生图(变体)。
- `/v1/audio/speech` 语音合成(TTS),兼容常见 OpenAI voice 和输出格式。
- `/v1/audio/transcriptions` 语音转文字,支持 mp3/wav/m4a/ogg/flac/webm 格式。
- `/v1/audio/translations` 音频翻译为英文。
- `/v1/models` 模型列表接口。
- `/auth/refresh`:传入 OpenAI `refresh_token` 获取 `access_token`- `/auth/session`:传入 ChatGPT `session_token` 获取新的 `session_token``access_token`- `/backend-api/conversation` 原始 ChatGPT conversation 请求透传。

- 支持 `access_tokens.txt` 账号池、`free_tokens.txt` 免费 UUID 池、`refresh_tokens.txt` OAuth 刷新令牌池、`session_tokens.txt` 会话令牌池、自动生成免费账号、代理池、TLS。
- **完整账号管理体系**:每个账号拥有独立的 TLS Client、代理 IP、浏览器指纹和 WSS 连接,支持三类型账号(TypeNoAuth / TypeFree / TypePUID),六种生命周期状态。
- **Token 去重**:通过解析 JWT payload 中的 `chatgpt_account_id` 去重,同一 ChatGPT 账号多次出现不会重复占用池位置。
- **Capability 能力控制**:10 种按账号类型控制的能力(Chat / Responses / ToolCalling / ImageGenerate / ImageEdit / ImageVariation / TTS / Transcribe / FileUpload / WebSocket),noauth 仅可访问 chat/responses,其余需登录。
- **后台健康检查**:每 10 分钟自动续期已过期的 `session_token` / `refresh_token` 账号。
- **外部 access_token 支持**:`ENABLE_EXTERNAL_TOKEN=true` 时接受外部传入的 ChatGPT access_token,自动创建隔离的临时账号(含独立 TLS Client + UA + 代理 + 浏览器指纹),10 分钟无请求自动释放。
## 部署

### 编译部署

```bash
git clone https://github.com/aurora-develop/aurora
cd aurora
go build -o aurora
chmod +x ./aurora
./aurora
```

### Docker 部署

```bash
docker run -d \
  --name aurora \
  -p 8080:8080 \
  -v $(pwd)/access_tokens.txt:/access_tokens.txt:ro \
  ghcr.io/aurora-develop/aurora:latest
```

> 准备 `access_tokens.txt` 到当前目录(一行一个 access_token),通过 `-v` 挂载进容器。其他文件同理:`-v $(pwd)/free_tokens.txt:/free_tokens.txt:ro`、`-v $(pwd)/proxies.txt:/proxies.txt:ro`。

### Docker Compose 部署

```bash
mkdir aurora
cd aurora
# 1. 准备好 access_tokens.txt(每行一个 token)
# 2. 将仓库中的 docker-compose.yml 放到当前目录
# 3. docker-compose.yml 已包含 ./access_tokens.txt 的挂载,按需取消注释 free_tokens.txt 或 proxies.txt
docker-compose up -d
```

## 配置

默认情况无需额外配置。可以通过 `.env`、系统环境变量或同名部署平台环境变量配置:

```env
# 服务监听
SERVER_HOST=0.0.0.0
SERVER_PORT=8080
PORT=8080

# 鉴权
Authorization=your_authorization

# 免费账号
FREE_ACCOUNTS=true
FREE_ACCOUNTS_NUM=1024

# HTTPS
TLS_CERT=path_to_your_tls_cert
TLS_KEY=path_to_your_tls_key

# 代理
PROXY_URL=your_proxy_url
http_proxy=

# 转发代理(可选,给 backend-api / files 端点单独配置)
API_REVERSE_PROXY=
FILES_REVERSE_PROXY=

# 自定义 BASE_URL(默认 https://chatgpt.com/backend-api)
BASE_URL=

# 流式响应开关(设为 false 时 Chat Completions 强制返回完整响应)
STREAM_MODE=true

# 是否在请求中保留历史上下文(设为 true 启用)
ENABLE_HISTORY=false

# 工具调用模拟
TOOL_CALLING_ENABLED=true
REFUSAL_RETRIES=3
# DEBUG_TOOL_LOG=tool_debug.log

# 外部 access_token(接受外部传入的 ChatGPT access_token)
ENABLE_EXTERNAL_TOKEN=true
```

说明:

- `SERVER_HOST` / `SERVER_PORT`:服务监听地址和端口。`PORT` 为 `SERVER_PORT` 的 fallback。
- `Authorization`:服务访问 key。配置后,请求头需携带 `Authorization: Bearer your_authorization`。
- `FREE_ACCOUNTS`:是否自动生成免费 UUID 账号,默认关闭。
- `FREE_ACCOUNTS_NUM`:自动生成免费 UUID 账号数量,默认 1024。
- `TLS_CERT` / `TLS_KEY`:同时配置时启用 HTTPS。
- `PROXY_URL`:代理池地址。`http_proxy` 为备用代理地址。
- `API_REVERSE_PROXY` / `FILES_REVERSE_PROXY`:分别给 `/backend-api/*` 和 `/files` 端点单独配置转发代理,不配置时走默认代理。
- `BASE_URL`:自定义上游 ChatGPT API 地址,默认 `https://chatgpt.com/backend-api`。
- `STREAM_MODE`:设为 `false` 时强制关闭 Chat Completions 流式返回,默认 `true`。
- `ENABLE_HISTORY`:设为 `true` 时在请求中保留对话历史上下文。
- `TOOL_CALLING_ENABLED`:设为 `false` 时忽略请求中的 `tools` 字段,关闭工具调用模拟。
- `REFUSAL_RETRIES`:模型陷入 "sandbox 拒绝" 循环时的最大重试次数,默认 `3`。
- `ENABLE_EXTERNAL_TOKEN`:设为 `true` 时接受外部传入的 ChatGPT access_token,自动创建隔离的临时账号(含独立 TLS Client、UA、代理、指纹),10 分钟无请求自动释放。默认 `true`。
- `DEBUG_TOOL_LOG`:设为文件路径时,将每次工具解析的详细 trace 写入该文件(调试用)。

本地账号文件:

- `access_tokens.txt`:每行一个 ChatGPT `access_token`,用于需要登录账号的能力。
- `free_tokens.txt`:每行一个 UUID device id,作为免费账号池。
- `refresh_tokens.txt`:每行一个 OpenAI `refresh_token`(支持 `token:team_id` 格式),启动时自动交换为 `access_token`,过期后自动续期。
- `session_tokens.txt`:每行一个 ChatGPT `session_token`(支持 `token:team_id` 格式),启动时自动交换为 `access_token`,过期后自动续期。
- `proxies.txt`:每行一个代理 URL(需要包含端口),与 `PROXY_URL` 一起组成代理池。

## 注意事项

- 图片、TTS、文件能力依赖登录态 access token,免费 UUID 账号不可用。
- `STREAM_MODE=false` 时会强制关闭 Chat Completions 流式返回。
- 本项目是 ChatGPT Web 能力转换服务,接口形状尽量兼容 OpenAI API,但并非 OpenAI 官方服务。

## 鸣谢

感谢各位大佬的 PR 支持。

## 参考项目

- [ChatGPT-to-API](https://github.com/xqdoo00o/ChatGPT-to-API)
- [chat2api](https://github.com/aurorax-neo/chat2api)

## License

MIT License

## 友链

- [linux.do](https://linux.do/)
- [xiaozhou26](https://github.com/xiaozhou26)
- [aurorax-neo](https://github.com/aurorax-neo)