Architecture conteneurs Bercy Hub

Cette vue decrit les briques utiles a la plateforme et leurs relations. Elle ne liste pas les ports ni les noms Docker bruts : le sujet important est de comprendre quelle brique expose une interface, laquelle porte la logique applicative, lesquelles stockent les donnees, et lesquelles executent les modeles IA.

ADAJIA est un domaine separe. Le portail testia contient un lien vers ADAJIA, mais ADAJIA ne fait pas partie du meme domaine d'autorisation que Synthesia, ConsoIA, KelClass, Harmonia, Voxia et Concordia. Ses donnees, son graphe, ses index et son authentification doivent rester exploites separement.

Point d'entree

Le portail n'execute pas de metier. Il oriente vers les applications.

Portail Bercy Hub

Portail Nginx statique. Il presente les applications, les fiches descriptives et les liens d'acces. Il ne stocke pas de donnees metier.

Keycloak / SSO

Fournisseur d'identite commun. Il gere les sessions SSO, les utilisateurs et les jetons OIDC pour les applications rattachees au realm commun.

Applications rattachees au SSO commun

Ces UIs deleguent l'authentification au Keycloak commun, directement ou via leur backend.

Harmonia

Application de redaction, reecriture, synthese et transcription.

Voxia

Studio audio : projets, personas, voix, generation de contenus media.

Concordia

Atelier de prompt engineering : cours, exercices, optimisation de prompts.

KelClass

Interface de classification documentaire.

ConsoIA

Interface metier pour le droit de la consommation et les fiches DGCCRF.

Uranus / Admin Synthesia

Interfaces du domaine Synthesia : usage multi-services et administration.

Domaine separe

ADAJIA est visible depuis le portail, mais ne partage pas le cycle d'autorisation commun.

Interface ADAJIA

Interface ADAJIA pour la recherche juridique DAJ. Elle consomme son propre backend et ses propres donnees.

API ADAJIA

Backend ADAJIA. Il porte la recherche hybride, les enrichissements Legifrance et l'acces au graphe DAJ.

Interfaces Synthesia

Elles sont legeres : elles orchestrent l'experience utilisateur et appellent l'API centrale.

Uranus

Interface multi-services pour l'analyse documentaire, le chat, l'audio et les fonctions IA transverses.

Administration Synthesia

Interface d'administration : suivi, documents, utilisateurs, files de traitement et monitoring applicatif.

Interface utilisateur Synthesia

Interface utilisateur historique raccordee au domaine Synthesia.

API et traitements asynchrones

C'est la colonne vertebrale du domaine Synthesia.

API centrale

API FastAPI centrale. Elle recoit les demandes des UIs, applique l'authentification, gere les documents, declenche OCR/TTS/transcription/recherche et appelle les services IA.

Workers Celery

Workers de fond. Ils executent les traitements longs sans bloquer l'API : ingestion de documents, analyse, extraction, appels modeles et generation de resultats.

Flux simplifie : UI API centrale Redis/Celery services IA ou stores retour API/UI.

Stores du domaine Synthesia

Ces conteneurs rendent les traitements robustes et persistants.

Redis

File de messages et cache. Redis sert de broker Celery : l'API depose une tache, les workers la prennent, puis publient l'etat et les resultats.

FalkorDB

Base graphe. Elle stocke des relations entre documents, entites, sujets et concepts pour permettre des parcours et recherches non strictement tabulaires.

Volumes applicatifs

Stockage persistant des documents, sorties, templates, images generees, caches applicatifs et donnees du graphe.

ML leger

Service ML mutualise : Whisper pour transcription, GLiNER pour extraction d'entites, detection PII, embeddings legers et modeles NLP.

Qwen ASR

Service speech-to-text specialise. Il expose un modele Qwen ASR via une API compatible OpenAI pour la transcription audio.

Embeddings multimodaux

Service d'embeddings multimodaux. Il transforme textes, images ou videos en vecteurs utilisables par les moteurs de recherche IA.

Generation d'images

Generation d'images via une pile ComfyUI headless. Voxia et les outils media peuvent s'y appuyer.

OCR Hunyuan

OCR specialise GPU pour extraire du texte depuis des documents images complexes.

OCR GLM

OCR/VLM alternatif pour certains cas de lecture visuelle de documents.

OCR LightOn

Service OCR complementaire, utile selon la qualite et le format des documents entrants.

Docling principal

Extraction documentaire structuree : conversion de PDF/documents en contenus exploitables par les workflows IA.

Docling secondaire

Service Docling complementaire, conserve pour certains pipelines d'extraction.

Tika

Extraction de texte et metadata depuis de nombreux formats bureautiques.

Albert / Etalab

LLM externe souverain utilise pour la generation, la reformulation et certaines reponses assistees.

Tricoteuses / PISTE

Sources juridiques externes utilisees par les applications juridiques pour completer les bases locales.

KelClass

Classification documentaire avec stockage et modeles propres.

Interface KelClass

Interface de depot, entrainement, prediction et consultation des classifications.

API KelClass

Backend de classification. Il gere les corpus, les modeles entraines, les predictions et les appels LLM necessaires.

Donnees KelClass

Volume applicatif : datasets, modeles, resultats d'entrainement et donnees de classification.

ConsoIA

Application DGCCRF avec moteur RAG juridique specialise.

Interface ConsoIA

Interface de production de Q/R, recherche dans les fiches et consultation des contenus valides.

API ConsoIA

Backend RAG : RAPTOR, ColBERT, BM25, reranker, spaCy et integration Legifrance.

Qdrant embarque ConsoIA

Index vectoriel stocke dans le volume de l'API ConsoIA. Il n'existe pas aujourd'hui comme conteneur separe.

SQLite Legifrance

Base locale des articles Legifrance pour repondre rapidement sans dependre uniquement d'une API externe.

BM25 / RAPTOR

Index lexical et arbre hierarchique de resumes pour completer la recherche vectorielle.

Harmonia, Voxia, Concordia

Applications autonomes mais rattachees au SSO commun.

Harmonia

Application autonome pour redaction et transcription, avec appels LLM et composants audio internes.

Voxia

Application media/audio. Elle peut consommer les services Synthesia pour images, voix et traitements associes.

Concordia

Application d'apprentissage et d'optimisation de prompts. Elle s'appuie sur le SSO et les LLM.

Conteneurs ADAJIA

Ils forment une stack autonome, publiee dans le portail mais separee dans l'exploitation.

Interface ADAJIA

Interface ADAJIA, moteur de recherche juridique pour la DAJ.

API ADAJIA

Backend juridique : recherche hybride, ColBERT, BM25, GLiNER, Legifrance et endpoints graphe.

FalkorDB ADAJIA

Base graphe dediee a ADAJIA. Elle ne doit pas etre mutualisee avec le graphe Synthesia.

Donnees ADAJIA

Les donnees DAJ restent dans leur perimetre.

Qdrant embarque ADAJIA

Index vectoriel DAJ gere par l'API ADAJIA via stockage disque local. Pas de conteneur Qdrant dedie aujourd'hui.

Index BM25

Index lexicaux par cible de recherche : questions, reponses et resumes.

SQLite Legifrance

Base juridique locale utilisee pour l'enrichissement et la recherche d'articles.

Regle d'architecture

ADAJIA doit rester decouple du reste.

Authentification separee

Pas d'heritage automatique des roles ni des sessions du SSO commun.

Exploitation isolee

Une reindexation, panne ou evolution ADAJIA ne doit pas impacter les autres applications.

Donnees non mutualisees

Graphe, Qdrant local, BM25 et Legifrance DAJ restent dans le domaine DAJ.

Etat actuel : ConsoIA et ADAJIA utilisent Qdrant en mode embarque dans le processus Python avec stockage disque local. Il n'y a donc pas de conteneur qdrant exploitable separement.
Architecture cible possible : creer un conteneur Qdrant par domaine (qdrant-consoia, qdrant-daj), avec volumes persistants, sauvegardes, supervision et variables d'URL explicites. Cela rendrait l'exploitation plus standard pour NDSI.
UI / portail
API / worker
Modele IA / OCR / extraction
Store / index / volume
Authentification
Domaine ADAJIA separe

Assistant documentation

RAG local sur la documentation Bercy Hub et Synthesia, reponse generee avec Albert.

Posez une question sur l'architecture, les conteneurs, les applications ou les guides d'utilisation.