Rfym21/Qwen2API

让 QwenLM 物尽其用

Qwen‑Proxy (Qwen2API)

是什么 – 一个自托管代理,将阿里云的 Qwen 聊天服务(https://chat.qwen.ai 和 Qwen CLI)转换为 OpenAI 兼容(部分 Anthropic 兼容)的 HTTP API。任何与 OpenAI API 通信的客户端(例如 ChatGPT‑Next‑Web、LobeChat、LangChain、Claude‑Code 等)无需修改代码即可使用 Qwen 模型。

核心功能

  • OpenAI API 表面 – /v1/models、/v1/chat/completions、/v1/images/*、/v1/videos,以及 Anthropic 风格的 /v1/messages 端点。
  • 函数调用 / 工具 – 完全支持 OpenAI tools 和 Anthropic tool_use,包括流式增量 arguments 和严格 tool_choice=required 处理。
  • 多账户轮转 – 可配置多个 Qwen 账户;代理将轮询使用它们(每个账户可有独立的出站代理),以避免基于 IP 的封禁。
  • 账户级出站代理 – 可为单个账户绑定 HTTP、HTTPS、SOCKS5/SOCKS5H 代理。
  • 256 K 上下文 CLI 端点 – /cli 路由暴露 Qwen CLI 模型,支持超大上下文窗口和工具调用。
  • 多模态 – 图像/视频生成、图像编辑、视频理解通过 OpenAI 风格端点提供支持。
  • Web UI – 内置管理仪表板,用于添加账户、设置账户级代理、监控使用情况、编辑模型映射。
  • 持久化选项 – 内存(默认)、JSON 文件或 Redis 存储账户数据、设置和日志。
  • Docker 与二进制分发 – 提供官方 Docker 镜像、Docker‑Compose 文件,以及一个包含运行时、后端、前端和分词器的单文件 Bun 二进制文件。

快速上手

  1. Docker(最快)
    docker run -d \
      -p 3000:3000 \
      -e API_KEY=sk-admin123,sk-user456 \
      -e ACCOUNTS=user1@mail.com:pass1|http://proxy:8080 \
      -e DATA_SAVE_MODE=none \
      -v $(pwd)/caches:/app/caches \
      --name qwen2api rfym21/qwen2api:latest
    
  2. Docker‑Compose – 拉取提供的 docker-compose.yml 并运行 docker compose up -d。
  3. 本地源码 – 克隆仓库,使用 Bun 安装(bun install --frozen-lockfile),复制 .env.example 为 .env,编辑变量,然后运行 bun run start。
  4. 独立二进制文件 – 运行 bun run build:binary 生成单个可执行文件(qwen2api‑windows‑x64.exe、qwen2api‑linux‑x64 等),放置 .env 文件后可直接启动。

配置亮点

变量 用途
API_KEY 逗号分隔的 API 密钥列表。第一个密钥为 管理员 密钥(访问 UI);其余为普通 API 调用密钥。
ACCOUNTS Qwen 账户列表,格式为 email:password,可选后接 `
PROXY_URL 当账户未定义自身代理时使用的全局出站代理。
DATA_SAVE_MODE none(默认)、file 或 redis – 账户数据和设置的持久化位置。
CACHE_MODE default(内存)或 file – 图像缓存文件的存储位置。
QWEN_CHAT_PROXY_URL / QWEN_CLI_PROXY_URL 若运行自己的镜像,可覆盖上游 Qwen 端点。
AGENT_TURN_MAX_ATTEMPTS 在返回错误前工具调用回合的最大重试次数。
MODELS_CACHE_TTL 缓存上游模型列表的秒数(0 = 永不失效)。

典型用法(OpenAI 兼容客户端)

curl -H "Authorization: Bearer sk-admin123" \
     -H "Content-Type: application/json" \
     -d '{"model":"Qwen3.6-Plus","messages":[{"role":"user","content":"你好"}],"stream":false}' \
     http://localhost:3000/v1/chat/completions

响应遵循 OpenAI 模式(id、object、choices、usage)。

为何需要它

  • 在复用现有 OpenAI 工具链的同时,访问 Qwen 强大的多模态和 256 K 上下文模型。
  • 共享单个 Qwen 订阅给多个用户或服务,而无需暴露原始凭证。
  • 通过轮换账户和账户级代理,绕过基于 IP 的速率限制。
  • 本地或容器内运行,确保所有流量在可信网络内。

限制 / 注意事项

  • 代理 不提供 原始 Qwen SDK;仅转发请求并适配响应。
  • 部分 Anthropic 字段仅 部分支持;桥接旨在实现最佳兼容性,而非完整 Anthropic 实现。
  • 持久化存储(文件或 Redis)为可选;若无,则账户令牌仅在内存中保留,重启后丢失。
  • 服务假设为可信环境 – 代理 URL 会在 API 响应中原样返回。

TL;DR – Qwen‑Proxy 是一个基于 Bun 的服务器,让任何 OpenAI 兼容客户端都能与阿里云的 Qwen 模型通信,支持函数调用、多模态生成、账户轮转和 Web UI。通过 Docker、Docker‑Compose 或单个二进制文件部署,配置 Qwen 账户和 API 密钥,即可开始使用熟悉的 OpenAI 端点。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目