Готовим локальный AI-стека для работы без интернета: финал офлайн-развёртывания

Источник

Руководство по сборке локального AI-стека завершается этапом офлайн-развёртывания. Для полноценной работы системе требуется интернет исключительно на стадии сборки. После скачивания всех Python-пакетов в директорию offline_packages/, проект можно перенести на машину без сетевого подключения и запустить из локальной репы. Основная цель этого этапа — создание «снимка» зависимостей и восстановление стека на чистой системе Debian 12, что исключает риски изменения версий пакетов со временем.

Стандартная установка через pip install open-webui требует доступа в сеть и может подтягивать зависимости с новыми версиями, что неприемлемо для изолированных машин. Локальная репа решает проблему фиксации версий благодаря файлу requirements.lock, содержащему точные спецификации (например, transformers==5.5.4, torch==2.11.0+cpu), и позволяет выполнять установку без обращения к PyPI. В репу попадают исключительно Python-пакеты, тогда как модели, бинарники llama.cpp/stable-diffusion.cpp и скрипты переносятся отдельно через архивацию всей папки проекта.

Ключевым элементом процесса является скрипт make_offline_packages.sh, который фиксирует список пакетов через pip freeze, скачивает их в виде wheel-файлов и гарантирует отсутствие сборок из исходного кода (sdist). Скрипт использует ключ --extra-index-url для загрузки CPU-версии PyTorch с официального репозитория, а не CUDA-версии с PyPI. В случае отсутствия готовых wheel-файлов для некоторых пакетов, скрипт автоматически скачивает их как sdist, предупреждая пользователя о необходимости наличия компиляторов (gcc, python3-dev, rustc/cargo) на целевой машине.

Процесс переноса включает упаковку проекта в архив с исключением директорий venv, .secrets и open-webui-data, а также переносом локальной репы offline_packages/ и файла requirements.lock. На целевой машине после установки системных пакетов через apt и создания виртуального окружения выполняется установка зависимостей из локальной репы. Важно отметить, что репа содержит wheels для Python 3.11 и архитектуры x86_64, поэтому для корректной работы на целевой системе должны совпадать версия Python и архитектура процессора. Размер локальной репы составляет около 730 МБ, что значительно меньше полного размера стека с моделями.

Текст подготовлен нейросетью Loople по материалам источника.

Читайте также

Похожие новости

Поиск по Loople

Назад