Aller au contenu principal

Bases de connaissances

L'écran Bases de connaissances permet de créer des collections de documents pour la recherche (RAG), d'ingérer des documents, de tester une requête avec la provenance de chaque extrait, de régler qui peut lire et écrire une base et de faire passer une base à un autre modèle d'embedding. Chemin du portail : /data/knowledge ; le détail d'une base s'ouvre sur /data/knowledge/<kb-id>. Les développeurs et les administrateurs du tenant l'utilisent pour alimenter les agents en documents internes ; les responsables sécurité l'utilisent pour contrôler les accès.

Ce que montre l'écran​

La table Bases de connaissances liste les bases que vous pouvez lire (le serveur les filtre avec l'ACL readers). Colonnes : Nom, Description, Modèle d'embedding, Dimensions, Base vectorielle, Classification, Créé. Un clic sur une ligne ouvre la page de détail. Sans aucune base, l'écran affiche « Aucune base de connaissances ».

Le formulaire de création Nouvelle base contient ces champs :

ChampObligatoireDéfautNotes tirées du code
Nomoui1 à 120 caractères, unique dans le tenant
Descriptionnon
Classificationouiinternal, public, confidential, restricted, secret
Modèle d'embeddingnonEAI_RAG_EMBEDDING_MODELmodèle du registre avec la capacité embeddings, exemple bge-m3-vllm
Dimensionsnontaille native du modèle1 à 16384
Taille des segmentsnon20020 à 4000
Chevauchement des segmentsnon40doit être inférieur à la taille des segments

La page de détail affiche le nom de la base, un bouton Retour et quatre onglets :

  • Documents : la section Ajouter un document (champs Titre, Fichier, Ou collez du texte ; la zone de texte est désactivée dès qu'un fichier est choisi) et la table Documents avec Titre, Type MIME, Extraits, Version, Classification, Connecteur source, Lecteurs (ACL), Statut, Détections DLP, Créé. Un clic sur un document ouvre un panneau avec sa fiche.
  • Recherche : le formulaire Testeur de requête avec Requête (obligatoire), Top K (5), Score minimal (0), Mode (vector ou hybrid), Reclassement et Modèle de reclassement. Chaque résultat affiche son rang, son score, l'identifiant du document, sa classification, le texte et le JSON de provenance. « Aucun résultat » signifie que rien ne correspond ou que vous ne pouvez pas lire les documents correspondants.
  • Contrôle d'accès : un éditeur JSON contenant readers, writers et apply_to_documents ; « JSON invalide » s'affiche dessous tant que le texte n'est pas lisible.
  • Réindexation : le formulaire Réindexation (Modèle d'embedding obligatoire, Dimensions) et la table Tâches de réindexation avec Identifiant, Statut, Modèle, Traités, Total, Erreur, Créé, Terminé.

Actions​

Bouton ou actionCe qu'il faitAppel APIRôles
Icône d'actualisationRecharge la listeGET /v1/knowledge-basestout utilisateur du tenant (filtré par ACL)
Nouvelle base > CréerCrée la base et vous en rend propriétairePOST /v1/knowledge-basestenant_admin, developer
Clic sur une ligneOuvre la page de détailGET /v1/knowledge-bases/{kb_id}relation viewer et ACL readers
Supprimer (menu de ligne)Affiche la confirmation d'impact (dépendances lues sur GET /v1/lineage/graph), puis supprime la base et ses vecteursDELETE /v1/knowledge-bases/{kb_id}relation owner ; tenant_admin ou le créateur
IngérerAnalyse, extrait, découpe et vectorise le fichier ou le textePOST /v1/knowledge-bases/{kb_id}/documentsrelation editor ; ACL writers, ou tenant_admin, developer, agent quand writers est vide
Table des documentsListe les documents que vous pouvez lireGET /v1/knowledge-bases/{kb_id}/documentsrelation viewer
Supprimer (menu d'un document)Supprime le document et ses extraits après la confirmation d'impactDELETE /v1/knowledge-bases/{kb_id}/documents/{doc_id}comme Ingérer
Exécuter (Testeur de requête)Recherche filtrée par ACL et habilitationPOST /v1/knowledge-bases/{kb_id}/queryrelation can_invoke et ACL readers
Enregistrer l'ACLRemplace lecteurs et rédacteurs, et les lecteurs des documents hérités quand apply_to_documents vaut truePUT /v1/knowledge-bases/{kb_id}/aclrelation owner ; tenant_admin, security_officer ou le créateur
Exécuter (Réindexation)Met en file la tâche de réindexation des embeddings (réponse 202)POST /v1/knowledge-bases/{kb_id}/reindexrelation owner, tenant_admin ou developer, et droit d'écriture
Table des tâches de réindexationListe les réindexations de la baseGET /v1/knowledge-bases/{kb_id}/reindex-jobsrelation viewer

Rôles​

Le portail ne masque aucun bouton sur cet écran : le Control Plane décide. Les règles viennent de services/control-plane/src/eai/domains/knowledge/__init__.py :

  • créer une base et lancer une réindexation exigent tenant_admin ou developer (erreur forbidden sinon) ;
  • écrire des documents exige l'ACL writers de la base ; quand elle est vide, tenant_admin, developer et agent peuvent écrire ; tenant_admin le peut toujours ;
  • lire exige une identité de l'ACL readers (*, user:<id>, role:<role>, group:<groupe>) ; les administrateurs n'ont aucune lecture implicite ;
  • l'ACL est modifiée par tenant_admin, security_officer ou le créateur de la base.

Tâches courantes​

Créer une base et ingérer un premier document​

  1. Créer la base. Une base fixe le modèle d'embedding et le découpage de tous ses documents. Ouvrez Bases de connaissances, cliquez sur Nouvelle base, remplissez Nom et Classification, puis Créer.

    Résultat attendu : le message « Créé » et une nouvelle ligne dans la table.

    En cas d'échec : conflict signifie que le nom existe déjà ; invalid_request sur chunk_overlap signifie que le chevauchement n'est pas inférieur à la taille des segments.

  2. Ingérer un document. Le document passe par la chaîne de sécurité des fichiers avant l'extraction. Cliquez sur la ligne, restez sur Documents, choisissez un Fichier ou collez du texte, puis cliquez sur Ingérer.

    Résultat attendu : le message « Document ingéré » et une ligne avec son nombre d'Extraits.

    En cas d'échec : lisez le code d'erreur dans la table de la section Dépannage (file_blocked, unsupported_media).

Tester la recherche d'un agent​

  1. Lancer une requête. Le testeur applique les mêmes filtres d'ACL et d'habilitation qu'un agent. Ouvrez l'onglet Recherche, saisissez une Requête, choisissez le Mode hybrid si les mots clés comptent, puis Exécuter.

    Résultat attendu : des résultats numérotés avec un score, un identifiant de document et la provenance de l'extrait.

    En cas d'échec : « Aucun résultat » avec des documents présents signifie que votre identité n'est pas dans les readers des documents ; baissez le Score minimal ou vérifiez l'ACL.

Restreindre la lecture d'une base​

  1. Modifier l'ACL. La recherche ne renvoie que les extraits dont les lecteurs correspondent à l'appelant. Ouvrez Contrôle d'accès et écrivez l'objet JSON, par exemple :

    {
    "readers": ["group:finance", "role:tenant_admin"],
    "writers": ["group:finance-editors"],
    "apply_to_documents": true
    }

    group:finance et group:finance-editors sont des exemples de groupes d'identités de votre organisation.

  2. L'enregistrer. Cliquez sur Enregistrer l'ACL.

    Résultat attendu : le message « Enregistré » ; la réponse compte documents_updated.

    En cas d'échec : « JSON invalide » laisse le bouton désactivé ; forbidden signifie que vous n'êtes ni tenant_admin, ni security_officer, ni le créateur.

Faire passer une base à un autre modèle d'embedding​

  1. Lancer la réindexation. Les vecteurs actuels restent interrogés jusqu'à la bascule. Ouvrez Réindexation, remplissez Modèle d'embedding (et Dimensions si le modèle propose plusieurs tailles), puis Exécuter.

    Résultat attendu : une tâche dans Tâches de réindexation dont Traités monte jusqu'à Total.

    En cas d'échec : la colonne Erreur de la tâche donne la cause ; embedding_dimension_mismatch signifie que les dimensions ne correspondent pas au modèle.

Dépannage​

SymptômeCauseCorrection
forbidden (403) sur Créer ou Exécuter (Réindexation)Votre rôle n'est ni tenant_admin ni developerDemandez le rôle developer à un administrateur du tenant
not_permitted_acl (403) sur Ingérer ou SupprimerVous n'êtes pas dans l'ACL writers de la baseAjoutez votre identité à writers dans Contrôle d'accès
not_found (404) sur une base qui existeVotre identité n'est pas dans l'ACL readersDemandez au propriétaire de vous ajouter à readers
conflict (409) sur CréerUne base de ce nom existe dans le tenantChoisissez un autre nom
invalid_request (400) avec chunk_overlapLe chevauchement n'est pas inférieur à la taille des segmentsBaissez Chevauchement des segments
file_blocked (422) sur IngérerL'antivirus, YARA ou la validation a refusé le fichierVoir Sécurité des fichiers
unsupported_media (422) sur IngérerL'extracteur ne sait pas lire ce type MIMEConvertissez le fichier (PDF, texte, formats bureautiques)
embedding_dimension_mismatch (409)Les vecteurs n'ont pas la taille attendue par la baseRéindexez avec les bonnes Dimensions
vector_store_unavailable (503)La base vectorielle (Qdrant) ne répond pasVérifiez le service de base vectorielle, puis réessayez

Pages liées​