22
33# 🚀 Qwen-Proxy
44
5- [ ![ Version] ( https://img.shields.io/badge/version-2025.12.11 -blue.svg )] ( https://github.com/Rfym21/Qwen2API )
5+ [ ![ Version] ( https://img.shields.io/badge/version-2025.12.14 -blue.svg )] ( https://github.com/Rfym21/Qwen2API )
66[ ![ Node.js] ( https://img.shields.io/badge/Node.js-18+-green.svg )] ( https://nodejs.org/ )
77[ ![ Docker] ( https://img.shields.io/badge/Docker-supported-blue.svg )] ( https://hub.docker.com/r/rfym21/qwen2api )
88
1414
1515### 项目说明
1616
17- Qwen-Proxy 是一个将 ` https://chat.qwen.ai ` 和 ` Qwen Code / Qwen Cli ` 端接口和转换为 OpenAI 兼容 API 的代理服务。通过本项目,您只需要一个账户,即可以使用任何支持 OpenAI API 的客户端(如 ChatGPT-Next-Web、LobeChat 等)来调用 ` https://chat.qwen.ai ` 和 ` Qwen Code / Qwen Cli ` 的各种模型。其中 ` /cli ` 端点下的模型由 ` Qwen Code / Qwen Cli ` 提供,支持256k上下文,原生 tools 参数支持
17+ Qwen-Proxy 是一个将 ` https://chat.qwen.ai ` 和 ` Qwen Code / Qwen Cli ` 转换为 OpenAI 兼容 API 的代理服务。通过本项目,您只需要一个账户,即可以使用任何支持 OpenAI API 的客户端(如 ChatGPT-Next-Web、LobeChat 等)来调用 ` https://chat.qwen.ai ` 和 ` Qwen Code / Qwen Cli ` 的各种模型。其中 ` /cli ` 端点下的模型由 ` Qwen Code / Qwen Cli ` 提供,支持256k上下文,原生 tools 参数支持
1818
1919** 主要特性:**
2020- 兼容 OpenAI API 格式,无缝对接各类客户端
@@ -25,6 +25,29 @@ Qwen-Proxy 是一个将 `https://chat.qwen.ai` 和 `Qwen Code / Qwen Cli`端接
2525- 支持 CLI 端点,提供 256K 上下文和工具调用能力
2626- 提供 Web 管理界面,方便配置和监控
2727
28+ ### ⚠️ 高并发说明
29+
30+ > ** 重要提示** : ` chat.qwen.ai ` 对单 IP 有限速策略,目前已知该限制与 Cookie 无关,仅与 IP 相关。
31+
32+ ** 解决方案:**
33+
34+ 如需高并发使用,建议配合代理池实现 IP 轮换:
35+
36+ | 方案 | 配置方式 | 说明 |
37+ | ------| ----------| ------|
38+ | ** 方案一** | ` PROXY_URL ` + [ ProxyFlow] ( https://github.com/Rfym21/ProxyFlow ) | 直接配置代理地址,所有请求通过代理池轮换 IP |
39+ | ** 方案二** | ` QWEN_CHAT_PROXY_URL ` + [ UrlProxy] ( https://github.com/Rfym21/UrlProxy ) + [ ProxyFlow] ( https://github.com/Rfym21/ProxyFlow ) | 通过反代 + 代理池组合,实现更灵活的 IP 轮换 |
40+
41+ ** 配置示例:**
42+
43+ ``` bash
44+ # 方案一:直接使用代理池
45+ PROXY_URL=http://127.0.0.1:8282 # ProxyFlow 代理地址
46+
47+ # 方案二:反代 + 代理池组合
48+ QWEN_CHAT_PROXY_URL=http://127.0.0.1:8000/qwen # UrlProxy 反代地址(UrlProxy 配置 HTTP_PROXY 指向 ProxyFlow)
49+ ```
50+
2851### 环境要求
2952
3053- Node.js 18+ (源码部署时需要)
@@ -54,6 +77,11 @@ SEARCH_INFO_MODE=table # 搜索信息展示模式 (table/text)
5477OUTPUT_THINK=true # 是否输出思考过程 (true/false)
5578SIMPLE_MODEL_MAP=false # 简化模型映射 (true/false)
5679
80+ # 🌐 代理与反代配置
81+ QWEN_CHAT_PROXY_URL= # 自定义 Chat API 反代URL (默认: https://chat.qwen.ai)
82+ QWEN_CLI_PROXY_URL= # 自定义 CLI API 反代URL (默认: https://portal.qwen.ai)
83+ PROXY_URL= # HTTP/HTTPS/SOCKS5 代理地址 (例如: http://127.0.0.1:7890)
84+
5785# 🗄️ 数据存储
5886DATA_SAVE_MODE=none # 数据保存模式 (none/file/redis)
5987REDIS_URL= # Redis 连接地址 (可选,使用TLS时为rediss://)
@@ -74,6 +102,9 @@ CACHE_MODE=default # 图片缓存模式 (default/file)
74102| ` SEARCH_INFO_MODE ` | 搜索结果展示格式 | ` table ` 或 ` text ` |
75103| ` OUTPUT_THINK ` | 是否显示 AI 思考过程 | ` true ` 或 ` false ` |
76104| ` SIMPLE_MODEL_MAP ` | 简化模型映射,只返回基础模型不包含变体 | ` true ` 或 ` false ` |
105+ | ` QWEN_CHAT_PROXY_URL ` | 自定义 Chat API 反代地址 | ` https://your-proxy.com ` |
106+ | ` QWEN_CLI_PROXY_URL ` | 自定义 CLI API 反代地址 | ` https://your-cli-proxy.com ` |
107+ | ` PROXY_URL ` | 出站请求代理地址,支持 HTTP/HTTPS/SOCKS5 | ` http://127.0.0.1:7890 ` |
77108| ` DATA_SAVE_MODE ` | 数据持久化方式 | ` none ` /` file ` /` redis ` |
78109| ` REDIS_URL ` | Redis 数据库连接地址,使用TLS加密时需使用 ` rediss:// ` 协议 | ` redis://localhost:6379 ` 或 ` rediss://xxx.upstash.io ` |
79110| ` CACHE_MODE ` | 图片缓存存储方式 | ` default ` /` file ` |
@@ -164,7 +195,7 @@ docker run -d \
164195
165196``` bash
166197# 下载配置文件
167- curl -o docker-compose.yml https://raw.githubusercontent.com/Rfym21/Qwen2API/refs/heads/main/docker-compose.yml
198+ curl -o docker-compose.yml https://raw.githubusercontent.com/Rfym21/Qwen2API/refs/heads/main/docker/docker -compose.yml
168199
169200# 启动服务
170201docker compose pull && docker compose up -d
@@ -221,55 +252,63 @@ npm run dev
221252
222253```
223254Qwen2API/
224- ├── Dockerfile
225255├── README.md
226- ├── docker-compose.yml
227- ├── docker-compose-redis.yml
228256├── ecosystem.config.js # PM2配置文件
229257├── package.json
230258│
259+ ├── docker/ # Docker配置目录
260+ │ ├── Dockerfile
261+ │ ├── docker-compose.yml
262+ │ └── docker-compose-redis.yml
263+ │
231264├── caches/ # 缓存文件目录
232265├── data/ # 数据文件目录
233266│ ├── data.json
234267│ └── data_template.json
268+ ├── scripts/ # 脚本目录
269+ │ └── fingerprint-injector.js # 浏览器指纹注入脚本
235270│
236271├── src/ # 后端源代码目录
237272│ ├── server.js # 主服务器文件
238273│ ├── start.js # 智能启动脚本 (自动判断单进程/多进程)
239274│ ├── config/
240275│ │ └── index.js # 配置文件
241276│ ├── controllers/ # 控制器目录
242- │ │ ├── chat.js
277+ │ │ ├── chat.js # 聊天控制器
278+ │ │ ├── chat.image.video.js # 图片/视频生成控制器
243279│ │ ├── cli.chat.js # CLI聊天控制器
244- │ │ └── models.js
280+ │ │ └── models.js # 模型控制器
245281│ ├── middlewares/ # 中间件目录
246- │ │ ├── authorization.js
247- │ │ └── chat-middleware.js
282+ │ │ ├── authorization.js # 授权中间件
283+ │ │ └── chat-middleware.js # 聊天中间件
248284│ ├── models/ # 模型目录
249- │ │ └── models-map.js
285+ │ │ └── models-map.js # 模型映射配置
250286│ ├── routes/ # 路由目录
251- │ │ ├── accounts.js
252- │ │ ├── chat.js
287+ │ │ ├── accounts.js # 账户路由
288+ │ │ ├── chat.js # 聊天路由
253289│ │ ├── cli.chat.js # CLI聊天路由
254- │ │ ├── models.js
255- │ │ ├── settings.js
256- │ │ └── verify.js
290+ │ │ ├── models.js # 模型路由
291+ │ │ ├── settings.js # 设置路由
292+ │ │ └── verify.js # 验证路由
257293│ └── utils/ # 工具函数目录
258- │ ├── account-rotator.js
259- │ ├── account.js
260- │ ├── chat-helpers.js
294+ │ ├── account-rotator.js # 账户轮询器
295+ │ ├── account.js # 账户管理
296+ │ ├── chat-helpers.js # 聊天辅助函数
261297│ ├── cli.manager.js # CLI管理器
262- │ ├── data-persistence.js
263- │ ├── img-caches.js
298+ │ ├── cookie-generator.js # Cookie生成器
299+ │ ├── data-persistence.js # 数据持久化
300+ │ ├── fingerprint.js # 浏览器指纹生成
301+ │ ├── img-caches.js # 图片缓存
264302│ ├── logger.js # 日志工具
265- │ ├── model-utils.js
266303│ ├── precise-tokenizer.js # 精确分词器
267- │ ├── redis.js
268- │ ├── request.js
269- │ ├── setting.js
270- │ ├── token-manager.js
271- │ ├── tools.js
272- │ └── upload.js
304+ │ ├── proxy-helper.js # 代理辅助函数
305+ │ ├── redis.js # Redis连接
306+ │ ├── request.js # HTTP请求封装
307+ │ ├── setting.js # 设置管理
308+ │ ├── ssxmod-manager.js # ssxmod参数管理
309+ │ ├── token-manager.js # Token管理器
310+ │ ├── tools.js # 工具调用处理
311+ │ └── upload.js # 文件上传
273312│
274313└── public/ # 前端项目目录
275314 ├── dist/ # 编译后的前端文件
@@ -408,7 +447,7 @@ Authorization: Bearer sk-your-api-key
408447
409448使用 ` -image ` 模型启用文本到图像生成功能。
410449使用 ` -image-edit ` 模型启用图像修改功能。
411- 当使用`` -image` 时你可以通过在请求体中添加 ` size` 参数或在消息内容中包含特定关键词 ` 1:1` , ` 4:3` , ` 3:4` , ` 16:9` , ` 9:16` 来控制图片尺寸。
450+ 当使用 ` -image ` 模型时你可以通过在请求体中添加 ` size ` 参数或在消息内容中包含特定关键词 ` 1:1 ` , ` 4:3 ` , ` 3:4 ` , ` 16:9 ` , ` 9:16 ` 来控制图片尺寸。
412451
413452``` http
414453POST /v1/chat/completions
0 commit comments