Files
TranslateBook--/README.md
T

34 lines
2.0 KiB
Markdown

# 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-<session_id>.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.