Ce projet est un système simple de Génération Augmentée par Récupération (RAG) capable de charger des documents, de les indexer et de répondre aux questions des utilisateurs en se basant sur leur contenu. Il prend en charge plusieurs formats de documents, génère des embeddings, les stocke dans une base de données vectorielle et récupère le contexte le plus pertinent pour chaque requête. L'assistant utilise ensuite un LLM pour produire des réponses précises et contextualisées.
Le système intègre une base de données vectorielle persistante avec ChromaDB, des embeddings sémantiques générés via HuggingFace SentenceTransformers, ainsi que plusieurs fournisseurs de modèles de langage (LLM) pour créer un pipeline de question-réponse robuste et flexible. En combinant recherche et génération dans un flux unique, l'assistant garantit que les réponses restent fidèles aux documents sources tout en bénéficiant de la fluidité et de la compréhension naturelle des LLM modernes.
Ce système fonctionne essentiellement comme : « Un assistant de type ChatGPT qui comprend vos documents et y puise ses réponses. »
Cet assistant IA est conçu comme un pipeline complet de Génération Augmentée par Récupération (RAG), permettant aux utilisateurs d'interroger de manière interactive des documents stockés localement. Plutôt que de s'appuyer uniquement sur les connaissances générales d'un modèle de langage, l'assistant garantit que chaque réponse est explicitement en relation avec le contenu pertinent extrait d'une base de données vectorielle, améliorant ainsi la précision et la pertinence contextuelle.
Le système fonctionne en ingérant des documents non structurés (fichiers ".txt" locaux) et en les transformant en une base de connaissances interrogeable. Lors de l'ingestion, les documents sont automatiquement chargés et segmentés en morceaux plus petits (chunks) dotés d'un sens sémantique. Ces segments sont convertis en représentations vectorielles numériques grâce à des embeddings basés sur les Transformers, permettant une récupération efficace par similarité lorsqu'un utilisateur soumet une requête.
Une fois la base de données vectorielle alimentée, les requêtes des utilisateurs sont traitées via un mécanisme de recherche sémantique qui identifie les segments de documents les plus pertinents. Le contenu récupéré est ensuite combiné dynamiquement avec la question de l'utilisateur et transmis à un modèle de langage (LLM) pour la génération de la réponse. Cette approche permet à l'assistant de produire des réponses fluides en langage naturel tout en restant strictement fidèle aux documents sources.
Pour renforcer la robustesse et la fiabilité opérationnelle du système, l'assistant prend en charge Groq comme fournisseur LLM.

Ce projet est structuré comme suit :
Préparation des documents – Ajout de vos propres fichiers dans le répertoire de données (data).
Chargement des documents – Importation des fichiers depuis le système local vers l'application.
Découpage du texte (Chunking) – Division des documents en segments plus petits et indexables.
Ingestion des documents – Traitement et stockage des segments dans la base de données vectorielle.
Recherche par similarité – Identification des documents les plus pertinents en fonction de la requête utilisateur.
Modèle de Prompt RAG (Template) – Conception de prompts optimisés pour guider le LLM.
Pipeline de requête RAG – Exécution du flux complet pour générer une réponse basée sur le contexte récupéré.
RAG-Based-AI-Assistant-LangChain/
├── src/
│ ├── app.py # Main RAG application
│ ├── vectordb.py # Vector database wrapper
├── data/ # Sample publications
│ ├── artificial_intelligence.txt
│ ├── biotechnology.txt
│ ├── climate_science.txt
│ ├── quantum_computing.txt
│ └── sample_documents.txt
│ └── space_exploration.txt
│ └── sustainable_energy.txt
├── .gitignore
├── LICENSE
├── README.md # This guide
└── requirements.txt # All dependencies included
Clone le repository:
git clone https://github.com/ibrahimasorydiallo1/RAG-Based-AI-Assistant-LangChain.git cd RAG-Based-AI-Assistant-LangChain
Installe les dépendances:
pip install -r requirements.txt pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
Prépare ta Groq API key:
Crée un fichier .env à la racine du projet et stocke API key dans .env:
GROQ_API_KEY=the-api-key-here
Lien pour générer une API key Groq.



Une fois ce projet terminé, nous sommes désormais capables de :
✅ Comprendre l'architecture RAG et le flux de données.
✅ Implémenter des stratégies de découpage de texte (chunking).
✅ Manipuler des bases de données vectorielles et des embeddings.
✅ Développer des applications dopées à l'IA avec LangChain.
✅ Gérer plusieurs fournisseurs d'API (Groq, HuggingFace, etc.).
✅ Créer des applications d'IA prêtes pour la production.
Notre implémentation est complète car :
✅ Nous pouvons charger nos propres documents.
✅ Le système segmente et vectorise les documents automatiquement.
✅ La recherche renvoie des résultats pertinents.
✅ Le système RAG génère des réponses contextualisées.
✅ Nous pouvons poser des questions et obtenir des réponses cohérentes
La sécurité est assurée contre les questions hors-sujet, les hallucinations, etc...comme par exemple:

De plus, si la réponse à une question ne se trouve pas dans les documents, l'assistant IA la cherche sur internet comme par exemple:


Si l'assistant ne trouve rien, il dit simplement "Je ne sais pas".

Ibrahima Sory DIALLO
Etudiant en Bachelor IA / DATA
Disponible sur linkedin https://www.linkedin.com/in/ibrahima-sory-diallo-isd/
Tags:
Retrieval-Augmented Generation (RAG)
Français
French
Agentic AI
LLM Applications
ChromaDB
LangChain
Vector Databases
Document Question Answering
NLP Systems
Generative AI