Qwen Code の実行とデプロイ
このドキュメントでは、Qwen Code の実行方法と、Qwen Code が使用するデプロイアーキテクチャについて説明します。
Qwen Code の実行
Qwen Code を実行するにはいくつかの方法があります。どの方法を選ぶかは、どのように使うかによって異なります。
1. 標準インストール(一般ユーザー向け推奨)
これは、エンドユーザーが Qwen Code をインストールするための推奨方法です。NPM レジストリから Qwen Code パッケージをダウンロードする方法です。
-
グローバルインストール:
npm install -g @qwen-code/qwen-code
その後、どこからでも CLI を実行できます:
qwen
-
NPX による実行:
# グローバルインストールせずに NPM から最新バージョンを実行 npx @qwen-code/qwen-code
2. サンドボックス環境での実行 (Docker/Podman)
セキュリティと分離性を確保するために、Qwen Code はコンテナ内で実行できます。CLI が副作用を伴う可能性のあるツールを実行する際のデフォルトの方法です。
- Registry から直接実行:
公開されているサンドボックスイメージを直接実行できます。Docker のみが利用可能で CLI を実行したい環境に便利です。
# 公開されたサンドボックスイメージを実行 docker run --rm -it ghcr.io/qwenlm/qwen-code:0.0.11
--sandbox
フラグを使用: Qwen Code をローカルにインストール済みの場合(前述の標準インストール手順に従って)、サンドボックスコンテナ内で実行するように指示できます。qwen --sandbox -y -p "your prompt here"
3. ソースコードから実行(Qwen Code コントリビューター向け推奨)
プロジェクトへのコントリビューターは、CLI をソースコードから直接実行することを推奨します。
-
開発モード: この方法ではホットリロードが有効で、開発中に便利です。
# リポジトリのルートから実行 npm run start
-
本番環境に近いモード(リンクされたパッケージ): この方法では、ローカルパッケージをリンクしてグローバルインストールをシミュレートします。本番ワークフローでのローカルビルドのテストに便利です。
# ローカルの cli パッケージをグローバルな node_modules にリンク npm link packages/cli # これで `qwen` コマンドを使ってローカルバージョンを実行できます qwen
4. GitHub から最新の Qwen Code コミットを実行
GitHub リポジトリから最新のコミット済みバージョンの Qwen Code を直接実行できます。開発中の機能をテストするのに便利です。
# GitHubのmainブランチから直接CLIを実行する
npx https://github.com/QwenLM/qwen-code
デプロイアーキテクチャ
上記の実行方法は、以下のアーキテクチャコンポーネントとプロセスによって実現されています:
NPM パッケージ
Qwen Code プロジェクトはモノレポで、コアパッケージを NPM レジストリに公開しています:
@qwen-code/qwen-code-core
: バックエンド。ロジックとツールの実行を担当。@qwen-code/qwen-code
: ユーザー向けフロントエンド。
これらのパッケージは、標準インストール時やソースから Qwen Code を実行する際に使用されます。
ビルドおよびパッケージングプロセス
配布チャネルに応じて、2 種類の異なるビルドプロセスが使用されます:
-
NPM への公開: NPM レジストリに公開する際には、
@qwen-code/qwen-code-core
および@qwen-code/qwen-code
内の TypeScript ソースコードが TypeScript Compiler(tsc
)を使って標準的な JavaScript にトランスパイルされます。生成されたdist/
ディレクトリが NPM パッケージとして公開されます。これは TypeScript ライブラリにおける一般的な手法です。 -
GitHub 経由での
npx
実行: GitHub から最新バージョンの Qwen Code を直接実行する場合、package.json
のprepare
スクリプトによって別のプロセスが起動します。このスクリプトではesbuild
を使ってアプリケーション全体とその依存関係を単一の自己完結型 JavaScript ファイルにバンドルします。このバンドルファイルはユーザーのマシン上でオンザフライで作成され、リポジトリにはコミットされません。
Docker サンドボックスイメージ
Docker ベースの実行方法は、qwen-code-sandbox
コンテナイメージによってサポートされています。このイメージはコンテナレジストリに公開されており、グローバルにインストールされた Qwen Code の事前ビルド版を含んでいます。
リリースプロセス
リリースプロセスは GitHub Actions を通じて自動化されています。リリースワークフローでは以下のアクションが実行されます:
tsc
を使用して NPM パッケージをビルドします。- NPM パッケージをアーティファクトレジストリに公開します。
- バンドルされたアセット付きで GitHub リリースを作成します。