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 执行可能产生副作用的工具的默认方式。
- 直接从注册表运行:
你可以直接运行已发布的沙箱镜像。这适用于只有 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 项目是一个 monorepo,它将核心包发布到 NPM 注册表:
@qwen-code/qwen-code-core:后端,处理逻辑和工具执行。@qwen-code/qwen-code:面向用户的前端。
这些包在执行标准安装以及从源码运行 Qwen Code 时使用。
构建和打包流程
根据分发渠道,使用了两种不同的构建流程:
-
NPM 发布: 为了发布到 NPM 注册表,
@qwen-code/qwen-code-core和@qwen-code/qwen-code中的 TypeScript 源代码会使用 TypeScript 编译器 (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 发布版本。