Aurora NexusIntroduction
Vue d’ensemble Aurora Nexus
stack, composants, ports clés
Composants (docker-compose)
- API (FastAPI) : admin, RAG, ingestion API, auth, logs. Port
HOST_API_PORT(défaut 8000). - UI (Next.js) : dashboard admin/métier. Port
HOST_UI_PORT(défaut 3000). - Gateway : cache LLM + observabilité, appels internes sécurisés via
X-Internal-Secret. PortHOST_GATEWAY_PORT(défaut 8100). - Ingestion worker : Docling + embeddings, écrit vers Qdrant/MinIO/Postgres.
- API worker : tâches Celery (ragas, optimizer, i18n…).
- Postgres : données structurées (settings, logs, users…).
- Qdrant : vecteurs (documents + cache sémantique).
- MinIO : objets (uploads, artefacts, backups).
- Redis : broker/résultats Celery (pas de stockage de cache métier).
Flux principaux
- Auth : JWT HMAC (
JWT_SECRET) + cookie HttpOnly recommandé (AUTH_COOKIE_*), admin API keys (bootstrap), option OAuth Google. - RAG : API → Gateway (cache) → LLM provider (OpenAI/OpenRouter) → Postgres/Qdrant pour logs & citations → UI.
- Conversations multi-tours (apps externes) :
POST /api/queryacceptethread_id(recommandé) + blocSUIVIen fin de livrable pour résoudre des follow-ups (“S2 / point B / 2e point”) sans réinjecter l’historique brut. - Ingestion : Upload S3 presigné → Postgres (métadonnées) → Qdrant (vecteurs) → liens publics/minio.
Ports & exposition
- Compose bind en
127.0.0.1:<HOST_*_PORT>par défaut. Exposer seulement UI/API/Gateway derrière un reverse-proxy (TLS). Ne jamais exposer Postgres/Qdrant/Redis/MinIO sans protection.
Secrets critiques
JWT_SECRET,GATEWAY_INTERNAL_SECRET,LLM_CREDENTIALS_ENC_KEY,MINIO_ROOT_PASSWORD,POSTGRES_PASSWORD, clés LLM. À gérer hors Git (wizard, vault) et non via l’admin API (ALLOW_ADMIN_ENV_WRITE=falseen prod).
Données & stockage
- Structuré : Postgres (tables settings, queries_log, documents, tenants, credentials chiffrés).
- Vecteurs : Qdrant collections
aurora_documents,llm_cache_semantic. - Objets : MinIO buckets uploads/artifacts/backups.
- Volumétrie : penser aux quotas et à la rétention (logs, usage LLM, embeddings).