RAG Framework From Scratch

RAG Framework From Scratch

Développement d'un framework RAG (Retrieval-Augmented Generation) complet à partir de zéro, permettant d'interroger des documents personnels avec une précision accrue grâce à l'intégration de bases de données vectorielles et de modèles de langage.

Contributeurs

Boris TAKOU KENNE

Compétences

LLM

Python

Vector DB

RAG

LangChain

Publié

Mars 2026

Liens importants

GitHub

Contexte du projet

Les LLMs sont entraînés sur de vastes volumes de données, mais ces données restent statiques.
Cela limite leur capacité à raisonner sur des informations récentes, spécifiques ou propriétaires.

Une solution consiste à faire du fine-tuning, mais cette approche est souvent coûteuse, longue à mettre en place et difficile à maintenir.

C’est ici qu’intervient le RAG (Retrieval-Augmented Generation).

Le RAG est un mécanisme qui permet d’étendre la base de connaissances d’un LLM en récupérant dynamiquement des informations depuis vos propres données (documents, bases internes, PDFs, etc.) pour enrichir la génération de réponse.

Dans ce projet, j’utilise LangChain, un framework open-source conçu pour construire des applications basées sur des LLMs et orchestrer des pipelines intelligents (chargement de documents, indexation, recherche sémantique, génération).

À travers ce projet, je compte approfondir trois axes principaux :

📚 Document Indexing – structurer et vectoriser les documents pour les rendre exploitables


🔎 Semantic Search – récupérer les informations les plus pertinentes via des embeddings


🧠 LLM Generation – générer des réponses contextualisées et fiables

Étapes du projet

1

Charger les documents (Document Loading)

En cours
Récupération des données pour les transformer en transformer tes données en objets Document
2

Découper les documents (Text Splitting)

À faire
Un LLM ne digère pas 200 pages d’un coup donc découpe en petits chunks intelligents
3

Transformer en embeddings

À faire
Chaque chunk devient un vecteur numérique.
4

Stocker dans une base vectorielle

À faire
On range ces vecteurs dans une Vector Database comme ChromaDB, FAISS etc.
5

Retrieval (Recherche sémantique)

À faire
On transforme la question en embedding puis on cherche les vecteurs les plus proches enfin on récupère les chunks correspondants
6

Augmentation du prompt (Augmented Prompt)

À faire
On construit un prompt structuré pour enrichir la requête utilisateur avec les informations pertinentes.
7

Génération avec le LLM

À faire
On envoie ce prompt enrichi au modèle pour générer des réponses précises et sourcées en se basant sur les documents récupérés.