AI Hero : Jour 1 - Ingestion et Indexation des Données
Le voyage vers la création d’un agent IA personnalisé commence par son « cerveau » — ou plus précisément, sa base de connaissances. Lors du Jour 1 du projet AI Hero, je me suis concentré sur la première étape du pipeline RAG (Retrieval-Augmented Generation) : l’Ingestion.
Voici comment j’ai construit un pipeline robuste pour récupérer, analyser et structurer la documentation technique depuis GitHub.
Construire l’Infrastructure de la Connaissance
Un agent IA n’est efficace que par la qualité des données auxquelles il a accès. Plutôt que de copier manuellement la documentation, nous nous sommes concentrés sur la création d’un système automatisé capable d’ingérer des centaines de fichiers Markdown directement depuis un dépôt GitHub.
L’objectif était de transformer des fichiers bruts .md et .mdx en un format structuré (type JSON) incluant à la fois le contenu et ses métadonnées associées.
Traitement en Mémoire avec Python
L’une des astuces les plus intéressantes que j’ai apprises est de manipuler les données entièrement en mémoire. Au lieu de télécharger un fichier ZIP sur le disque, de le décompresser et de gérer des fichiers temporaires, nous avons utilisé les modules io.BytesIO et zipfile de Python.
Cette approche est : - Plus rapide : Pas de latence liée aux entrées/sorties du disque.
- Plus propre : Pas besoin de gérer ou de supprimer des fichiers temporaires.
- Scalable : Parfait pour des fonctions cloud ou des environnements éphémères.
Extraire du Sens avec les Métadonnées (Frontmatter)
La plupart des documentations techniques utilisent du YAML Frontmatter pour stocker des métadonnées critiques comme les titres, les tags et les descriptions.
En utilisant la bibliothèque python-frontmatter, j’ai écrit un parseur qui : 1. Parcourt l’archive ZIP.
2. Identifie les fichiers de documentation pertinents.
3. Sépare le texte lisible par l’homme des métadonnées structurées.
Ces métadonnées sont cruciales pour les étapes ultérieures, car elles permettent à l’agent de filtrer les informations par catégorie ou par pertinence.
La Stack Tech Moderne : uv et plus encore
Nous avons laissé de côté les gestionnaires de paquets traditionnels et lents. À la place, nous avons utilisé : - uv : Le gestionnaire de paquets Python extrêmement rapide qui rend la configuration de l’environnement instantanée.
- requests : Pour streamer les données du dépôt directement depuis GitHub.
- python-frontmatter : Pour une extraction précise des métadonnées.
- Jupyter Notebooks : Pour l’exploration interactive de la structure des données ingérées.
Leçons Clés
- Automatisez la Source : Ne gérez jamais manuellement les données dont votre agent a besoin. Construisez un pipeline.
- La Mémoire est votre Allie : Traiter les fichiers ZIP en mémoire est un pattern professionnel qui gagne du temps et préserve les ressources locales.
- La Structure Compte : Le contenu est roi, mais les métadonnées sont la boussole qui aide votre agent à trouver le bon contenu.
- Cohérence des Outils : L’utilisation d’outils modernes comme
uvgarantit que les expérimentations sont reproductibles et rapides.
Changement d’État d’Esprit
Le Jour 1 a déplacé ma perspective de « Comment prompter le modèle ? » vers « Comment préparer les données pour le modèle ? ». Vous pouvez avoir le meilleur LLM du monde, mais si votre pipeline d’ingestion est désordonné, votre agent ne sera pas fiable.
Prochaine étape : Le Jour 2 se concentrera sur le Chunking et l’Embedding pour transformer ce texte brut en vecteurs mathématiques que l’IA peut « rechercher ».
Devoirs : Implémentation AI Hero Jour 1