Transformer N’importe Quel Site Web en Connaissance pour LLM en Quelques Secondes – Guide Complet

Transformer N’importe Quel Site Web en Connaissance pour LLM en Quelques Secondes – Guide Complet

Il y a quelque temps sur ma chaîne, j’ai présenté Crawl for AI, un outil open-source incroyable qui vous permet d’explorer pratiquement n’importe quel site web pour le transformer au format parfait pour les connaissances de vos agents d’IA basés sur les LLM. Les retours que j’ai reçus sur cette vidéo ont été extraordinaires. Beaucoup d’entre vous ont commencé à utiliser Crawl for AI pour vos propres projets, tout comme je l’ai fait pour Archon, mon constructeur d’agents d’IA open-source.

Aujourd’hui, je souhaite aller beaucoup plus loin avec Crawl for AI, car plusieurs questions récurrentes concernaient la gestion de différents types de sites web. Parfois, nous disposons d’un sitemap qui nous montre les différentes URLs à explorer. D’autres fois, nous devons les identifier nous-mêmes à partir de la navigation. Et désormais, nous avons ce nouveau concept d’LLM.ext où le site web nous fournit une page unique contenant toute la documentation spécifiquement formatée pour nos LLMs.

Je vais vous montrer comment gérer tous ces différents scénarios avec Crawl for AI, afin que vous puissiez intégrer n’importe quel type de connaissance dans vos LLMs en quelques secondes.

La puissance de Crawl for AI

Voici la page d’accueil de la documentation de Crawl for AI. Le lien sera disponible dans la description de cette vidéo, car c’est ma ressource pour tout le code que j’ai créé et que je vais vous montrer tout au long de cette vidéo.

J’ai déjà parlé de Crawl for AI sur ma chaîne, mais beaucoup de choses ont changé et ce projet a complètement explosé récemment. Regardez ça : il est entièrement open-source, disponible sur GitHub, et le dépôt compte actuellement 42 000 étoiles, ce qui est tout simplement incroyable. Les gens réalisent que cet outil est le meilleur dans son domaine.

L’extraction de données du web pour créer des connaissances pour nos LLMs est vraiment importante car une grande partie des connaissances que nous donnons à nos agents provient d’internet. Nous avons donc besoin d’un moyen d’extraire ces données efficacement et rapidement. Crawl for AI nous offre ces deux avantages. Il est incroyablement rapide, comme nous le verrons dans mes démonstrations, et il produit des données de pages web prêtes pour l’IA. Il génère ce qu’on appelle le format markdown, qui est le format optimal pour que les LLMs comprennent ces pages et en extraient des sections distinctes.

Si vous vous demandez comment des projets comme Context 7 parviennent à extraire constamment une documentation à jour pour la fournir aux assistants de codage IA, je peux garantir qu’ils utilisent quelque chose comme Crawl for AI. Et il ne serait pas surprenant qu’ils utilisent effectivement Crawl for AI pour extraire toute la documentation de Superbase, Fast API, MCP, Next.js et toutes ces différentes bibliothèques, car c’est tellement rapide et efficace.

C’est également ce que j’utilise pour Archon, mon constructeur d’agents d’IA, comme je l’ai mentionné dans l’introduction. D’ailleurs, j’ai quelques mises à jour importantes concernant Archon et des changements potentiels de plans sur lesquels j’aimerais avoir votre avis. Si vous êtes intéressé par Archon, restez jusqu’à la fin de cette vidéo pour en savoir plus.

Mise en route avec Crawl for AI

Dans la documentation de Crawl for AI sur leur page d’accueil, ils proposent un guide de démarrage rapide qui nous montre à haut niveau comment construire ce crawler et l’utiliser pour explorer pratiquement n’importe quelle URL. C’est extrêmement facile à utiliser.

Les instructions d’installation sont également très simples. Vous devez simplement avoir Python installé, puis vous pouvez exécuter :

pip install crawl-for-ai

Ensuite, exécutez leur commande de configuration pour installer le navigateur Playwright, afin que votre terminal puisse exécuter un navigateur pour extraire les pages en arrière-plan et effectuer le reste de la configuration nécessaire.

Voici un premier exemple rapide inspiré du guide de démarrage rapide. Je crée une instance d’un webcrawler asynchrone via Crawl for AI, et l’URL que je lui fais explorer est la documentation de Pantic AI.

Cette page est ce que nous allons transformer en connaissance pour LLM. En exécutant ce script, vous verrez non seulement le beau format markdown obtenu, mais aussi à quelle vitesse cela se fait.

En quelques secondes seulement, il a extrait toute cette page et l’a formatée pour nous dans un format beaucoup plus facile à comprendre pour nos agents et LLMs. Nous avons ces puces et le markdown avec les différents titres et sous-titres. Tout est très structuré pour nos agents.

C’est mon premier exemple pour vous donner les bases de l’utilisation de Crawl for AI. Mais maintenant, passons aux choses sérieuses, car je veux vous montrer ce pour quoi vous êtes vraiment venu dans cette vidéo : l’extraction de sites web entiers.

Trois méthodes pour extraire des connaissances de n’importe quel site web

Jusqu’à présent, nous avons exploré une seule page, ce qui était important pour vous montrer un exemple de base. Mais ce que nous voulons vraiment faire, c’est explorer des sites web entiers. Nous voulons extraire le markdown de chaque page disponible, puis l’intégrer à notre agent d’IA pour le RAG (Retrieval Augmented Generation) afin qu’il devienne expert sur notre boutique e-commerce ou comprenne la documentation complète de quelque chose comme Pantic AI.

Je vais maintenant vous présenter trois stratégies différentes pour explorer pratiquement n’importe quel site web :

1. Exploration via Sitemap

La première méthode principale pour explorer des sites web est via ce qu’on appelle un sitemap. De nombreux sites web le rendent disponible à l’adresse du domaine racine suivi de « /sitemap.xml ». Il peut y avoir quelques variations, mais généralement c’est « /sitemap.xml ».

Cela vous donne un document très structuré qui indique toutes les URLs disponibles pour ce site web. C’est la méthode principale que j’ai montrée dans ma précédente vidéo sur Crawl for AI pour accéder à toutes les différentes pages web disponibles sur un site donné.

2. Exploration récursive à partir de la navigation

Mais parfois, vous n’avez pas de sitemap. C’est très pratique quand c’est disponible, mais quand ce n’est pas le cas, vous avez besoin que Crawl for AI commence à partir de la page d’accueil et trouve le reste des pages via la navigation.

Il s’agit d’une exploration récursive où il parcourt ces pages et trouve tous les liens qu’il doit visiter. C’est la deuxième méthode que j’ai préparée pour vous.

3. Utilisation de LLM.ext

Enfin, de nombreux frameworks et outils, surtout dans la documentation, ont commencé à proposer ce qu’on appelle un LLM.ext. Il s’agit généralement de « /llm.ext » ou « /llm-full.ext ».

Essentiellement, ils prennent chaque page de leur documentation et les combinent en une seule page. Nous avons donc un document unique que nous pouvons intégrer dans notre programme, découper en morceaux et ajouter à notre base de données vectorielle pour le RAG. C’est littéralement de la documentation formatée spécifiquement pour la connaissance des LLM, déjà en markdown comme ce que produit Crawl for AI.

C’est la troisième méthode d’extraction de données d’un site web que je vais vous montrer avec Crawl for AI.

L’une de ces trois méthodes pourra être utilisée quel que soit le site web que vous explorez. Je vous montre vraiment ici comment extraire des connaissances pour LLM de n’importe quel site web que vous souhaitez.

Ressource GitHub complète pour toutes les méthodes

Votre ticket d’or pour explorer n’importe quelle page web avec l’une des trois méthodes que j’ai partagées avec vous, et pour le faire très rapidement, est ce dépôt GitHub que je mets à votre disposition gratuitement. Le lien sera dans la description de cette vidéo.

J’ai structuré ce dépôt avec d’abord un dossier d’exemples Crawl for AI. C’est là que je vous montre à un niveau plus granulaire comment ces différentes stratégies sont configurées pour explorer des pages web dans Crawl for AI :

  1. Exploration d’une seule page : l’exemple de base que j’ai montré plus tôt.
  2. Exploration séquentielle : traitement d’une URL à la fois.
  3. Exploration parallèle : ce qui rend Crawl for AI incroyablement rapide, c’est la possibilité d’explorer des lots d’URLs en parallèle.

Commençons par le script pour explorer les sitemaps. Il prend ce sitemap et traite des lots de ces URLs, extrayant le markdown de chacune d’elles en parallèle. Nous pouvons ensuite l’intégrer dans notre base de données vectorielle pour notre base de connaissances RAG.

Ensuite, nous avons le script pour explorer les LLM.ext. C’est beaucoup plus simple car le LLM.ext est juste une page unique avec toute la documentation. Je vous montre également dans ce script comment découper le contenu en morceaux, car nous ne voudrions évidemment pas prendre ce document massif et le déverser dans un prompt pour le LLM.

Enfin, notre dernier script est le plus complexe mais aussi le plus flexible. Nous pouvons lui donner n’importe quelle URL de site web, sans nécessité de LLM.ext ou de sitemap. Il peut explorer la page d’accueil ou toute autre page que nous lui avons donnée, puis déterminer intelligemment d’autres liens vers d’autres parties de cette page web et les explorer également.

Il le fait de manière récursive, où nous pouvons spécifier la profondeur (combien de niveaux nous voulons qu’il descende). Il peut ainsi rechercher toutes les différentes URLs que nous avons pour cette page web, essentiellement comme si nous lui avions donné un sitemap.xml.

Démonstration pratique de l’agent IA avec Crawl for AI

La principale composante de ce dépôt GitHub est un agent d’IA que j’ai créé avec un script pour insérer des documents dans sa base de connaissances, combinant les trois stratégies. Vous pouvez donner à ce script une URL et il déterminera intelligemment s’il s’agit d’un sitemap, d’un LLM.ext ou d’une page web ordinaire, puis utilisera la stratégie spécifique en fonction du type d’URL.

Tout cela est configuré avec un agent RAG Pydantic AI qui utilise Chroma DB pour sa base de données vectorielle. J’ai choisi quelque chose de simple que vous pouvez exécuter localement, c’est pourquoi j’ai opté pour Chroma DB. Mais vous pourriez évidemment utiliser Superbase, Quadrant, Pine Cone ou autre chose pour votre base de données vectorielle.

C’est un agent très simple qui utilise un outil nous permettant de rechercher toutes ces connaissances que nous donnons à notre base de données vectorielle via ce que nous extrayons avec Crawl for AI.

Dans le README de ce dépôt, je vous montre comment tout mettre en place et faire fonctionner : prérequis, instructions d’installation, configuration des variables d’environnement, utilisation des différents scripts pour configurer la base de connaissances et exécuter l’agent lui-même.

Voici une démonstration en direct. Je vais exécuter la fonction insert_docs et copier l’URL du sitemap pour Crawl for AI. Il va déterminer qu’il doit utiliser la première stratégie pour extraire tout depuis un sitemap.

Nous récupérons toutes ces URLs par lots. Je pense que j’ai une taille de lot de cinq ou quelque chose comme ça. Il explore donc cinq URL à la fois, très rapidement. Il y a pas mal de pages pour Crawl for AI. Au total, il a créé 457 morceaux qu’il insère maintenant dans Chroma DB.

En fait, l’insertion dans Chroma DB prend plus de temps que l’extraction elle-même. C’est dire à quel point Crawl for AI est rapide. Nous pourrions même configurer des lots de 10 ou 20 pour une extraction encore plus rapide.

Maintenant, je vais réexécuter le processus, mais cette fois avec la page web Pydantic au lieu du sitemap de Crawl for AI. Il va détecter qu’il s’agit d’une page web ordinaire à explorer.

Il commence par la page d’accueil, puis vérifie la navigation. Il recherche ce qu’on appelle des liens internes pour trouver toutes les différentes pages web, les parcourt et trouve encore plus de liens vers d’autres parties de la page web.

Si je définis une profondeur de trois niveaux, je ne suis pas absolument garanti de toucher chaque page web, mais vous pouvez définir cette profondeur à quelque chose comme cinq ou six si vous le souhaitez. Ainsi, vous allez pratiquement toucher toutes les pages possibles de ce site web.

Enfin, pour notre dernier test, utilisons un LLM.ext. Je vais coller le lien vers le llm.ext pour Langraph, qui est mon framework d’agent IA préféré pour orchestrer différents agents ensemble. Cette fois, il va simplement extraire cette page unique au lieu d’aller sur plusieurs pages différentes, et il va la découper en morceaux.

Maintenant que nous avons démontré toutes les méthodes, testons notre agent en lui posant quelques questions pour vérifier que toutes les connaissances que nous avons intégrées fonctionnent bien.

Plongée technique dans les stratégies d’extraction

Pour terminer, je voudrais vous donner une vue d’ensemble plus détaillée de la façon dont ces stratégies sont implémentées dans Crawl for AI.

Stratégie 1 : Exploration des sitemaps

Dans cette stratégie, nous obtenons le contenu du sitemap, puis nous extrayons toutes les URLs que nous voulons explorer. Ensuite, nous appelons la fonction crawl_parallel. Nous pouvons également déterminer combien d’URLs seront traitées dans chaque lot lors du traitement en parallèle.

Au sein de crawl_parallel, nous configurons beaucoup de choses pour gérer la mémoire de notre instance Crawl for AI. Puis nous créons le webcrawler asynchrone et utilisons la fonction a_run_many au lieu de la fonction a_run de base. Cela nous permet d’explorer de nombreuses URLs en parallèle avec ces lots que nous avons configurés.

Stratégie 2 : Exploration des LLM.ext

Pour cette stratégie, les choses sont très différentes car nous devons simplement explorer une seule page. Nous prenons l’URL et appelons la fonction a_run, comme dans notre exemple très simple pour explorer une page.

J’ai profité de cette simplicité pour montrer également une logique un peu plus complexe pour certaines stratégies de découpage que j’ai expérimentées. Je divise le markdown en fonction des en-têtes, en découpant tous les documents basés sur les en-têtes primaires (avec un seul dièse #), puis également en fonction des sous-sections.

Stratégie 3 : Exploration récursive des sites web

Notre dernière stratégie consiste à explorer les sites web de manière récursive, car nous n’avons pas de sitemap pour nous guider ni de LLM.ext pour tout rassembler. Nous avons juste une URL unique et nous voulons déterminer dynamiquement toutes les pages que nous devons explorer en fonction de ce que nous avons dans la navigation de cette page d’accueil.

Nous passons cela dans cette fonction crawl_recursive_batch où nous avons une liste d’URLs de départ. Nous utilisons la fonction a_run_many pour explorer toutes ces URLs, parcourons ces résultats, et la partie clé de tout ce flux de travail est que nous pouvons accéder à ce qu’on appelle les liens internes dans Crawl for AI.

Nous obtenons le résultat (le markdown) de la page web, puis nous pouvons appeler result.links.get() pour obtenir les liens internes. Ils sont appelés internes car nous recherchons des liens où le domaine est le même que la page originale que nous avons explorée. C’est ainsi que nous pouvons naviguer entre toutes les différentes pages du site web dans son ensemble.

Nous obtenons une liste de toutes ces URLs extraites de ces liens internes, puis nous bouclons en fonction de cette profondeur dont j’ai parlé plus tôt. Nous appelons également ces pages web, allant de plus en plus profondément, explorant tous ces liens dynamiquement au fur et à mesure, jusqu’à ce que nous atteignions cette limite de profondeur de trois, cinq ou autre.

Finalement, nous avons un tas de markdown provenant de tous ces différents sites web que nous avons visités et que nous pouvons retourner. Cela construit essentiellement un sitemap dynamiquement au fil du temps.

L’avenir d’Archon – Votre avis compte

La dernière chose dont je veux parler, qui est très liée à ce que nous venons de couvrir avec Crawl for AI, c’est Archon. C’est mon constructeur d’agent d’IA open-source, et j’envisage d’y apporter des changements importants.

Actuellement, Archon peut à la fois ingérer de la documentation pour des choses comme Pydantic AI dans sa base de connaissances et coder l’agent lui-même. Il est polyvalent et, isolément, il suffit à créer un agent d’IA complet pour vous.

Mais ce que j’envisage de faire, c’est de le transformer en une meilleure version de quelque chose comme Context 7. Context 7 est un serveur MCP que vous ajoutez à vos assistants de codage IA pour leur donner plus de connaissances pour travailler avec différents outils et frameworks comme MongoDB, Superbase, MCP, etc.

Actuellement avec Archon, je marche un peu sur les plates-bandes des assistants de codage IA. Vous pouvez l’intégrer à Windsurf ou Cursor, mais lorsqu’il génère le code pour l’agent, l’IDE IA doit également générer le code pour le mettre dans les fichiers. Il y a donc beaucoup de travail en double, ce qui est sujet aux erreurs.

C’est pourquoi j’envisage peut-être de transformer Archon davantage en un projet spécifique à la base de connaissances, en me concentrant beaucoup plus sur le RAG pour aider les assistants de codage IA à construire des agents, plutôt que de créer lui-même le code de l’agent.

Je pense que nous obtiendrons de meilleurs résultats dans l’ensemble. Cela rendra également Archon plus extensible, car nous pourrons plus facilement y ajouter plus de documentation. Il pourra être utile pour beaucoup plus de choses que la simple construction d’agents.

C’est un changement vraiment important, car je me concentre désormais sur une composante d’Archon. Mais je pense que c’est ce qu’il y a de mieux pour l’avenir d’Archon. C’est une décision importante, alors n’hésitez pas à me faire part de votre avis dans les commentaires.

Conclusion

J’espère que cette vidéo vous a vraiment aidé à améliorer votre jeu RAG, en transformant pratiquement n’importe quel site web et en l’intégrant dans votre base de données vectorielle. J’ai également beaucoup plus de contenu RAG à venir, couvrant notamment différentes stratégies que je n’ai pas beaucoup abordées sur ma chaîne auparavant.

Je veux vraiment couvrir des sujets comme le RAG hiérarchique, la récupération contextuelle, l’expansion de requêtes, le classement de lecture. Il existe tellement de stratégies différentes qui s’accordent bien avec ce que nous venons de couvrir avec Crawl for AI. Restez donc à l’écoute pour cela.

Si vous avez apprécié ce contenu et que vous attendez avec impatience plus de choses sur le RAG et les agents d’IA, je vous serais vraiment reconnaissant de laisser un like et de vous abonner.

Featured image by Georgie Cobbs on Unsplash