Выполнение и развертывание 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.10
- Использование флага
--sandbox
: Если у вас локально установлен Qwen Code (стандартной установкой, описанной выше), вы можете указать ему запускаться внутри контейнера песочницы.qwen --sandbox -y -p "your prompt here"
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 с приложенными бандлами.