# Инструкции по сборке Docker образа с предзагруженной моделью ## Обзор изменений Dockerfile был модифицирован для предварительной загрузки модели Hugging Face во время сборки образа. Это обеспечивает: - ✅ Быстрое развертывание (модель уже в контейнере) - ✅ Надежность (нет зависимости от сети при запуске) - ✅ Консистентность (фиксированная версия модели) ## Сборка образа ### Базовая сборка (для публичных моделей): ```bash docker build -t llm-structured-output . ``` ### Сборка с токеном Hugging Face (для приватных моделей): ```bash docker build --build-arg HUGGINGFACE_TOKEN=your_token_here -t llm-structured-output . ``` Или через переменную окружения: ```bash export HUGGINGFACE_TOKEN=your_token_here docker build -t llm-structured-output . ``` ## Запуск контейнера ```bash docker run -p 7860:7860 llm-structured-output ``` Приложение будет доступно по адресу: http://localhost:7860 ## Запуск через docker-compose ```bash docker-compose up --build ``` ## Важные изменения ### 1. Dockerfile - Добавлен `git-lfs` для работы с большими файлами - Добавлена переменная `DOCKER_CONTAINER=true` - Добавлен этап предварительной загрузки модели - Модель скачивается во время сборки образа ### 2. app.py - Добавлена проверка на Docker окружение - Если модель не найдена в Docker контейнере, выбрасывается ошибка - Логика загрузки модели оптимизирована для работы с предзагруженными моделями ## Размер образа Образ будет больше из-за включенной модели, но это компенсируется: - Быстрым запуском контейнера - Отсутствием сетевых зависимостей - Возможностью кэширования слоев Docker ## Настройка модели Для изменения модели отредактируйте `config.py`: ```python MODEL_REPO: str = "your-repo/your-model" MODEL_FILENAME: str = "your-model.gguf" ``` Затем пересоберите образ. ## Отладка Для проверки наличия модели в контейнере: ```bash docker run -it llm-structured-output ls -la /app/models/ ``` Для проверки логов сборки: ```bash docker build --no-cache -t llm-structured-output . ```