# Traduttore Multiformato Questo progetto include un backend FastAPI per chunking, traduzione via ollama e scrittura finale, oltre a un frontend React/Vite per carico file e monitoraggio SSE. ## Passaggi principali 1. `pip install -r backend/requirements.txt` 2. `npm install` (nella cartella `frontend`), poi `npm run build` 3. Avviare `uvicorn backend.app.main:app --host 0.0.0.0 --port 8000` 4. Servire `frontend/dist` con `serve` o avviare il container `frontend` nel `docker-compose` ## Endpoint chiave del backend - `POST /api/upload`: carica file (EPUB, PDF, DOCX, TXT) e restituisce `session_id` + lingua rilevata. - `POST /api/start`: avvia la sequenza di chunk tradotti via Ollama. - `POST /api/stop`: richiede lo stop immediato. - `GET /api/status/{session_id}`: restituisce stato, ETA, chunk completati e testo tradotto aggregato. - `GET /api/stream/{session_id}`: Server Sent Events con aggiornamenti chunk/ETA/testo. ## Frontend Il frontend in `frontend/src` comunica con `/api`, mostra dropdown lingue, caricamento file, caption (titolo, orari, ETA) e il box tradotto che si popola via SSE. I pulsanti `Avvia traduzione` e `Stop traduzione` coordinano le chiamate. ## Testing Eseguire `python3 -m pytest backend/tests` per verificare processor, chunking e health check. ## Deployment con Docker Compose 1. Costruisci i container: `docker compose build --parallel`. 2. Avvia tutto in un unico flusso: `./start-stack.sh` (il backend parte per primo, il frontend attende che `/health` risponda). 3. In alternativa usa la GUI helper `python3 tools/gui_helper.py` per vedere una finestra con un pulsante e i log in streaming dello startup. 4. Accesso: backend su `http://localhost:8000`, frontend su `http://localhost:5173`. 5. Il backend scrive il file finale in `_bmad-output/translated-.txt`. ## Note - La variabile `OLLAMA_URL` può essere sovrascritta per puntare a un host Ollama differente. - La directory `_bmad-output` viene montata nel container per esporre i file tradotti persistenti.