dsh-plugin-image-workbench 1.1.5 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/LICENSE +21 -21
  2. package/README.en.md +5 -3
  3. package/README.md +7 -3
  4. package/client.js +241 -241
  5. package/cordis.patch.yml +14 -14
  6. package/host.js +51 -0
  7. package/install.mjs +333 -387
  8. package/package.json +3 -2
  9. package/scripts/fetch-style-images.mjs +104 -0
  10. package/scripts/vendor-snapshot.py +154 -154
  11. package/server/access.py +26 -26
  12. package/server/app.py +1329 -1329
  13. package/server/catalog.py +147 -147
  14. package/server/composer.py +391 -391
  15. package/server/drafts.py +158 -158
  16. package/server/history.py +575 -575
  17. package/server/imaging.py +172 -172
  18. package/server/pool.py +1335 -1335
  19. package/server/pool_admin.py +921 -921
  20. package/server/pool_service.py +1073 -1073
  21. package/server/requirements.txt +6 -6
  22. package/server/smoke_check.py +402 -402
  23. package/server/static/access.html +202 -202
  24. package/vendor/chatgpt2api/source/.env.example +82 -82
  25. package/vendor/chatgpt2api/source/.python-version +1 -1
  26. package/vendor/chatgpt2api/source/LICENSE +21 -21
  27. package/vendor/chatgpt2api/source/README.md +391 -391
  28. package/vendor/chatgpt2api/source/VERSION +1 -1
  29. package/vendor/chatgpt2api/source/api/__init__.py +2 -2
  30. package/vendor/chatgpt2api/source/api/accounts.py +537 -537
  31. package/vendor/chatgpt2api/source/api/ai.py +217 -217
  32. package/vendor/chatgpt2api/source/api/app.py +62 -62
  33. package/vendor/chatgpt2api/source/api/errors.py +46 -46
  34. package/vendor/chatgpt2api/source/api/image_inputs.py +309 -309
  35. package/vendor/chatgpt2api/source/api/image_tasks.py +120 -120
  36. package/vendor/chatgpt2api/source/api/support.py +134 -134
  37. package/vendor/chatgpt2api/source/api/system.py +365 -365
  38. package/vendor/chatgpt2api/source/assets/kunrouai.svg +50 -50
  39. package/vendor/chatgpt2api/source/config.default.json +108 -108
  40. package/vendor/chatgpt2api/source/main.py +9 -9
  41. package/vendor/chatgpt2api/source/pyproject.toml +27 -27
  42. package/vendor/chatgpt2api/source/scripts/init_proxy_config.py +186 -186
  43. package/vendor/chatgpt2api/source/scripts/migrate_storage.py +163 -163
  44. package/vendor/chatgpt2api/source/scripts/privoxy-warp.conf +13 -13
  45. package/vendor/chatgpt2api/source/scripts/test_outlook_token_mailbox.py +385 -385
  46. package/vendor/chatgpt2api/source/scripts/test_storage.py +129 -129
  47. package/vendor/chatgpt2api/source/scripts/verify_oauth_refresh.py +92 -92
  48. package/vendor/chatgpt2api/source/services/account_service.py +1757 -1757
  49. package/vendor/chatgpt2api/source/services/auth_service.py +253 -253
  50. package/vendor/chatgpt2api/source/services/backup_service.py +671 -671
  51. package/vendor/chatgpt2api/source/services/config.py +667 -667
  52. package/vendor/chatgpt2api/source/services/content_filter.py +242 -242
  53. package/vendor/chatgpt2api/source/services/cpa_service.py +315 -315
  54. package/vendor/chatgpt2api/source/services/editable_file_task_service.py +260 -260
  55. package/vendor/chatgpt2api/source/services/image_service.py +376 -376
  56. package/vendor/chatgpt2api/source/services/image_storage_service.py +405 -405
  57. package/vendor/chatgpt2api/source/services/image_tags_service.py +76 -76
  58. package/vendor/chatgpt2api/source/services/image_task_service.py +550 -550
  59. package/vendor/chatgpt2api/source/services/log_service.py +337 -337
  60. package/vendor/chatgpt2api/source/services/model_service.py +182 -182
  61. package/vendor/chatgpt2api/source/services/oauth_login_service.py +267 -267
  62. package/vendor/chatgpt2api/source/services/openai_backend_api.py +2763 -2763
  63. package/vendor/chatgpt2api/source/services/openai_oauth.py +32 -32
  64. package/vendor/chatgpt2api/source/services/protocol/__init__.py +2 -2
  65. package/vendor/chatgpt2api/source/services/protocol/anthropic_v1_messages.py +307 -307
  66. package/vendor/chatgpt2api/source/services/protocol/chat_completion_cache.py +238 -238
  67. package/vendor/chatgpt2api/source/services/protocol/conversation.py +1644 -1644
  68. package/vendor/chatgpt2api/source/services/protocol/error_response.py +124 -124
  69. package/vendor/chatgpt2api/source/services/protocol/openai_search.py +19 -19
  70. package/vendor/chatgpt2api/source/services/protocol/openai_v1_chat_complete.py +316 -316
  71. package/vendor/chatgpt2api/source/services/protocol/openai_v1_image_edit.py +86 -86
  72. package/vendor/chatgpt2api/source/services/protocol/openai_v1_image_generations.py +42 -42
  73. package/vendor/chatgpt2api/source/services/protocol/openai_v1_models.py +53 -53
  74. package/vendor/chatgpt2api/source/services/protocol/openai_v1_response.py +453 -453
  75. package/vendor/chatgpt2api/source/services/protocol/web_search_tool.py +160 -160
  76. package/vendor/chatgpt2api/source/services/proxy_service.py +648 -648
  77. package/vendor/chatgpt2api/source/services/storage/__init__.py +5 -5
  78. package/vendor/chatgpt2api/source/services/storage/base.py +38 -38
  79. package/vendor/chatgpt2api/source/services/storage/database_storage.py +194 -194
  80. package/vendor/chatgpt2api/source/services/storage/factory.py +104 -104
  81. package/vendor/chatgpt2api/source/services/storage/git_storage.py +183 -183
  82. package/vendor/chatgpt2api/source/services/storage/json_storage.py +95 -95
  83. package/vendor/chatgpt2api/source/services/sub2api_service.py +531 -531
  84. package/vendor/chatgpt2api/source/utils/helper.py +469 -469
  85. package/vendor/chatgpt2api/source/utils/image_tokens.py +346 -346
  86. package/vendor/chatgpt2api/source/utils/log.py +110 -110
  87. package/vendor/chatgpt2api/source/utils/pkce.py +19 -19
  88. package/vendor/chatgpt2api/source/utils/pow.py +207 -207
  89. package/vendor/chatgpt2api/source/utils/sentinel.py +159 -159
  90. package/vendor/chatgpt2api/source/utils/turnstile.py +184 -184
  91. package/vendor/chatgpt2api/source/uv.lock +904 -904
  92. package/vendor/chatgpt2api/source/web/bun.lock +1501 -1501
  93. package/vendor/chatgpt2api/source/web/components.json +24 -24
  94. package/vendor/chatgpt2api/source/web/eslint.config.mjs +17 -17
  95. package/vendor/chatgpt2api/source/web/next.config.ts +40 -40
  96. package/vendor/chatgpt2api/source/web/package.json +58 -58
  97. package/vendor/chatgpt2api/source/web/postcss.config.mjs +5 -5
  98. package/vendor/chatgpt2api/source/web/src/app/accounts/components/account-import-dialog.tsx +925 -925
  99. package/vendor/chatgpt2api/source/web/src/app/accounts/page.tsx +1307 -1307
  100. package/vendor/chatgpt2api/source/web/src/app/debug/components/chat-panel.tsx +224 -224
  101. package/vendor/chatgpt2api/source/web/src/app/debug/components/editable-file-panel.tsx +444 -444
  102. package/vendor/chatgpt2api/source/web/src/app/debug/components/ppt-panel.tsx +9 -9
  103. package/vendor/chatgpt2api/source/web/src/app/debug/components/psd-panel.tsx +9 -9
  104. package/vendor/chatgpt2api/source/web/src/app/debug/components/search-panel.tsx +172 -172
  105. package/vendor/chatgpt2api/source/web/src/app/debug/components/skill-panel.tsx +169 -169
  106. package/vendor/chatgpt2api/source/web/src/app/debug/components/types.ts +39 -39
  107. package/vendor/chatgpt2api/source/web/src/app/debug/page.tsx +59 -59
  108. package/vendor/chatgpt2api/source/web/src/app/globals.css +230 -230
  109. package/vendor/chatgpt2api/source/web/src/app/image/components/image-composer.tsx +542 -542
  110. package/vendor/chatgpt2api/source/web/src/app/image/components/image-results.tsx +554 -554
  111. package/vendor/chatgpt2api/source/web/src/app/image/components/image-sidebar.tsx +176 -176
  112. package/vendor/chatgpt2api/source/web/src/app/image/page.tsx +1799 -1799
  113. package/vendor/chatgpt2api/source/web/src/app/image-manager/page.tsx +732 -732
  114. package/vendor/chatgpt2api/source/web/src/app/layout.tsx +50 -50
  115. package/vendor/chatgpt2api/source/web/src/app/login/page.tsx +101 -101
  116. package/vendor/chatgpt2api/source/web/src/app/logs/page.tsx +356 -356
  117. package/vendor/chatgpt2api/source/web/src/app/page.tsx +30 -30
  118. package/vendor/chatgpt2api/source/web/src/app/settings/components/api-docs-card.tsx +341 -341
  119. package/vendor/chatgpt2api/source/web/src/app/settings/components/backup-settings-card.tsx +447 -447
  120. package/vendor/chatgpt2api/source/web/src/app/settings/components/base-url-card.tsx +71 -71
  121. package/vendor/chatgpt2api/source/web/src/app/settings/components/config-card.tsx +491 -491
  122. package/vendor/chatgpt2api/source/web/src/app/settings/components/cpa-pool-dialog.tsx +108 -108
  123. package/vendor/chatgpt2api/source/web/src/app/settings/components/cpa-pools-card.tsx +169 -169
  124. package/vendor/chatgpt2api/source/web/src/app/settings/components/import-browser-dialog.tsx +185 -185
  125. package/vendor/chatgpt2api/source/web/src/app/settings/components/proxy-runtime-card.tsx +379 -379
  126. package/vendor/chatgpt2api/source/web/src/app/settings/components/proxy-settings-card.tsx +127 -127
  127. package/vendor/chatgpt2api/source/web/src/app/settings/components/proxy-settings.tsx +200 -200
  128. package/vendor/chatgpt2api/source/web/src/app/settings/components/settings-header.tsx +12 -12
  129. package/vendor/chatgpt2api/source/web/src/app/settings/components/sub2api-connections.tsx +886 -886
  130. package/vendor/chatgpt2api/source/web/src/app/settings/components/third-party-apps-card.tsx +81 -81
  131. package/vendor/chatgpt2api/source/web/src/app/settings/components/user-keys-card.tsx +422 -422
  132. package/vendor/chatgpt2api/source/web/src/app/settings/page.tsx +135 -135
  133. package/vendor/chatgpt2api/source/web/src/app/settings/store.ts +1069 -1069
  134. package/vendor/chatgpt2api/source/web/src/components/date-range-filter.tsx +49 -49
  135. package/vendor/chatgpt2api/source/web/src/components/header-actions.tsx +24 -24
  136. package/vendor/chatgpt2api/source/web/src/components/image-lightbox.tsx +434 -434
  137. package/vendor/chatgpt2api/source/web/src/components/image-thumbnail.tsx +46 -46
  138. package/vendor/chatgpt2api/source/web/src/components/theme-script.tsx +18 -18
  139. package/vendor/chatgpt2api/source/web/src/components/theme-toggle.tsx +14 -14
  140. package/vendor/chatgpt2api/source/web/src/components/top-nav.tsx +263 -263
  141. package/vendor/chatgpt2api/source/web/src/components/ui/animated-theme-toggler.tsx +256 -256
  142. package/vendor/chatgpt2api/source/web/src/components/ui/badge.tsx +41 -41
  143. package/vendor/chatgpt2api/source/web/src/components/ui/button.tsx +59 -59
  144. package/vendor/chatgpt2api/source/web/src/components/ui/calendar.tsx +46 -46
  145. package/vendor/chatgpt2api/source/web/src/components/ui/card.tsx +61 -61
  146. package/vendor/chatgpt2api/source/web/src/components/ui/checkbox.tsx +27 -27
  147. package/vendor/chatgpt2api/source/web/src/components/ui/dia-text-reveal.tsx +267 -267
  148. package/vendor/chatgpt2api/source/web/src/components/ui/dialog.tsx +132 -132
  149. package/vendor/chatgpt2api/source/web/src/components/ui/field.tsx +13 -13
  150. package/vendor/chatgpt2api/source/web/src/components/ui/input.tsx +19 -19
  151. package/vendor/chatgpt2api/source/web/src/components/ui/label.tsx +24 -24
  152. package/vendor/chatgpt2api/source/web/src/components/ui/morphing-text.tsx +149 -149
  153. package/vendor/chatgpt2api/source/web/src/components/ui/popover.tsx +38 -38
  154. package/vendor/chatgpt2api/source/web/src/components/ui/select.tsx +175 -175
  155. package/vendor/chatgpt2api/source/web/src/components/ui/sheet.tsx +143 -143
  156. package/vendor/chatgpt2api/source/web/src/components/ui/table.tsx +29 -29
  157. package/vendor/chatgpt2api/source/web/src/components/ui/tabs.tsx +91 -91
  158. package/vendor/chatgpt2api/source/web/src/components/ui/text-3d-flip.tsx +269 -269
  159. package/vendor/chatgpt2api/source/web/src/components/ui/textarea.tsx +18 -18
  160. package/vendor/chatgpt2api/source/web/src/components/version-release-dialog.tsx +127 -127
  161. package/vendor/chatgpt2api/source/web/src/constants/common-env.ts +6 -6
  162. package/vendor/chatgpt2api/source/web/src/hooks/use-version-check.ts +85 -85
  163. package/vendor/chatgpt2api/source/web/src/lib/api.ts +926 -926
  164. package/vendor/chatgpt2api/source/web/src/lib/auth-session.ts +26 -26
  165. package/vendor/chatgpt2api/source/web/src/lib/release.ts +25 -25
  166. package/vendor/chatgpt2api/source/web/src/lib/request.ts +93 -93
  167. package/vendor/chatgpt2api/source/web/src/lib/use-auth-guard.ts +89 -89
  168. package/vendor/chatgpt2api/source/web/src/lib/utils.ts +6 -6
  169. package/vendor/chatgpt2api/source/web/src/store/auth.ts +112 -112
  170. package/vendor/chatgpt2api/source/web/src/store/editable-file-history.ts +33 -33
  171. package/vendor/chatgpt2api/source/web/src/store/image-conversations.ts +318 -318
  172. package/vendor/chatgpt2api/source/web/tsconfig.json +42 -42
@@ -1,391 +1,391 @@
1
- <h1 align="center">ChatGPT2API</h1>
2
-
3
-
4
- <p align="center">ChatGPT2API 主要是对 ChatGPT 官网相关能力进行逆向整理与封装,提供面向 ChatGPT 图片生成、图片编辑、多图组图编辑场景的 OpenAI 兼容图片 API / 代理,并集成在线画图、号池管理、多种账号导入方式与 Docker 自托管部署能力。</p>
5
-
6
- > [!WARNING]
7
- > 免责声明:
8
- >
9
- > 本项目涉及对 ChatGPT 官网文本生成、图片生成与图片编辑等相关接口的逆向研究,仅供个人学习、技术研究与非商业性技术交流使用。
10
- >
11
- > - 严禁将本项目用于任何商业用途、盈利性使用、批量操作、自动化滥用或规模化调用。
12
- > - 严禁将本项目用于破坏市场秩序、恶意竞争、套利倒卖、二次售卖相关服务,以及任何违反 OpenAI 服务条款或当地法律法规的行为。
13
- > - 严禁将本项目用于生成、传播或协助生成违法、暴力、色情、未成年人相关内容,或用于诈骗、欺诈、骚扰等非法或不当用途。
14
- > - 使用者应自行承担全部风险,包括但不限于账号被限制、临时封禁或永久封禁以及因违规使用等所导致的法律责任。
15
- > - 使用本项目即视为你已充分理解并同意本免责声明全部内容;如因滥用、违规或违法使用造成任何后果,均由使用者自行承担。
16
- > - 本项目基于对 ChatGPT 官网相关能力的逆向研究实现,存在账号受限、临时封禁或永久封禁的风险。请勿使用你自己的重要账号、常用账号或高价值账号进行测试。
17
-
18
-
19
- ## 赞助商
20
-
21
- <table>
22
- <tr>
23
- <td width="190" align="center">
24
- <a href="https://kunrouai.com/?utm_source=chatgpt2api"><img src="assets/kunrouai.svg" width="163" alt="坤肉AI"></a>
25
- </td>
26
- <td>
27
- <a href="https://kunrouai.com/?utm_source=chatgpt2api">坤肉AI</a> 是一站式 AI 视觉创作平台,集 AI 生图、视频生成、多人协作画布及 Agent/MCP 连接于一体,适合个人创作与团队协作,同时面向企业提供源码出售及私有化部署服务,欢迎企业咨询合作!另有 <a href="https://api.kunrouai.com/?utm_source=chatgpt2api">API 开放平台</a>,提供丰富的 AI 模型 API 接口,支持快速接入与集成,欢迎开发者及企业对接合作!
28
- </td>
29
- </tr>
30
- <tr>
31
- <td width="190" align="center">
32
- <a href="https://www.ipwo.net/?ref=githubbasketikunchatgpt2api"><img src="assets/ipwo.png" width="163" alt="IPWO"></a>
33
- </td>
34
- <td>
35
- <a href="https://www.ipwo.net/?ref=githubbasketikunchatgpt2api">IPWO</a> 住宅代理提供动态、静态及不限量住宅代理,覆盖 195+ 个国家和地区,支持 HTTP(S) 与 SOCKS5 协议。<br>对于使用 ChatGPT2API 进行 AI 图片生成、图片编辑和 API 集成的开发者,IPWO 支持免费测试,支持地区选择与网络连接配置,满足多种开发和测试需求。优惠折扣码:<b>0200</b>。
36
- </td>
37
- </tr>
38
- <tr>
39
- <td width="190" align="center">
40
- <a href="https://www.atlascloud.ai/zh?utm_source=github&utm_medium=link&utm_campaign=chatgpt2api"><img src="assets/atlascloud.svg" width="163" alt="Atlas Cloud"></a>
41
- </td>
42
- <td>
43
- <a href="https://www.atlascloud.ai/zh?utm_source=github&utm_medium=link&utm_campaign=chatgpt2api">Atlas Cloud</a> is a full-modal AI inference platform that gives developers a single AI API to access video generation, image generation, and LLM APIs. Instead of managing multiple vendor integrations, you connect once and get unified access to 300+ curated models across all modalities. Check out <a href="https://www.atlascloud.ai/console/coding-plan">Atlas Cloud's new coding plan promotion</a> for more budget-friendly API access.
44
- </td>
45
- </tr>
46
- </table>
47
-
48
- ## 快速开始
49
-
50
- ### Docker 运行
51
-
52
- ```bash
53
- git clone git@github.com:basketikun/chatgpt2api.git
54
- cd chatgpt2api
55
- docker compose up -d
56
- ```
57
-
58
- 启动前请先在 `config.json` 中设置 `auth-key`,也可以在 `docker-compose.yml` 中通过 `CHATGPT2API_AUTH_KEY` 覆盖。
59
-
60
- - Web 面板:`http://localhost:3000`
61
- - API 地址:`http://localhost:3000/v1`
62
- - 数据目录:`./data`
63
-
64
- ### WARP / FlareSolverr 稳定代理部署
65
-
66
- 如果图片链路经常遇到 Cloudflare 拦截,可以启用附带的 WARP + Privoxy + FlareSolverr 方案:
67
-
68
- ```bash
69
- cp .env.example .env
70
- docker compose -f docker-compose.warp.yml up -d --build
71
- ```
72
-
73
- 该 compose 会启动:
74
-
75
- - `warp-proxy`:提供 WARP SOCKS5 出口。
76
- - `privoxy`:把 WARP SOCKS5 转成 HTTP 代理。
77
- - `flaresolverr`:刷新 Cloudflare clearance。
78
- - `init-config`:幂等写入 `proxy_runtime` 默认配置。
79
- - `app`:启动 ChatGPT2API 主服务。
80
-
81
- 默认只让上游 OpenAI / ChatGPT 请求走稳定代理,账号邮箱、CPA 等辅助链路不会被强制接管。账号自身配置的代理优先级最高,其次是稳定代理运行时,再其次是显式代理和旧版全局代理。
82
-
83
- 可在 `.env` 中调整端口和代理运行时参数,也可在后台设置页的「稳定代理运行时」面板手动保存、测试代理和测试 clearance。
84
-
85
- ### 本地开发
86
-
87
- 启动后端:
88
-
89
- ```bash
90
- git clone git@github.com:basketikun/chatgpt2api.git
91
- cd chatgpt2api
92
- uv sync
93
- uv run main.py
94
- ```
95
-
96
- 启动前端:
97
-
98
- ```bash
99
- cd chatgpt2api/web
100
- bun install
101
- bun run dev
102
- ```
103
-
104
- 后续更新新版本:
105
-
106
- ```bash
107
- docker pull ghcr.io/basketikun/chatgpt2api:latest
108
- docker-compose down
109
- docker-compose up -d
110
-
111
- ```
112
-
113
- ### 存储后端配置
114
-
115
- 支持通过环境变量 `STORAGE_BACKEND` 切换存储方式:
116
-
117
- - `json` - 本地 JSON 文件(默认)
118
- - `sqlite` - 本地 SQLite 数据库
119
- - `postgres` - 外部 PostgreSQL(需配置 `DATABASE_URL`)
120
- - `git` - Git 私有仓库(需配置 `GIT_REPO_URL` 和 `GIT_TOKEN`)
121
-
122
- 示例:使用 PostgreSQL
123
-
124
- ```yaml
125
- environment:
126
- - STORAGE_BACKEND=postgres
127
- - DATABASE_URL=postgresql://user:password@host:5432/dbname
128
- ```
129
-
130
- ## 功能
131
-
132
- ### API 兼容能力
133
-
134
- - 兼容 `POST /v1/images/generations` 图片生成接口
135
- - 兼容 `POST /v1/images/edits` 图片编辑接口
136
- - 兼容面向图片场景的 `POST /v1/chat/completions`
137
- - 兼容面向图片场景的 `POST /v1/responses`
138
- - `GET /v1/models` 返回 `gpt-image-2`、`codex-gpt-image-2`、`auto`、`gpt-5`、`gpt-5-1`、`gpt-5-2`、`gpt-5-3`、`gpt-5-3-mini`、
139
- `gpt-5-mini`
140
- - 支持通过 `n` 返回多张生成结果
141
- - 支持生成可编辑 PPT 文件
142
- - 支持生成可编辑 PSD 文件
143
- - 支持 Codex 中的画图接口逆向,仅 `Plus` / `Team` / `Pro` 订阅可用,模型别名为 `codex-gpt-image-2`,如有需要可自行在其他场景映射回
144
- `gpt-image-2`,用于和官网画图区分;也就意味着同一账号会同时有官网和 Codex 两份生图额度
145
-
146
- ### 在线画图功能
147
-
148
- - 内置在线画图工作台,支持生成、图片编辑与多图组图编辑
149
- - 支持 `gpt-image-2`、`codex-gpt-image-2`、`auto`、`gpt-5`、`gpt-5-1`、`gpt-5-2`、`gpt-5-3`、`gpt-5-3-mini`、`gpt-5-mini` 模型选择
150
- - 编辑模式支持参考图上传
151
- - 前端支持多图生成交互
152
- - 本地保存图片会话历史,支持回看、删除和清空
153
- - 支持服务端缓存图片URL
154
- - 图片生成进度追踪,超时后可继续等待
155
- - 图片懒加载与滚动位置记忆,优化大量图片场景性能
156
-
157
- ### 号池管理功能
158
-
159
- - 自动刷新账号邮箱、类型、额度和恢复时间(异步进度追踪)
160
- - 轮询可用账号执行图片生成与图片编辑
161
- - 遇到 Token 失效类错误时自动剔除无效 Token
162
- - 定时检查限流账号并自动刷新
163
- - 支持密码重新登录恢复异常账号,刷新后可自动重登
164
- - 支持网页端配置全局 HTTP / HTTPS / SOCKS5 / SOCKS5H 代理
165
- - 支持 WARP / FlareSolverr 稳定代理运行时
166
- - 支持搜索、筛选、批量刷新、导出、手动编辑和清理账号
167
- - 支持四种导入方式:本地 CPA JSON 文件导入、远程 CPA 服务器导入、`sub2api` 服务器导入、`access_token` 导入
168
- - 支持在设置页配置 `sub2api` 服务器,筛选并批量导入其中的 OpenAI OAuth 账号
169
-
170
- ### 实验性 / 规划中
171
-
172
- - 详细状态说明见:[功能清单](./docs/feature-status.en.md)
173
-
174
- ## 效果展示
175
-
176
- <table width="100%">
177
- <tr>
178
- <td width="50%"><img src="https://i.ibb.co/Jj8nfwwP/image.png" alt="image" border="0"></td>
179
- <td width="50%"><img src="https://i.ibb.co/pqf235v/image-edit.png" alt="image edit" border="0"></td>
180
- </tr>
181
- <tr>
182
- <td width="50%"><img src="https://i.ibb.co/tPcqtVfd/chery-studio.png" alt="chery studio" border="0"></td>
183
- <td width="50%"><img src="https://i.ibb.co/PsT9YHBV/account-pool.png" alt="account pool" border="0"></td>
184
- </tr>
185
- <tr>
186
- <td width="50%"><img src="https://i.ibb.co/rRWLG08q/new-api.png" alt="new api" border="0"></td>
187
- </tr>
188
- </table>
189
-
190
- ## API
191
-
192
- 所有 AI 接口都需要请求头:
193
-
194
- ```http
195
- Authorization: Bearer <auth-key>
196
- ```
197
-
198
- <details>
199
- <summary><code>GET /v1/models</code></summary>
200
- <br>
201
-
202
- 返回当前暴露的图片模型列表。
203
-
204
- ```bash
205
- curl http://localhost:8000/v1/models \
206
- -H "Authorization: Bearer <auth-key>"
207
- ```
208
-
209
- <details>
210
- <summary>说明</summary>
211
- <br>
212
-
213
- | 字段 | 说明 |
214
- |:-----|:-----------------------------------------------------------------------------------------------------------|
215
- | 返回模型 | `gpt-image-2`、`codex-gpt-image-2`、`auto`、`gpt-5`、`gpt-5-1`、`gpt-5-2`、`gpt-5-3`、`gpt-5-3-mini`、`gpt-5-mini` |
216
- | 接入场景 | 可接入 Cherry Studio、New API 等上游或客户端 |
217
-
218
- <br>
219
- </details>
220
- </details>
221
-
222
- <details>
223
- <summary><code>POST /v1/images/generations</code></summary>
224
- <br>
225
-
226
- OpenAI 兼容图片生成接口,用于文生图。
227
-
228
- ```bash
229
- curl http://localhost:8000/v1/images/generations \
230
- -H "Content-Type: application/json" \
231
- -H "Authorization: Bearer <auth-key>" \
232
- -d '{
233
- "model": "gpt-image-2",
234
- "prompt": "一只漂浮在太空里的猫",
235
- "n": 1,
236
- "response_format": "b64_json"
237
- }'
238
- ```
239
-
240
- <details>
241
- <summary>字段说明</summary>
242
- <br>
243
-
244
- | 字段 | 说明 |
245
- |:------------------|:---------------------------------------------------|
246
- | `model` | 图片模型,当前可用值以 `/v1/models` 返回结果为准,推荐使用 `gpt-image-2` |
247
- | `prompt` | 图片生成提示词 |
248
- | `n` | 生成数量,当前后端限制为 `1-4` |
249
- | `response_format` | 当前请求模型中包含该字段,默认值为 `b64_json` |
250
-
251
- <br>
252
- </details>
253
- </details>
254
-
255
- <details>
256
- <summary><code>POST /v1/images/edits</code></summary>
257
- <br>
258
-
259
- OpenAI 兼容图片编辑接口,可上传图片文件,也可按官方 JSON 格式传入图片链接并生成编辑结果。
260
-
261
- ```bash
262
- curl http://localhost:8000/v1/images/edits \
263
- -H "Authorization: Bearer <auth-key>" \
264
- -F "model=gpt-image-2" \
265
- -F "prompt=把这张图改成赛博朋克夜景风格" \
266
- -F "n=1" \
267
- -F "image=@./input.png"
268
- ```
269
-
270
- 也可以直接传图片 URL:
271
-
272
- ```bash
273
- curl http://localhost:8000/v1/images/edits \
274
- -H "Authorization: Bearer <auth-key>" \
275
- -H "Content-Type: application/json" \
276
- -d '{
277
- "model": "gpt-image-2",
278
- "prompt": "把这张图改成赛博朋克夜景风格",
279
- "images": [
280
- {"image_url": "https://example.com/input.png"}
281
- ]
282
- }'
283
- ```
284
-
285
- <details>
286
- <summary>字段说明</summary>
287
- <br>
288
-
289
- | 字段 | 说明 |
290
- |:------------|:----------------------------------------------|
291
- | `model` | 图片模型, `gpt-image-2` |
292
- | `prompt` | 图片编辑提示词 |
293
- | `n` | 生成数量,当前后端限制为 `1-4` |
294
- | `image` | 需要编辑的图片文件,使用 multipart/form-data 上传 |
295
- | `images` | JSON 图片引用数组,支持 `{"image_url": "https://..."}` |
296
- | `image_url` | 表单模式下也可直接传图片链接,支持重复字段传多张图 |
297
-
298
- <br>
299
- </details>
300
- </details>
301
-
302
- <details>
303
- <summary><code>POST /v1/chat/completions</code></summary>
304
- <br>
305
-
306
- 面向文本、网页搜索与图片场景的 Chat Completions 兼容接口,不是完整通用聊天代理。
307
-
308
- ```bash
309
- curl http://localhost:8000/v1/chat/completions \
310
- -H "Content-Type: application/json" \
311
- -H "Authorization: Bearer <auth-key>" \
312
- -d '{
313
- "model": "gpt-image-2",
314
- "messages": [
315
- {
316
- "role": "user",
317
- "content": "生成一张雨夜东京街头的赛博朋克猫"
318
- }
319
- ],
320
- "n": 1
321
- }'
322
- ```
323
-
324
- <details>
325
- <summary>字段说明</summary>
326
- <br>
327
-
328
- | 字段 | 说明 |
329
- |:---------------------|:-----------------------------------------------------------------------------|
330
- | `model` | 文本、搜索或图片模型;搜索模型会触发网页搜索兼容逻辑 |
331
- | `messages` | 消息数组,支持文本、搜索和图片请求内容 |
332
- | `n` | 图片生成数量,按当前实现解析为图片数量 |
333
- | `stream` | 文本、搜索和图片场景均支持,仍在测试 |
334
- | `tools` | 文本场景支持 `web_search` / `web_search_preview` / `web_search_preview_2025_03_11` |
335
- | `web_search_options` | 传入时会触发网页搜索兼容逻辑 |
336
-
337
- <br>
338
- </details>
339
- </details>
340
-
341
- <details>
342
- <summary><code>POST /v1/responses</code></summary>
343
- <br>
344
-
345
- 面向文本、网页搜索和图片生成工具调用的 Responses API 兼容接口,不是完整通用 Responses API 代理。
346
-
347
- ```bash
348
- curl http://localhost:8000/v1/responses \
349
- -H "Content-Type: application/json" \
350
- -H "Authorization: Bearer <auth-key>" \
351
- -d '{
352
- "model": "gpt-5",
353
- "input": "生成一张未来感城市天际线图片",
354
- "tools": [
355
- {
356
- "type": "image_generation"
357
- }
358
- ]
359
- }'
360
- ```
361
-
362
- <details>
363
- <summary>字段说明</summary>
364
- <br>
365
-
366
- | 字段 | 说明 |
367
- |:---------|:----------------------------------------------------------------------------------------|
368
- | `model` | 响应中会回显该模型字段,搜索和图片生成会走对应兼容逻辑 |
369
- | `input` | 输入内容;搜索使用最后一条用户文本,图片生成需能解析出提示词 |
370
- | `tools` | 支持 `image_generation`、`web_search`、`web_search_preview`、`web_search_preview_2025_03_11` |
371
- | `stream` | 已实现,但仍在测试 |
372
-
373
- <br>
374
- </details>
375
- </details>
376
-
377
- ## 社区支持
378
-
379
- 学 AI , 上 L 站:[LinuxDO](https://linux.do)
380
-
381
- ## Contributors
382
-
383
- 感谢所有为本项目做出贡献的开发者:
384
-
385
- <a href="https://github.com/basketikun/chatgpt2api/graphs/contributors">
386
- <img alt="Contributors" src="https://contrib.rocks/image?repo=basketikun/chatgpt2api" />
387
- </a>
388
-
389
- ## Star History
390
-
391
- [![Star History Chart](https://api.star-history.com/chart?repos=basketikun/chatgpt2api&type=date&legend=top-left)](https://www.star-history.com/?repos=basketikun%2Fchatgpt2api&type=date&legend=top-left)
1
+ <h1 align="center">ChatGPT2API</h1>
2
+
3
+
4
+ <p align="center">ChatGPT2API 主要是对 ChatGPT 官网相关能力进行逆向整理与封装,提供面向 ChatGPT 图片生成、图片编辑、多图组图编辑场景的 OpenAI 兼容图片 API / 代理,并集成在线画图、号池管理、多种账号导入方式与 Docker 自托管部署能力。</p>
5
+
6
+ > [!WARNING]
7
+ > 免责声明:
8
+ >
9
+ > 本项目涉及对 ChatGPT 官网文本生成、图片生成与图片编辑等相关接口的逆向研究,仅供个人学习、技术研究与非商业性技术交流使用。
10
+ >
11
+ > - 严禁将本项目用于任何商业用途、盈利性使用、批量操作、自动化滥用或规模化调用。
12
+ > - 严禁将本项目用于破坏市场秩序、恶意竞争、套利倒卖、二次售卖相关服务,以及任何违反 OpenAI 服务条款或当地法律法规的行为。
13
+ > - 严禁将本项目用于生成、传播或协助生成违法、暴力、色情、未成年人相关内容,或用于诈骗、欺诈、骚扰等非法或不当用途。
14
+ > - 使用者应自行承担全部风险,包括但不限于账号被限制、临时封禁或永久封禁以及因违规使用等所导致的法律责任。
15
+ > - 使用本项目即视为你已充分理解并同意本免责声明全部内容;如因滥用、违规或违法使用造成任何后果,均由使用者自行承担。
16
+ > - 本项目基于对 ChatGPT 官网相关能力的逆向研究实现,存在账号受限、临时封禁或永久封禁的风险。请勿使用你自己的重要账号、常用账号或高价值账号进行测试。
17
+
18
+
19
+ ## 赞助商
20
+
21
+ <table>
22
+ <tr>
23
+ <td width="190" align="center">
24
+ <a href="https://kunrouai.com/?utm_source=chatgpt2api"><img src="assets/kunrouai.svg" width="163" alt="坤肉AI"></a>
25
+ </td>
26
+ <td>
27
+ <a href="https://kunrouai.com/?utm_source=chatgpt2api">坤肉AI</a> 是一站式 AI 视觉创作平台,集 AI 生图、视频生成、多人协作画布及 Agent/MCP 连接于一体,适合个人创作与团队协作,同时面向企业提供源码出售及私有化部署服务,欢迎企业咨询合作!另有 <a href="https://api.kunrouai.com/?utm_source=chatgpt2api">API 开放平台</a>,提供丰富的 AI 模型 API 接口,支持快速接入与集成,欢迎开发者及企业对接合作!
28
+ </td>
29
+ </tr>
30
+ <tr>
31
+ <td width="190" align="center">
32
+ <a href="https://www.ipwo.net/?ref=githubbasketikunchatgpt2api"><img src="assets/ipwo.png" width="163" alt="IPWO"></a>
33
+ </td>
34
+ <td>
35
+ <a href="https://www.ipwo.net/?ref=githubbasketikunchatgpt2api">IPWO</a> 住宅代理提供动态、静态及不限量住宅代理,覆盖 195+ 个国家和地区,支持 HTTP(S) 与 SOCKS5 协议。<br>对于使用 ChatGPT2API 进行 AI 图片生成、图片编辑和 API 集成的开发者,IPWO 支持免费测试,支持地区选择与网络连接配置,满足多种开发和测试需求。优惠折扣码:<b>0200</b>。
36
+ </td>
37
+ </tr>
38
+ <tr>
39
+ <td width="190" align="center">
40
+ <a href="https://www.atlascloud.ai/zh?utm_source=github&utm_medium=link&utm_campaign=chatgpt2api"><img src="assets/atlascloud.svg" width="163" alt="Atlas Cloud"></a>
41
+ </td>
42
+ <td>
43
+ <a href="https://www.atlascloud.ai/zh?utm_source=github&utm_medium=link&utm_campaign=chatgpt2api">Atlas Cloud</a> is a full-modal AI inference platform that gives developers a single AI API to access video generation, image generation, and LLM APIs. Instead of managing multiple vendor integrations, you connect once and get unified access to 300+ curated models across all modalities. Check out <a href="https://www.atlascloud.ai/console/coding-plan">Atlas Cloud's new coding plan promotion</a> for more budget-friendly API access.
44
+ </td>
45
+ </tr>
46
+ </table>
47
+
48
+ ## 快速开始
49
+
50
+ ### Docker 运行
51
+
52
+ ```bash
53
+ git clone git@github.com:basketikun/chatgpt2api.git
54
+ cd chatgpt2api
55
+ docker compose up -d
56
+ ```
57
+
58
+ 启动前请先在 `config.json` 中设置 `auth-key`,也可以在 `docker-compose.yml` 中通过 `CHATGPT2API_AUTH_KEY` 覆盖。
59
+
60
+ - Web 面板:`http://localhost:3000`
61
+ - API 地址:`http://localhost:3000/v1`
62
+ - 数据目录:`./data`
63
+
64
+ ### WARP / FlareSolverr 稳定代理部署
65
+
66
+ 如果图片链路经常遇到 Cloudflare 拦截,可以启用附带的 WARP + Privoxy + FlareSolverr 方案:
67
+
68
+ ```bash
69
+ cp .env.example .env
70
+ docker compose -f docker-compose.warp.yml up -d --build
71
+ ```
72
+
73
+ 该 compose 会启动:
74
+
75
+ - `warp-proxy`:提供 WARP SOCKS5 出口。
76
+ - `privoxy`:把 WARP SOCKS5 转成 HTTP 代理。
77
+ - `flaresolverr`:刷新 Cloudflare clearance。
78
+ - `init-config`:幂等写入 `proxy_runtime` 默认配置。
79
+ - `app`:启动 ChatGPT2API 主服务。
80
+
81
+ 默认只让上游 OpenAI / ChatGPT 请求走稳定代理,账号邮箱、CPA 等辅助链路不会被强制接管。账号自身配置的代理优先级最高,其次是稳定代理运行时,再其次是显式代理和旧版全局代理。
82
+
83
+ 可在 `.env` 中调整端口和代理运行时参数,也可在后台设置页的「稳定代理运行时」面板手动保存、测试代理和测试 clearance。
84
+
85
+ ### 本地开发
86
+
87
+ 启动后端:
88
+
89
+ ```bash
90
+ git clone git@github.com:basketikun/chatgpt2api.git
91
+ cd chatgpt2api
92
+ uv sync
93
+ uv run main.py
94
+ ```
95
+
96
+ 启动前端:
97
+
98
+ ```bash
99
+ cd chatgpt2api/web
100
+ bun install
101
+ bun run dev
102
+ ```
103
+
104
+ 后续更新新版本:
105
+
106
+ ```bash
107
+ docker pull ghcr.io/basketikun/chatgpt2api:latest
108
+ docker-compose down
109
+ docker-compose up -d
110
+
111
+ ```
112
+
113
+ ### 存储后端配置
114
+
115
+ 支持通过环境变量 `STORAGE_BACKEND` 切换存储方式:
116
+
117
+ - `json` - 本地 JSON 文件(默认)
118
+ - `sqlite` - 本地 SQLite 数据库
119
+ - `postgres` - 外部 PostgreSQL(需配置 `DATABASE_URL`)
120
+ - `git` - Git 私有仓库(需配置 `GIT_REPO_URL` 和 `GIT_TOKEN`)
121
+
122
+ 示例:使用 PostgreSQL
123
+
124
+ ```yaml
125
+ environment:
126
+ - STORAGE_BACKEND=postgres
127
+ - DATABASE_URL=postgresql://user:password@host:5432/dbname
128
+ ```
129
+
130
+ ## 功能
131
+
132
+ ### API 兼容能力
133
+
134
+ - 兼容 `POST /v1/images/generations` 图片生成接口
135
+ - 兼容 `POST /v1/images/edits` 图片编辑接口
136
+ - 兼容面向图片场景的 `POST /v1/chat/completions`
137
+ - 兼容面向图片场景的 `POST /v1/responses`
138
+ - `GET /v1/models` 返回 `gpt-image-2`、`codex-gpt-image-2`、`auto`、`gpt-5`、`gpt-5-1`、`gpt-5-2`、`gpt-5-3`、`gpt-5-3-mini`、
139
+ `gpt-5-mini`
140
+ - 支持通过 `n` 返回多张生成结果
141
+ - 支持生成可编辑 PPT 文件
142
+ - 支持生成可编辑 PSD 文件
143
+ - 支持 Codex 中的画图接口逆向,仅 `Plus` / `Team` / `Pro` 订阅可用,模型别名为 `codex-gpt-image-2`,如有需要可自行在其他场景映射回
144
+ `gpt-image-2`,用于和官网画图区分;也就意味着同一账号会同时有官网和 Codex 两份生图额度
145
+
146
+ ### 在线画图功能
147
+
148
+ - 内置在线画图工作台,支持生成、图片编辑与多图组图编辑
149
+ - 支持 `gpt-image-2`、`codex-gpt-image-2`、`auto`、`gpt-5`、`gpt-5-1`、`gpt-5-2`、`gpt-5-3`、`gpt-5-3-mini`、`gpt-5-mini` 模型选择
150
+ - 编辑模式支持参考图上传
151
+ - 前端支持多图生成交互
152
+ - 本地保存图片会话历史,支持回看、删除和清空
153
+ - 支持服务端缓存图片URL
154
+ - 图片生成进度追踪,超时后可继续等待
155
+ - 图片懒加载与滚动位置记忆,优化大量图片场景性能
156
+
157
+ ### 号池管理功能
158
+
159
+ - 自动刷新账号邮箱、类型、额度和恢复时间(异步进度追踪)
160
+ - 轮询可用账号执行图片生成与图片编辑
161
+ - 遇到 Token 失效类错误时自动剔除无效 Token
162
+ - 定时检查限流账号并自动刷新
163
+ - 支持密码重新登录恢复异常账号,刷新后可自动重登
164
+ - 支持网页端配置全局 HTTP / HTTPS / SOCKS5 / SOCKS5H 代理
165
+ - 支持 WARP / FlareSolverr 稳定代理运行时
166
+ - 支持搜索、筛选、批量刷新、导出、手动编辑和清理账号
167
+ - 支持四种导入方式:本地 CPA JSON 文件导入、远程 CPA 服务器导入、`sub2api` 服务器导入、`access_token` 导入
168
+ - 支持在设置页配置 `sub2api` 服务器,筛选并批量导入其中的 OpenAI OAuth 账号
169
+
170
+ ### 实验性 / 规划中
171
+
172
+ - 详细状态说明见:[功能清单](./docs/feature-status.en.md)
173
+
174
+ ## 效果展示
175
+
176
+ <table width="100%">
177
+ <tr>
178
+ <td width="50%"><img src="https://i.ibb.co/Jj8nfwwP/image.png" alt="image" border="0"></td>
179
+ <td width="50%"><img src="https://i.ibb.co/pqf235v/image-edit.png" alt="image edit" border="0"></td>
180
+ </tr>
181
+ <tr>
182
+ <td width="50%"><img src="https://i.ibb.co/tPcqtVfd/chery-studio.png" alt="chery studio" border="0"></td>
183
+ <td width="50%"><img src="https://i.ibb.co/PsT9YHBV/account-pool.png" alt="account pool" border="0"></td>
184
+ </tr>
185
+ <tr>
186
+ <td width="50%"><img src="https://i.ibb.co/rRWLG08q/new-api.png" alt="new api" border="0"></td>
187
+ </tr>
188
+ </table>
189
+
190
+ ## API
191
+
192
+ 所有 AI 接口都需要请求头:
193
+
194
+ ```http
195
+ Authorization: Bearer <auth-key>
196
+ ```
197
+
198
+ <details>
199
+ <summary><code>GET /v1/models</code></summary>
200
+ <br>
201
+
202
+ 返回当前暴露的图片模型列表。
203
+
204
+ ```bash
205
+ curl http://localhost:8000/v1/models \
206
+ -H "Authorization: Bearer <auth-key>"
207
+ ```
208
+
209
+ <details>
210
+ <summary>说明</summary>
211
+ <br>
212
+
213
+ | 字段 | 说明 |
214
+ |:-----|:-----------------------------------------------------------------------------------------------------------|
215
+ | 返回模型 | `gpt-image-2`、`codex-gpt-image-2`、`auto`、`gpt-5`、`gpt-5-1`、`gpt-5-2`、`gpt-5-3`、`gpt-5-3-mini`、`gpt-5-mini` |
216
+ | 接入场景 | 可接入 Cherry Studio、New API 等上游或客户端 |
217
+
218
+ <br>
219
+ </details>
220
+ </details>
221
+
222
+ <details>
223
+ <summary><code>POST /v1/images/generations</code></summary>
224
+ <br>
225
+
226
+ OpenAI 兼容图片生成接口,用于文生图。
227
+
228
+ ```bash
229
+ curl http://localhost:8000/v1/images/generations \
230
+ -H "Content-Type: application/json" \
231
+ -H "Authorization: Bearer <auth-key>" \
232
+ -d '{
233
+ "model": "gpt-image-2",
234
+ "prompt": "一只漂浮在太空里的猫",
235
+ "n": 1,
236
+ "response_format": "b64_json"
237
+ }'
238
+ ```
239
+
240
+ <details>
241
+ <summary>字段说明</summary>
242
+ <br>
243
+
244
+ | 字段 | 说明 |
245
+ |:------------------|:---------------------------------------------------|
246
+ | `model` | 图片模型,当前可用值以 `/v1/models` 返回结果为准,推荐使用 `gpt-image-2` |
247
+ | `prompt` | 图片生成提示词 |
248
+ | `n` | 生成数量,当前后端限制为 `1-4` |
249
+ | `response_format` | 当前请求模型中包含该字段,默认值为 `b64_json` |
250
+
251
+ <br>
252
+ </details>
253
+ </details>
254
+
255
+ <details>
256
+ <summary><code>POST /v1/images/edits</code></summary>
257
+ <br>
258
+
259
+ OpenAI 兼容图片编辑接口,可上传图片文件,也可按官方 JSON 格式传入图片链接并生成编辑结果。
260
+
261
+ ```bash
262
+ curl http://localhost:8000/v1/images/edits \
263
+ -H "Authorization: Bearer <auth-key>" \
264
+ -F "model=gpt-image-2" \
265
+ -F "prompt=把这张图改成赛博朋克夜景风格" \
266
+ -F "n=1" \
267
+ -F "image=@./input.png"
268
+ ```
269
+
270
+ 也可以直接传图片 URL:
271
+
272
+ ```bash
273
+ curl http://localhost:8000/v1/images/edits \
274
+ -H "Authorization: Bearer <auth-key>" \
275
+ -H "Content-Type: application/json" \
276
+ -d '{
277
+ "model": "gpt-image-2",
278
+ "prompt": "把这张图改成赛博朋克夜景风格",
279
+ "images": [
280
+ {"image_url": "https://example.com/input.png"}
281
+ ]
282
+ }'
283
+ ```
284
+
285
+ <details>
286
+ <summary>字段说明</summary>
287
+ <br>
288
+
289
+ | 字段 | 说明 |
290
+ |:------------|:----------------------------------------------|
291
+ | `model` | 图片模型, `gpt-image-2` |
292
+ | `prompt` | 图片编辑提示词 |
293
+ | `n` | 生成数量,当前后端限制为 `1-4` |
294
+ | `image` | 需要编辑的图片文件,使用 multipart/form-data 上传 |
295
+ | `images` | JSON 图片引用数组,支持 `{"image_url": "https://..."}` |
296
+ | `image_url` | 表单模式下也可直接传图片链接,支持重复字段传多张图 |
297
+
298
+ <br>
299
+ </details>
300
+ </details>
301
+
302
+ <details>
303
+ <summary><code>POST /v1/chat/completions</code></summary>
304
+ <br>
305
+
306
+ 面向文本、网页搜索与图片场景的 Chat Completions 兼容接口,不是完整通用聊天代理。
307
+
308
+ ```bash
309
+ curl http://localhost:8000/v1/chat/completions \
310
+ -H "Content-Type: application/json" \
311
+ -H "Authorization: Bearer <auth-key>" \
312
+ -d '{
313
+ "model": "gpt-image-2",
314
+ "messages": [
315
+ {
316
+ "role": "user",
317
+ "content": "生成一张雨夜东京街头的赛博朋克猫"
318
+ }
319
+ ],
320
+ "n": 1
321
+ }'
322
+ ```
323
+
324
+ <details>
325
+ <summary>字段说明</summary>
326
+ <br>
327
+
328
+ | 字段 | 说明 |
329
+ |:---------------------|:-----------------------------------------------------------------------------|
330
+ | `model` | 文本、搜索或图片模型;搜索模型会触发网页搜索兼容逻辑 |
331
+ | `messages` | 消息数组,支持文本、搜索和图片请求内容 |
332
+ | `n` | 图片生成数量,按当前实现解析为图片数量 |
333
+ | `stream` | 文本、搜索和图片场景均支持,仍在测试 |
334
+ | `tools` | 文本场景支持 `web_search` / `web_search_preview` / `web_search_preview_2025_03_11` |
335
+ | `web_search_options` | 传入时会触发网页搜索兼容逻辑 |
336
+
337
+ <br>
338
+ </details>
339
+ </details>
340
+
341
+ <details>
342
+ <summary><code>POST /v1/responses</code></summary>
343
+ <br>
344
+
345
+ 面向文本、网页搜索和图片生成工具调用的 Responses API 兼容接口,不是完整通用 Responses API 代理。
346
+
347
+ ```bash
348
+ curl http://localhost:8000/v1/responses \
349
+ -H "Content-Type: application/json" \
350
+ -H "Authorization: Bearer <auth-key>" \
351
+ -d '{
352
+ "model": "gpt-5",
353
+ "input": "生成一张未来感城市天际线图片",
354
+ "tools": [
355
+ {
356
+ "type": "image_generation"
357
+ }
358
+ ]
359
+ }'
360
+ ```
361
+
362
+ <details>
363
+ <summary>字段说明</summary>
364
+ <br>
365
+
366
+ | 字段 | 说明 |
367
+ |:---------|:----------------------------------------------------------------------------------------|
368
+ | `model` | 响应中会回显该模型字段,搜索和图片生成会走对应兼容逻辑 |
369
+ | `input` | 输入内容;搜索使用最后一条用户文本,图片生成需能解析出提示词 |
370
+ | `tools` | 支持 `image_generation`、`web_search`、`web_search_preview`、`web_search_preview_2025_03_11` |
371
+ | `stream` | 已实现,但仍在测试 |
372
+
373
+ <br>
374
+ </details>
375
+ </details>
376
+
377
+ ## 社区支持
378
+
379
+ 学 AI , 上 L 站:[LinuxDO](https://linux.do)
380
+
381
+ ## Contributors
382
+
383
+ 感谢所有为本项目做出贡献的开发者:
384
+
385
+ <a href="https://github.com/basketikun/chatgpt2api/graphs/contributors">
386
+ <img alt="Contributors" src="https://contrib.rocks/image?repo=basketikun/chatgpt2api" />
387
+ </a>
388
+
389
+ ## Star History
390
+
391
+ [![Star History Chart](https://api.star-history.com/chart?repos=basketikun/chatgpt2api&type=date&legend=top-left)](https://www.star-history.com/?repos=basketikun%2Fchatgpt2api&type=date&legend=top-left)