Integrate HF_TOKEN into Docker build for preloaded diarization models

This commit is contained in:
Кирилл Блинов 2026-05-29 18:04:38 +03:00
parent 0931a15d32
commit 0ed45cdf12
3 changed files with 65 additions and 3 deletions

View File

@ -19,8 +19,15 @@ RUN pip install --no-cache-dir -r requirements.txt
# Копируем код проекта # Копируем код проекта
COPY . . COPY . .
# Предзагрузка моделей (без HF_TOKEN диаризация пропускается) # Предзагрузка моделей (HF_TOKEN передаётся через build args)
RUN python scripts/download_models.py || echo "Модели будут загружены при первом запуске" ARG HF_TOKEN
ENV HF_TOKEN=$HF_TOKEN
RUN if [ -n "$HF_TOKEN" ]; then \
echo "[Build] Загрузка моделей с HF_TOKEN..."; \
python scripts/download_models.py; \
else \
echo "[Build] HF_TOKEN не передан — модели загрузятся при первом запуске"; \
fi
# Создаём директории для данных # Создаём директории для данных
RUN mkdir -p uploads processed tmp RUN mkdir -p uploads processed tmp

View File

@ -260,6 +260,58 @@ output:
paragraph_pause_sec: 2.0 paragraph_pause_sec: 2.0
``` ```
## 🐳 Docker
Проект полностью контейнеризирован — все модели ИИ внутри образа.
### Быстрый старт
```bash
# Установите токен
export HF_TOKEN=hf_xxxxxxxxxxxxxxxxxxxxxxxx
# Сборка и запуск (модели загрузятся в образ)
docker compose up --build -d
# Готово! Откройте http://localhost:8000
```
### Переменные окружения
| Переменная | Обязательная | Описание |
|------------|-------------|----------|
| `HF_TOKEN` | **Да** | HuggingFace токен для диаризации. Передаётся и при сборке, и при запуске. |
### Команды
```bash
# Сборка с токеном (модели внутри образа)
export HF_TOKEN=your_token
docker compose up --build -d
# Только запуск (если образ уже собран)
docker compose up -d
# Просмотр логов
docker compose logs -f
# Остановка
docker compose down
# Полная очистка (удалит данные!)
docker compose down -v
```
### Volumes
| Volume | Описание |
|--------|----------|
| `uploads` | Загруженные файлы |
| `processed` | Результаты транскрибации |
| `tmp` | Временные файлы |
Данные сохраняются между перезапусками контейнера.
## 🌐 Веб-интерфейс ## 🌐 Веб-интерфейс
Проект включает веб-сервис с минималистичным фронтендом для удобной работы через браузер. Проект включает веб-сервис с минималистичным фронтендом для удобной работы через браузер.

View File

@ -2,7 +2,10 @@ version: "3.8"
services: services:
transcription: transcription:
build: . build:
context: .
args:
HF_TOKEN: ${HF_TOKEN}
container_name: transcription_service container_name: transcription_service
ports: ports:
- "8000:8000" - "8000:8000"