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および Anthropictool_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 バイナリを提供。
導入方法
- 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 - Docker‑Compose – 提供された
docker-compose.ymlを取得し、docker compose up -dを実行。 - ローカルソース – リポジトリをクローンし、Bun でインストール(
bun install --frozen-lockfile)、.env.exampleを.envにコピー、変数を編集後、bun run startを実行。 - スタンドアロンバイナリ –
bun run build:binaryを実行して単一実行可能ファイル(qwen2api‑windows‑x64.exe、qwen2api‑linux‑x64など)を生成。.envファイルを隣接させて直接起動可能。
設定のハイライト
| 変数 | 目的 |
|---|---|
API_KEY |
カンマ区切りの API キーのリスト。最初のキーは 管理者 キー(UI へのアクセス);残りは通常の API 呼び出し用。 |
ACCOUNTS |
email:password 形式の Qwen アカウントリスト。オプションで ` |
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 エンドポイントで利用を開始。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト