Files

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

  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.