Выполнение и развертывание Qwen Code
В этом документе описано, как запускать Qwen Code, и объясняется архитектура развертывания, которую использует Qwen Code.
Запуск Qwen Code
Существует несколько способов запуска Qwen Code. Выбранный вами вариант зависит от того, как вы собираетесь его использовать.
1. Стандартная установка (рекомендуется для обычных пользователей)
Это рекомендуемый способ установки Qwen Code для конечных пользователей. Он включает загрузку пакета Qwen Code из реестра NPM.
-
Глобальная установка:
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 "ваш промт здесь"
3. Запуск из исходного кода (Рекомендуется для контрибьюторов Qwen Code)
Контрибьюторы проекта захотят запускать CLI напрямую из исходного кода.
-
Режим разработки: Этот метод обеспечивает hot-reloading и удобен для активной разработки.
# Из корня репозитория npm run start -
Production-подобный режим (Linked package): Этот метод имитирует глобальную установку путем линковки вашего локального пакета. Полезно для тестирования локальной сборки в production workflow.
# Линкуем локальный cli пакет в глобальный node_modules npm link packages/cli # Теперь вы можете запускать вашу локальную версию с помощью команды `qwen` qwen
4. Запуск последнего коммита Qwen Code из GitHub
Вы можете запустить самую свежую версию Qwen Code напрямую из репозитория на GitHub. Это удобно для тестирования функций, которые еще находятся в разработке.
# Запуск CLI напрямую из основной ветки на GitHub
npx https://github.com/QwenLM/qwen-codeАрхитектура деплоя
Описанные выше методы выполнения становятся возможными благодаря следующим архитектурным компонентам и процессам:
NPM пакеты
Проект Qwen Code представляет собой монорепо, который публикует основные пакеты в реестре NPM:
@qwen-code/qwen-code-core: Бэкенд, обрабатывающий логику и выполнение инструментов.@qwen-code/qwen-code: Фронтенд для взаимодействия с пользователем.
Эти пакеты используются при стандартной установке и при запуске Qwen Code из исходников.
Процессы сборки и упаковки
Используются два различных процесса сборки в зависимости от канала распространения:
-
Публикация в NPM: Для публикации в реестре NPM TypeScript код из
@qwen-code/qwen-code-coreи@qwen-code/qwen-codeтранспилируется в стандартный JavaScript с помощью TypeScript Compiler (tsc). Полученный каталогdist/— это то, что попадает в NPM пакет. Это стандартный подход для TypeScript библиотек. -
Запуск через
npxиз GitHub: При запуске последней версии Qwen Code напрямую из GitHub активируется другой процесс, инициируемый скриптомprepareвpackage.json. Этот скрипт используетesbuild, чтобы собрать всё приложение и его зависимости в один самодостаточный JavaScript файл. Такой бандл создается на лету на машине пользователя и не хранится в репозитории.
Docker образ песочницы
Метод выполнения на основе Docker поддерживается образом контейнера qwen-code-sandbox. Этот образ публикуется в реестре контейнеров и содержит предустановленную глобальную версию Qwen Code.
Процесс релиза
Процесс релиза автоматизирован с помощью GitHub Actions. Workflow релиза выполняет следующие действия:
- Собирает NPM пакеты с использованием
tsc. - Публикует NPM пакеты в реестре артефактов.
- Создает релизы на GitHub с приложенными бандлами.