Nous avons construit une plateforme d'intelligence documentaire AI multi-agents avec récupération basée sur une base de données vectorielle pour les documents volumineux, des agents spécialisés pour différents types de documents, un orchestrateur pour le raisonnement inter-documents, et des capacités d'écriture en retour pour l'édition de feuilles de calcul.
Architecture
- Orchestrateur : Agent orchestrateur AI coordonnant les flux de travail multi-étapes entre des agents spécialisés
- Agent de feuille de calcul : Gère l'analyse de Excel/CSV/Google Sheets, la génération de formules et l'édition de cellules
- Agent de document : Gère la lecture, l'extraction et la synthèse de documents PDF/Word
- Agent de référencement croisé : Effectue des jointures, des comparaisons et des réconciliations entre différents types de documents
- Base de données vectorielle : Milvus pour l'indexation sémantique des segments de documents et des lignes de feuilles de calcul
- Couche LLM : Approche multi-modèle avec appel de fonctions
- Backend : Python/FastAPI pour le traitement des documents et l'orchestration des agents
- Frontend : Tableau de bord React avec téléversement de fichiers, interface de chat et aperçu en direct des feuilles de calcul
- Stockage : S3 pour les fichiers originaux, PostgreSQL pour les métadonnées et le suivi des tâches
Architecture multi-agents
RĂ´les des agents
1. Agent orchestrateur
Le coordinateur central qui reçoit les requêtes utilisateur, les décompose en sous-tâches et les délègue à des agents spécialisés. Il analyse l'intention de l'utilisateur, crée des plans d'exécution, gère le flux de données entre les agents, agrège les résultats et gère la récupération après erreur.
2. Agent de feuille de calcul
Spécialisé dans les opérations sur les données tabulaires, y compris la compréhension du schéma, la traduction du langage naturel en requête, les agrégations et le filtrage, la génération de formules, l'édition de cellules et le remplissage de colonnes, les suggestions de graphiques et la validation des données/détection d'anomalies.
3. Agent de document
Spécialisé dans les documents non structurés et semi-structurés, y compris l'OCR et l'extraction de texte sensible à la mise en page, l'identification de sections, l'extraction de paires clé-valeur des contrats, la synthèse, la recherche de clauses sémantiques et l'extraction de tableaux à partir de PDFs/Word docs.
4. Agent de référencement croisé
Spécialisé dans le raisonnement multi-documents, y compris la correspondance d'entités entre les documents, la réconciliation des données et l'identification des écarts, l'analyse chronologique, la résolution des dépendances pour les données conflictuelles et les opérations de jointure de type SQL entre les types de documents.
Couche de base de données vectorielle
Pourquoi une base de données vectorielle pour les documents
Les documents et feuilles de calcul volumineux ne peuvent pas tenir dans une seule fenêtre de contexte LLM. La base de données vectorielle permet la recherche sémantique à travers des millions de lignes et de segments de documents, la récupération uniquement des portions pertinentes par requête, la liaison d'entités inter-documents via la similarité d'embedding, et l'indexation persistante qui ne nécessite pas de re-traitement à chaque requête.
Stratégie d'indexation
Indexation des feuilles de calcul :
Chaque ligne est convertie en une représentation en langage naturel en concaténant les valeurs des colonnes clés, puis intégrée (embedded) et stockée avec des références vers le fichier original, la feuille et l'index de ligne pour les opérations d'écriture en retour.
Indexation des documents :
Les documents sont extraits en tenant compte de la mise en page, découpés en segments sémantiques avec chevauchement, intégrés (embedded) et stockés avec des références au fichier source, à la section et au numéro de page.
Index d'entités inter-documents :
Un index séparé relie les entités (fournisseurs, produits, personnes, numéros de facture) entre les documents, permettant aux requêtes de référencement croisé de trouver rapidement toutes les mentions d'une entité, quel que soit le fichier source.
Pipeline de récupération
Lorsqu'un utilisateur pose une question inter-documents, l'orchestrateur identifie les documents et les agents nécessaires, effectue des recherches vectorielles pour trouver des données pertinentes dans toutes les sources, délègue aux agents spécialisés pour le traitement et agrège les résultats en une réponse cohérente.
Moteur d'orchestration
Décomposition des requêtes
L'orchestrateur décompose les requêtes complexes en plans d'exécution multi-étapes. Par exemple, une question telle que « Trouver les fournisseurs ayant des livraisons tardives, vérifier les clauses de pénalité contractuelles et calculer les pénalités réclamables » serait décomposée en étapes séquentielles : interroger les données de livraison via l'Agent de feuille de calcul, rechercher les contrats via l'Agent de document et joindre les résultats via l'Agent de référencement croisé.
Communication des agents
- Les agents communiquent via des messages structurés avec des charges utiles typées
- L'orchestrateur maintient le contexte d'exécution avec les résultats intermédiaires
- Les étapes échouées déclenchent des stratégies de réessai ou de repli
- Des résultats partiels sont renvoyés si certaines étapes se terminent mais d'autres échouent
Édition de feuilles de calcul et écriture en retour (Write-Back)
Capacités d'édition
La plateforme prend en charge les mises à jour de cellules, le remplissage de colonnes, l'insertion de lignes, le formatage conditionnel, la création de nouvelles feuilles et l'injection de formules — le tout proposé par les agents AI et appliqué avec l'approbation de l'utilisateur.
Pipeline d'écriture en retour (Write-Back)
- L'agent détermine l'opération d'édition (quelles cellules, quelles valeurs)
- Un aperçu des modifications est affiché à l'utilisateur avec surbrillance des différences (anciennes vs. nouvelles valeurs)
- L'utilisateur approuve ou modifie les changements proposés
- Le Backend applique les modifications au fichier en utilisant les bibliothèques appropriées par format
- Le fichier modifié est enregistré comme une nouvelle version avec un journal d'audit des modifications
- L'index vectoriel est mis à jour pour les lignes modifiées
ContrĂ´le de version
- Chaque modification crée une nouvelle version du fichier (l'original est préservé)
- Le diff log montre exactement ce qui a changé, quand et pourquoi
- Restauration à toute version précédente en un clic
- Attribution des modifications : quel agent ou utilisateur a effectué chaque changement
Pipeline de traitement pour les nouveaux documents
Flux de téléversement de fichiers
- L'utilisateur télécharge des fichiers (glisser-déposer ou API)
- Le type de fichier est détecté et acheminé vers le processeur approprié
- Feuilles de calcul : Analysées, schéma inféré, lignes intégrées (embedded) et indexées
- PDFs : OCR (si scanné) → extraction de la mise en page → découpage (chunking) → intégration (embedding) → indexation
- Documents Word : Extraction de texte → analyse de section → découpage (chunking) → intégration (embedding) → indexation
- Extraction d'entités : NER identifie les personnes, organisations, dates, montants dans tous les documents
- Liaison inter-documents : L'index d'entités est mis à jour avec les nouvelles mentions
- Les métadonnées des fichiers sont stockées dans PostgreSQL, les embeddings dans la base de données vectorielle, les originaux dans S3
Formats pris en charge
La plateforme prend en charge Excel, CSV et Google Sheets (avec écriture en retour complète), les PDFs natifs et numérisés (lecture seule), ainsi que les documents Word et Google Docs (écriture en retour limitée).
Fonctionnalités clés
- Architecture multi-agents — Agents spécialisés pour les feuilles de calcul, les documents et le référencement croisé
- Orchestrateur AI — Décompose les requêtes complexes en plans d'exécution multi-étapes
- Référencement inter-documents — Liaison d'entités et réconciliation de données entre les types de fichiers
- Récupération basée sur les vecteurs — La recherche sémantique gère des ensembles de données au-delà des limites de contexte des LLM
- Écriture en retour (Write-Back) de feuilles de calcul — L'AI modifie les cellules, remplit les colonnes et injecte des formules avec l'approbation de l'utilisateur
- Prise en charge des grands ensembles de données — Feuilles de calcul de plus de 50 000 lignes indexées et interrogeables via la recherche vectorielle
- Contrôle de version — Chaque modification est versionnée avec un journal des différences (diff log) et une capacité de restauration
- Requêtes en langage naturel — Posez des questions analytiques complexes en anglais simple
- Prise en charge multi-formats — Excel, CSV, Google Sheets, PDF, Word, Google Docs
- Aperçu des modifications — Aperçu avec surbrillance des différences (diff-highlighted) avant l'application des modifications