Arquitectura
Frontend React, API FastAPI, motor Python, SQLite y almacenamiento persistente.
Navegador
│ HTTP + SSE
▼
React / Vite ─────► FastAPI / Uvicorn
│
┌───────────┼────────────┐
▼ ▼ ▼
motor Python SQLite data/jobs/
│ tradoc.db documentos
▼
proveedor LLMInterfaz
El frontend se encuentra en web/. Durante el desarrollo, Vite escucha en el puerto 2499 y reenvía las llamadas /api a FastAPI en el puerto 8000. En la imagen Docker de producción, FastAPI también sirve el frontend compilado.
API
api/app.py inicializa la aplicación, las cabeceras de seguridad, la limitación de solicitudes y la ruta de estado. api/routes.py expone proveedores, proyectos, segmentos, glosarios, exportaciones y eventos.
Motor
El directorio core/ contiene los analizadores, la segmentación, el cliente LLM, la limpieza, el motor asíncrono, los glosarios, el almacén de credenciales y los puntos de control.
Persistencia
SQLite funciona en modo WAL. Cada nuevo proyecto dispone de directorios aislados de entrada y salida en data/jobs/<id>/. Los glosarios y las credenciales de proveedores también se guardan en data/.
Una copia de seguridad coherente
Copia todo el directorio data/, no solo tradoc.db. La base de datos hace referencia a los documentos y directorios de proyecto que se almacenan junto a ella.