Préparer les documents pour le RAG : corriger la source avant de modifier le prompt
Récupérez les documents d’une base de connaissances connectée ou d’un site d’aide public, puis vérifiez le texte extrait, les versions et les limites des segments avant de les indexer pour le RAG.
Votre assistant cite encore une ancienne règle de la base de connaissances ou oublie une partie d’un tableau ? Beeuni peut lire les documents d’origine, repérer les copies obsolètes et les erreurs d’extraction, puis préparer le texte corrigé pour votre index de recherche. Un guide de livraison nous servira d’exemple pour voir quoi vérifier et quels fichiers exporter.
La génération augmentée par récupération, ou RAG, recherche des passages pertinents dans vos documents et les transmet au modèle lorsqu’il répond à une question. Ces passages, souvent appelés « chunks », sont de petites sections préparées pour la recherche. Un agent Beeuni peut rassembler des documents depuis votre base de connaissances connectée ou un site d’aide public, en extraire le texte et exécuter des scripts pour préparer ces passages. Votre application les indexe et les recherche ensuite avec les outils de votre choix.
Rassemblez les connaissances là où elles se trouvent
Pour un site d’aide public, donnez à l’agent une URL de départ et indiquez les sections à inclure. Demandez-lui de suivre les liens pertinents, d’enregistrer le texte des articles et de signaler les pages qu’il n’a pas pu ouvrir. Pour une documentation privée, connectez le service et accordez l’accès à la collection souhaitée. Une URL privée ne suffit pas à rendre la page consultable.
Conservez un manifeste de collection indiquant, pour chaque page ou document, sa référence, son titre, la date de récupération et les informations de version fournies par la source. Un commit de dépôt peut identifier un instantané de la documentation ; une page d’aide en ligne peut nécessiter une copie enregistrée séparément. Avant de préparer un nouvel export, l’agent peut comparer cet inventaire au précédent afin de repérer les pages modifiées, supprimées et nouvellement découvertes.
Commencez par une question à laquelle l’application répond mal
Recherchez dans le document original le passage qui devrait répondre à la question. Comparez cette page au texte extrait et au segment renvoyé par la récupération. Vous pourrez ainsi distinguer un problème d’extraction d’un problème de récupération. Si le passage correct est parvenu au modèle, examinez la façon dont la réponse l’a utilisé.
| Ce que vous observez | Ce qu’il faut vérifier | Ce qu’il faut modifier |
|---|---|---|
| Une valeur sans son unité | Les en-têtes du tableau et les cellules adjacentes | Conserver les en-têtes et les unités avec les lignes concernées |
| Une réponse fondée sur une ancienne règle | Les versions des documents et les dates d’entrée en vigueur | Supprimer le texte remplacé ou rendre explicite le filtrage par version |
| Une phrase coupée en plein milieu | Les limites des segments dans le texte exporté | Découper aux limites des sections ou des paragraphes lorsque c’est possible |
| Des éléments de navigation répétés dans les résultats | Les en-têtes, pieds de page et menus des pages | Supprimer les éléments répétitifs sans effacer les notes substantielles |
| Aucun passage correspondant | La couverture de l’extraction et les résultats de récupération | Récupérer le texte manquant, puis retester l’indexation et la récupération |
Un en-tête de tableau peut changer la réponse
Imaginez un guide d’expédition contenant un tableau intitulé « Délai de livraison, en jours ouvrés après l’expédition ». La ligne du service standard indique « 3–5 ». Une extraction qui ne conserve que « Standard : 3–5 » a perdu à la fois l’unité et le point de départ. Le modèle doit alors deviner si ce nombre désigne des jours, un prix ou autre chose.
Example of a passage with its context preserved:
Document: Shipping guide
Section: Delivery estimates
Service: Standard
Delivery time: 3–5 business days after dispatch
Source: sample-shipping-guide.pdf, page 2Ce passage peut permettre de répondre à la question « Combien de temps prend la livraison standard après l’expédition ? ». En revanche, il ne suffit pas à répondre à « Ma commande arrivera-t-elle d’ici vendredi ? » sans connaître la date d’expédition et le calendrier applicable. Incluez les deux questions dans votre évaluation : la première vérifie que le tableau a survécu à l’extraction ; la seconde, que l’application sait reconnaître les informations manquantes.
Que faut-il conserver avec chaque passage ?
Conservez un identifiant de document stable, son titre, sa section, une référence de page si elle est disponible, ainsi que sa version ou sa date d’entrée en vigueur. Pour les pages publiques, conservez l’URL source. Ces champs permettent à votre application d’afficher une citation et de distinguer deux versions au libellé similaire.
Il n’existe pas de taille de segment adaptée à toutes les collections. Une réponse courte de FAQ peut rester entière. Une longue procédure peut nécessiter plusieurs segments, chacun accompagné du titre de sa section. Demandez à l’agent d’exporter un échantillon, puis lisez les segments sans ouvrir les sources. Vérifiez que les termes, les unités et les exceptions restent compréhensibles.
L’agent peut-il aussi rédiger des questions d’évaluation ?
Il peut proposer des questions à partir des documents. Avant de les utiliser pour évaluer votre application, vérifiez les réponses attendues et les passages sources. Incluez des questions dont les réponses se trouvent dans plusieurs sections, des questions portant sur des règles obsolètes et des questions auxquelles la collection ne permet pas de répondre. Gardez ce jeu d’évaluation distinct des exemples utilisés pour ajuster le système.
Suivez un échec à travers les résultats de récupération
Revenons à notre guide d’expédition fictif. Supposons que le guide actuel indique un délai de 3 à 5 jours ouvrés après l’expédition pour la livraison standard, tandis qu’un ancien guide indique 2 à 3 jours. Votre application répond « 2 à 3 jours ». Enregistrez la question, les passages récupérés dans l’ordre où ils ont été renvoyés, leurs métadonnées et la réponse. Vous pourrez ainsi déterminer à quel moment l’ancienne règle s’est introduite dans la réponse.
Si seul l’ancien guide apparaît, vérifiez si la nouvelle version a été importée et si un filtre de version l’a exclue. Si les deux versions apparaissent, examinez comment l’application les départage. Si le passage correct arrive sans son en-tête, corrigez l’extraction ou les limites des segments. Si le passage complet et à jour parvient au modèle, mais que la réponse omet toujours « jours ouvrés après l’expédition », examinez la génération de la réponse. Une nouvelle extraction de la collection ne résoudrait pas ce dernier problème.
Conservez cette trace avec le cas d’évaluation. Après une modification, comparez les passages ainsi que la réponse. Une réponse plausible peut masquer un échec de récupération lorsque le modèle connaît déjà un fait similaire. Il risque alors d’échouer à la prochaine question portant sur une règle propre à vos documents.
Testez la taille des segments avec vos questions d’évaluation
Des segments plus grands peuvent préserver une procédure et ses exceptions, mais ils ajoutent aussi au prompt du texte sans rapport. Des segments plus petits peuvent faciliter la récupération d’un fait tout en le séparant de la condition qui le rend vrai. Le chevauchement peut aider aux limites, mais il risque de remplir plusieurs emplacements de résultats avec des passages presque identiques. Examinez les ensembles de résultats renvoyés avant de modifier ces paramètres pour toute la collection.
Pour chaque question évaluée, indiquez quels passages suffisent à étayer une réponse. Vérifiez qu’ils figurent parmi les résultats envoyés au modèle par votre application. Notez aussi les résultats non pertinents et en double. Évaluez séparément les réponses finales selon leur exactitude factuelle, leurs citations et leur prise en compte des informations manquantes. Un score global unique rend plus difficile de repérer la partie qui a changé.
Conservez les questions de test et les paramètres de récupération avec chaque export. Lorsque vous testez un texte source plus propre, commencez par utiliser la même configuration de récupération. Lorsque vous testez la taille des segments ou le classement, gardez la même version des sources. Modifier les deux à la fois peut améliorer la réponse, mais vous ne saurez pas quelle modification a été utile.
Que faut-il exporter depuis Beeuni ?
Demandez le texte nettoyé, les enregistrements des passages avec leurs métadonnées, un manifeste des sources et une liste des échecs d’extraction. Importez ces fichiers dans votre chaîne d’indexation.
Le guide de préparation des jeux de données traite des comptes rendus de vérification et de la répartition des données. Si vous devez déclencher la préparation depuis votre application, consultez utiliser Beeuni comme backend d’agent.
Autres articles
Infrastructure pour la recherche sur l’auto-amélioration récursive : exécuter et évaluer des agents qui s’améliorent
Comment Beeuni aide à mener des expériences successives d’amélioration des agents : modifier le code et les instructions, lancer les tests, examiner les échecs et comparer les versions.
Utiliser Beeuni pour mener et évaluer une expérience de réglage fin d’un modèle
Demandez à un agent de préparer les données d’entraînement, de lancer une tâche de réglage fin sur l’ordinateur d’entraînement auquel vous l’avez connecté, d’examiner les échecs et de comparer les résultats du modèle.