2.0 KiB
2.0 KiB
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
pip install -r backend/requirements.txtnpm install(nella cartellafrontend), poinpm run build- Avviare
uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 - Servire
frontend/distconserveo avviare il containerfrontendneldocker-compose
Endpoint chiave del backend
POST /api/upload: carica file (EPUB, PDF, DOCX, TXT) e restituiscesession_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
- Costruisci i container:
docker compose build --parallel. - Avvia tutto in un unico flusso:
./start-stack.sh(il backend parte per primo, il frontend attende che/healthrisponda). - In alternativa usa la GUI helper
python3 tools/gui_helper.pyper vedere una finestra con un pulsante e i log in streaming dello startup. - Accesso: backend su
http://localhost:8000, frontend suhttp://localhost:5173. - Il backend scrive il file finale in
_bmad-output/translated-<session_id>.txt.
Note
- La variabile
OLLAMA_URLpuò essere sovrascritta per puntare a un host Ollama differente. - La directory
_bmad-outputviene montata nel container per esporre i file tradotti persistenti.