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.10
--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 プロジェクトは monorepo であり、コアパッケージを 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 リリースを作成します。