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