Améliorer la qualité du RAG grâce à une exploration web personnalisée pour Amazon Bedrock
AWS démontre l'utilisation de Crawl4AI pour prétraiter le contenu web en Markdown et métadonnées avant son ingestion dans les bases de connaissances Amazon Bedrock, afin d'améliorer la précision de la récupération.
Traduit automatiquement depuis l'original anglais.
Amazon Web Services a publié un guide technique détaillant comment améliorer les applications de Génération Augmentée par Récupération (RAG) en prétraitant le contenu web avant son ingestion. Le tutoriel, sorti en novembre 2026, explique comment les développeurs peuvent utiliser l'outil open source Crawl4AI pour nettoyer et structurer les données avant de les injecter dans les bases de connaissances Amazon Bedrock. Cette approche cible les scénarios où les explorateurs par défaut échouent à isoler les informations pertinentes ou manquent de contexte métadonné.
Ce qui s'est passé
La construction de systèmes RAG efficaces repose largement sur la qualité des données ingérées. Les bases de connaissances Amazon Bedrock offrent un service géré qui prend en charge l'indexation, le stockage et la récupération, incluant un explorateur web intégré pour les sites publics. Bien que ce connecteur géré soit suffisant pour de nombreux cas d'usage, il opère dans des limites strictes. Il respecte les fichiers robots.txt et capture les modifications via des synchronisations programmées, mais ne permet pas de personnaliser en profondeur la manière dont le contenu des pages est analysé ou filtré avant son entrée dans le magasin vectoriel.
Pour les organisations nécessitant un contrôle plus fin, AWS propose un flux de travail hybride. Au lieu de dépendre uniquement du connecteur géré, les développeurs peuvent insérer une étape de préparation utilisant Crawl4AI. Cet explorateur basé sur Python extrait des régions de contenu spécifiques, supprime les éléments de navigation superflus et attache des attributs métadonnés personnalisés. Les données traitées sont ensuite stockées sous forme de fichiers Markdown et de sidecars JSON dans Amazon S3, qui sert de source de données pour la base de connaissances. Cette méthode garantit que seuls les contenus à fort signal atteignent les modèles d'incorporation, améliorant potentiellement la pertinence des réponses.
La solution fournie décrit un processus d'ingestion par lots plutôt qu'un accès web en temps réel. Elle utilise AWS Fargate pour exécuter les tâches d'exploration selon un calendrier défini, garantissant que l'infrastructure évolue automatiquement sans gestion manuelle des serveurs. Le flux de travail est conçu pour être extensible, permettant aux équipes de définir leurs propres règles d'analyse et schémas de métadonnées tout en s'appuyant sur Amazon Bedrock pour le découpage et l'incorporation lourds.
Comment cela fonctionne
Le mécanisme central implique trois étapes distinctes : extraction, préparation et ingestion. Premièrement, une règle Amazon EventBridge déclenche une tâche AWS Fargate exécutant un script Crawl4AI conteneurisé. L'explorateur visite les URL sources spécifiées et applique une stratégie de recherche en largeur avec une profondeur et des limites de pages configurables. Il utilise un filtre de contenu élagué pour supprimer les en-têtes, les pieds de page et les publicités, ne conservant que le corps principal de l'article, les titres et les tableaux. La sortie est convertie en Markdown propre, ce qui préserve mieux la sémantique structurelle pour les grands modèles de langage que le HTML brut.
Ensuite, le flux de travail génère un sidecar de métadonnées pour chaque document. Ce fichier JSON contient des attributs tels que l'URL source, l'horodatage de l'exploration et des catégories personnalisées. Ces sidecars sont téléchargés dans Amazon S3 à côté des fichiers Markdown, suivant une convention de nommage stricte où le nom du fichier de métadonnées correspond au nom du document avec une extension .metadata.json. Amazon Bedrock lit ces sidecars lors de l'ingestion, permettant aux utilisateurs de filtrer les résultats de recherche en fonction d'attributs personnalisés comme la date ou le type de contenu.
Enfin, la tâche déclenche un job d'ingestion dans les bases de connaissances Amazon Bedrock. Le service analyse le Markdown, applique la stratégie de découpage sélectionnée et crée des incorporations vectorielles. Comme le contenu est déjà nettoyé et structuré, le processus de découpage a plus de chances de produire des segments cohérents. Les utilisateurs peuvent choisir entre des stratégies par défaut, à taille fixe ou sans découpage, selon leurs besoins spécifiques de récupération. Le système indexe ensuite ces vecteurs, les rendant disponibles pour la récupération au moment de la requête avec citations.
Détails clés
- Outils : La solution utilise Crawl4AI, un explorateur Python open source, intégré aux bases de connaissances Amazon Bedrock via Amazon S3.
- Format de données : Le contenu est converti en Markdown pour préserver la structure tout en supprimant le bruit, accompagné de sidecars de métadonnées JSON.
- Infrastructure : Le processus d'exploration s'exécute sur AWS Fargate, déclenché par Amazon EventBridge selon un calendrier configurable.
- Limites de métadonnées : Chaque sidecar de métadonnées doit rester inférieur à 10 Ko ; dépasser cette limite entraîne l'échec du téléchargement.
- Stratégies de découpage : Les utilisateurs peuvent sélectionner des options par défaut, à taille fixe ou sans découpage lors de la configuration de la source de données, mais ne peuvent pas les modifier ultérieurement sans créer une nouvelle source.
- Authentification : L'implémentation d'exemple ne prend en charge que les sites web publics ; les sites authentifiés nécessitent des examens de sécurité supplémentaires et une gestion de session.
Pourquoi c'est important
Pour les ingénieurs logiciels développant des produits IA, la différence entre une réponse utile et une hallucination réside souvent dans l'hygiène des données. Les explorateurs web par défaut ont tendance à ingérer des pages entières, y compris les menus de navigation, les bannières de cookies et les liens de pied de page. Ce bruit dilue la signification sémantique du contenu, entraînant de moins bons scores de récupération. En prétraitant les données avec des outils comme Crawl4AI, les équipes peuvent s'assurer que le magasin vectoriel ne contient que les informations auxquelles les utilisateurs tiennent réellement. Cela conduit à des réponses plus précises et réduit le nombre de jetons requis pour les fenêtres de contexte.
De plus, la capacité d'attacher des métadonnées personnalisées transforme un simple moteur de recherche en une base de données filtrée. Les développeurs peuvent étiqueter les documents avec des dates d'expiration, des codes de département ou des scores de confiance. Au moment de la requête, ces étiquettes permettent un filtrage précis, garantissant que l'IA ne référence que des informations actuelles ou autorisées. Ce niveau de contrôle est crucial pour les applications d'entreprise où la conformité et la précision sont non négociables. La nature modulaire de cette approche signifie également que les équipes peuvent remplacer l'explorateur ou le modèle d'incorporation sans réécrire toute la logique de l'application.
Ce que vous pouvez faire
- Évaluez votre pipeline RAG actuel pour identifier si le contenu web bruyant dégrade la qualité des réponses.
- Clonez le dépôt aws-samples pour Crawl4AI et Amazon Bedrock afin de tester le flux de travail dans un environnement bac à sable.
- Définissez des sélecteurs CSS clairs ou des règles d'élagage pour isoler les zones de contenu principales de vos sites web cibles.
- Concevez un schéma de métadonnées incluant des filtres utiles comme la date de publication, l'auteur ou la catégorie de document.
- Testez différentes stratégies de découpage dans Amazon Bedrock en utilisant des échantillons représentatifs pour trouver l'équilibre optimal entre contexte et précision.
- Implémentez un périmètre d'URL strict et une limitation de débit dans la configuration de votre explorateur pour respecter les conditions d'utilisation des sites web.



