Tous les articlesPortfolio · section Articles
Architecture de données pour application IA
Data & Architecture

Structurer la base de données d’une application IA : données métier, embeddings, traces et sécurité

Une architecture de données pensée pour l’IA doit séparer les données métier, la connaissance vectorielle, les traces d’exécution et les données sensibles.

8 sept. 20263 min de lecture
PostgreSQLpgvectorRAGArchitectureDataAudit
01

Ne pas mélanger toutes les données dans les mêmes tables

Une application qui utilise l’IA manipule plusieurs catégories de données très différentes : données métier transactionnelles, documents, embeddings, conversations, prompts, résultats de modèles, traces techniques et données d’audit.

Les réunir sans séparation claire crée rapidement des problèmes de performance, de gouvernance et de sécurité. Une bonne architecture commence par identifier les responsabilités de chaque zone de stockage.

PostgreSQL peut parfaitement rester le cœur du système, mais les schémas et tables doivent être organisés par usage plutôt que par facilité de développement.

02

Le cœur transactionnel reste relationnel

Les entités métier critiques doivent rester modélisées avec des relations, contraintes, clés étrangères, index et transactions. L’IA ne remplace pas la cohérence relationnelle.

Clients, utilisateurs, contrats, interventions, commandes ou droits d’accès doivent garder des identifiants stables et des règles d’intégrité fortes.

Cette couche constitue la source de vérité. Les traitements IA viennent l’enrichir, mais ne doivent pas devenir la seule représentation de l’état métier.

03

Séparer documents, chunks et embeddings

Dans une architecture RAG, il est utile de distinguer le document source, ses versions, les chunks produits et les embeddings associés.

Un chunk doit conserver une référence vers son document, son numéro de version, sa position, ses métadonnées métier et éventuellement son hash. Cela permet de reconstruire la provenance d’une réponse.

Avec pgvector, l’embedding peut être stocké dans PostgreSQL, mais il faut prévoir les index vectoriels, la stratégie de filtrage et la suppression cohérente lors d’une nouvelle version de document.

04

Journaliser les appels IA sans stocker n’importe quoi

Pour diagnostiquer un système IA, il faut pouvoir retrouver le modèle utilisé, la latence, le statut, le coût approximatif, la version du prompt et les erreurs.

En revanche, conserver systématiquement le prompt complet et toutes les données envoyées peut créer une copie durable d’informations sensibles.

La bonne approche consiste à séparer les métadonnées techniques des contenus, à masquer les champs sensibles et à définir une durée de rétention adaptée.

05

Prévoir le multi-tenant et la sécurité dès le modèle de données

Dans un SaaS IA multi-entreprises, chaque donnée métier, document, chunk, conversation et trace doit être rattaché explicitement à une organisation ou un tenant.

Les filtres de tenant ne doivent pas être ajoutés seulement dans l’interface. Ils doivent être imposés côté backend et, lorsque cela est pertinent, renforcés avec Row Level Security PostgreSQL.

Cette discipline devient encore plus importante avec des agents IA capables d’enchaîner plusieurs outils et plusieurs sources de données.

06

Une structure de référence

Une structure simple peut séparer les schémas logical_business, ai_knowledge, ai_runtime et audit. Les noms importent moins que la séparation des responsabilités.

Le schéma métier contient les entités transactionnelles. Le schéma connaissance contient documents, chunks et embeddings. Le runtime contient conversations, exécutions d’agents et résultats. L’audit contient les événements nécessaires à la traçabilité.

Cette organisation rend les migrations, politiques de rétention, permissions et analyses beaucoup plus faciles à maîtriser lorsque l’application grandit.