feat: complete translator stack
This commit is contained in:
commit
6fe7c5121b
9946 files changed
+1747495
No files matched your search
@@ -0,0 +1,33 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user