Docker¶
Deploy containerizzato su Linux. Modello ASR incluso nel build; riassunto LLM locale scaricato automaticamente all'avvio se RAM ≥ 16 GB.
Profili¶
| Servizio | Profilo | Base image |
|---|---|---|
sbobinator-cpu |
cpu |
python:3.12-slim |
sbobinator-gpu |
gpu |
nvidia/cuda:12.6 |
Build (~2.5 GB modello ASR)¶
Durante il build:
pip install -e ".[ui,summarize]"— FastAPI, NeMo, provider LLM,llama-cpp-pythondownload_model.py→/models/parakeet-tdt-0.6b-v3.nemo
Avvio¶
All'avvio (sbobina docker-ui):
- Controlla RAM nel container (≥ 16 GB)
- Se ok e Qwen assente → scarica ~2 GB da HuggingFace
- Avvia UI su http://localhost:8502 (mapping
8502:8501nel compose predefinito)
Primo avvio con download Qwen: può richiedere 10–20 minuti (rete). I log mostrano il progresso.
Se RAM insufficiente: salta il download, riassunto cloud resta disponibile con API key.
Non serve più docker exec ... download_summary_llm.py manualmente.
Volumi¶
| Host / volume | Container | Uso |
|---|---|---|
./data/input/ |
/data/input/ |
File sorgente |
./data/output/ |
/data/output/ |
Job e risultati |
./data/.secrets/ |
/data/.secrets/ |
API key riassunto |
sbobinator-qwen (named) |
/models/qwen2.5-3b-instruct/ |
Qwen GGUF (persiste tra restart) |
Variabili ambiente¶
environment:
- NEMO_CACHE_DIR=/models
- SBOBINATOR_DATA=/data
- SBOBINATOR_UI_HOST=0.0.0.0
# Riassunto cloud (opzionale):
- SBOBINATOR_DEEPSEEK_API_KEY=sk-...
Oppure configura da UI → salvato in /data/.secrets/summary_keys.json.
GPU¶
Richiede NVIDIA Container Toolkit.
Differenze vs locale Windows¶
| Aspetto | Locale | Docker (profilo cpu) |
|---|---|---|
| UI | 127.0.0.1:8501 |
localhost:8502 → container 8501 |
| ASR | models/ nel repo |
/models in immagine |
| Riassunto cloud | API key in secrets | Stesso (volume /data) |
| Qwen locale | download_summary_llm.py |
Auto all'avvio Docker se RAM ≥ 16 GB |
| SSL API | truststore (Windows) |
Di solito non serve (Linux) |
Produzione¶
- Pre-build immagine una volta
- Monta solo
data/ - Backup
data/output/jobs/ - Healthcheck su
/partials/queue