Установка и первый запуск

Установка и первый запуск

При первом запуске вместо чата открывается мастер установки (setup-wizard). Он скачивает и настраивает всё, что нужно приложению, в каталог ~/.levpro-ai/. После завершения мастер показывает окно чата и больше не появляется — до тех пор, пока не обнаружится недостающий компонент.

Краткий чек-лист — см. конец этой страницы.

Когда показывается мастер

Решение принимается при старте приложения:

needsSetup = !setupManager.isReady()
if (needsSetup && LOCAL_AI_DEV === '1') needsSetup = false
→ createWindow(needsSetup)   // setup-wizard или чат

SetupManager.isReady() возвращает true, когда в манифесте записаны установленные Python, ядро и llama-server, путь к модели, и при этом на диске реально существуют venv-Python, config.yaml и файл модели.

При каждом запуске выполняется checkAndUpdate():

  • всё готово → проверка оборудования, синхронизация пакетов ядра, проверка Node, копирование встроенных MCP-серверов и синхронизация каталога, загрузка опционального mmproj, перегенерация config.yaml;
  • не готово → запускается мастер установки.

Этапы установки

Прогресс транслируется в интерфейс как setup:progress ({stage, message, percent}).

# Этап Что происходит
1 hardware Проверка CPU/GPU/RAM.
2 Python Переиспользуется системный интерпретатор ≥ 3.11, иначе скачивается автономная сборка; создаётся venv.
3 Ядро AI Скачивается архив ядра и выполняется pip install -e для ожидаемых пакетов (local-ai-core, local-ai-mcp, …).
4 llama-server Скачивается prebuilt бинарник (Windows zip / Linux tar.gz / macOS tar.gz) плюс CUDA runtime DLL на Windows.
5 Модель Загружается GGUF (+ MTP draft-модель, если она возвращается) в ~/.levpro-ai/models/.
6 MCP Копируются встроенные MCP-серверы, проверяется Node, синхронизируется встроенный каталог (Context7 устанавливается через npm один раз).
7 config Генерируется ~/.levpro-ai/config.yaml (mcp.external_path → mcp.json), автоматически включается файловый сервер.
8 done Мастер спрашивает имя (поле «Как к вам обращаться AI») — сохраняется в app-settings.json как userName, затем приложение переключается в чат и запускает ядро.

llama-server — только prebuilt: не нужны Visual Studio Build Tools, CMake или CUDA Toolkit. Проверка инструментов сборки всё равно выполняется и записывается в ~/.levpro-ai/runtime/toolchain.json.

Модели с HuggingFace резолвятся через API-базу; каждая загрузка фиксируется в ~/.levpro-ai/manifest.json с меткой времени — именно это проверяет isReady().

Обновления при следующих запусках

  • Синхронизация пакетов ядра повторно выполняет pip install -e, чтобы обновлённый исходник ядра попал в venv. Полное перекачивание — LOCAL_AI_FORCE_CORE_UPDATE=1.
  • Node проверяется до синхронизации каталога, потому что npm-устанавливаемые серверы (Context7) нуждаются в нём.
  • Каталог MCP повторно проверяется и восстанавливается в офлайн-режиме при каждом старте.

Переменные окружения

Переменная Эффект
LOCAL_AI_DEV=1 Пропустить мастер; синхронизировать редактируемые пакеты из исходников ядра.
LOCAL_AI_PYTHON Использовать конкретный интерпретатор вместо системного/автономного.
LOCAL_AI_CORE_DIR Путь к пакету ядра для dev-режима.
LOCAL_AI_CONFIG Использовать конкретный конфиг ядра.
LOCAL_AI_FORCE_CORE_UPDATE=1 Принудительно перекачать/установить ядро.
LEVPRO_API_BASE Изменить API-базу (по умолчанию https://api.levpro.ru).

Перенос каталога данных

Каталог данных по умолчанию — ~/.levpro-ai/. Он перемещаемый: выбранный путь хранится в указателе вне дерева данных (в userData Electron), поэтому перенос переживает перезапуски приложения.

Краткий чек-лист

  1. Скачайте установщик на странице Скачать.
  2. Запустите и дождитесь: проба железа → Python + venv → ядро AI → llama-server → модель → MCP → config.yaml.
  3. При следующем запуске выполняется синхронизация пакетов ядра и каталога MCP.
  4. Дождитесь статуса «Готов» в чате и отправьте первое сообщение.

Логи: ~/.levpro-ai/logs/app.log, ~/.levpro-ai/logs/core-stderr.log.

Связанные страницы