Aller au contenu
Patxi Hiribarren, accueil

Interroger la documentation interne d'une PME avec un assistant IA

Procédures, fiches techniques, contrats : comment rendre tout ça interrogeable en langage naturel, sans perdre la main sur vos données.

Patxi Hiribarren4 min de lecture

Le problème

Dans beaucoup de PME, la connaissance est éparpillée : un serveur de fichiers, des PDF, des e-mails, des tableurs, et la mémoire de deux ou trois personnes clés. Quand un nouveau salarié cherche « la procédure de retour fournisseur », il ne fouille pas le serveur : il demande à un collègue, qui s'interrompt.

Un assistant IA branché sur ces documents peut répondre à ce genre de question en quelques secondes, en citant ses sources. À condition de bien le construire : un assistant qui invente une procédure fait plus de dégâts qu'une recherche infructueuse.

Le principe : la recherche augmentée

On ne « réentraîne » pas un modèle sur vos documents. C'est long, coûteux, et il faudrait recommencer à chaque mise à jour. On utilise plutôt une technique appelée RAG (retrieval-augmented generation, génération augmentée par la recherche) :

  1. on découpe vos documents en passages de quelques paragraphes ;
  2. on calcule pour chaque passage une représentation numérique de son sens (un embedding) et on la range dans un index ;
  3. à chaque question, on retrouve les passages dont le sens est le plus proche ;
  4. on donne ces passages au modèle, avec une consigne claire : répondre uniquement à partir d'eux, et dire quand l'information n'y est pas.
  1. 1Vos documents
  2. 2Découpage et index
  3. 3Passages pertinents
  4. 4Réponse et sources
Le modèle ne répond qu'à partir des passages retrouvés : c'est ce qui limite les inventions et permet de citer la source.

L'avantage est double : quand un document change, il suffit de le réindexer, et chaque réponse peut renvoyer vers le document d'origine pour vérification.

Ce que ça demande côté application

Le cœur technique tient en peu de lignes. Avec PostgreSQL et l'extension pgvector, la recherche des passages les plus proches est une simple requête :

// 1. Retrouver les passages les plus proches de la question
const { rows: passages } = await db.query(
	`SELECT contenu, source FROM passages
	 WHERE service = ANY($2)
	 ORDER BY embedding <=> $1
	 LIMIT 5`,
	[await embed(question), servicesAutorises(utilisateur)]
);
 
// 2. Répondre uniquement à partir de ces passages, en citant les sources
const reponse = await modele.generer({
	consigne: "Réponds uniquement à partir des extraits fournis. Si l'information n'y est pas, dis-le.",
	question,
	extraits: passages,
});

Le gros du travail est ailleurs :

  • Le découpage. Un passage trop court perd son contexte, un passage trop long noie l'information. Les tableaux, les listes et les titres demandent un traitement particulier.
  • Les droits d'accès. Tout le monde ne doit pas pouvoir interroger les contrats ou les documents RH. Le filtre se fait avant la recherche (la clause WHERE ci-dessus), jamais après.
  • La fraîcheur. Un document modifié ou supprimé doit être réindexé ou retiré automatiquement.
  • L'interface. Afficher les sources, permettre de signaler une mauvaise réponse, rester honnête quand l'assistant ne sait pas.

Cloud ou local ?

Pour des documents internes, la question de l'hébergement se pose tout de suite. Les deux briques (calcul des embeddings et génération de la réponse) peuvent être placées à des endroits différents :

  • Tout dans le cloud : mise en route rapide, réponses de très bonne qualité. Il faut vérifier les conditions du fournisseur (localisation des serveurs, non-réutilisation des données pour l'entraînement).
  • Tout en local : les documents ne quittent pas vos serveurs. Il faut une machine adaptée, et les modèles qu'on peut faire tourner sur place sont en général moins fins sur les questions complexes.
  • Hybride : index et embeddings chez vous, génération chez un fournisseur européen, par exemple. Seuls les quelques passages utiles à une question sortent.

Le bon choix dépend de la sensibilité des documents, du volume de questions et du niveau de qualité attendu. J'en parle plus en détail dans IA locale ou cloud : comment choisir.

Les pièges à éviter

  • Indexer des documents obsolètes. L'assistant les citera avec aplomb. Faire le ménage avant d'indexer est souvent la première étape du projet.
  • Oublier les droits. C'est le risque le plus sérieux, et il se règle dès la conception.
  • Masquer les sources. Sans elles, impossible de vérifier, et la confiance s'effondre à la première erreur.
  • Viser tout le fonds documentaire d'un coup. Un service pilote et un type de document permettent de mesurer la qualité réelle avant d'étendre.

Par où commencer

Choisissez un périmètre où la recherche d'information coûte vraiment du temps (le support client, l'atelier, l'accueil des nouveaux arrivants) et rassemblez une vingtaine de questions réelles, avec leurs bonnes réponses. Elles serviront à tester un prototype sur vos vrais documents et à mesurer objectivement s'il est assez fiable pour être déployé.

Ce cas ressemble au vôtre ?Développement avec intégration IA

Un process qui vous prend trop de temps ? Parlons-en.

Écrivez-moi ou appelez-moi pour convenir d'un premier échange de 30 minutes, sans engagement.