L-DAIA 2024-2025
Made by:
- Technologies Utilisées
- Qu'est-ce qu'un Système RAG ?
- Architecture du Système
- Installation et Configuration
- Préparation des Documents PDF
- Détails du Code
- Exécution du Système
Un système RAG (Retrieval-Augmented Generation) combine la récupération d’informations dans une base de données avec un modèle de génération de texte. Cela permet d’améliorer la pertinence des réponses en s’appuyant sur des documents externes en plus des connaissances pré-entraînées du LLM.
- Chargement et segmentation des documents : Les fichiers PDF sont divisés en petits morceaux de texte (chunks) pour faciliter la récupération d’informations pertinentes.
- Indexation des documents : Chaque chunk est converti en un vecteur (embedding) et stocké dans FAISS.
- Recherche des informations pertinentes : Lorsqu’une question est posée, le système recherche les chunks les plus proches dans FAISS.
- Envoi du contexte au LLM : Les extraits sélectionnés sont fournis comme contexte au modèle DeepSeek-r1:1.5b.
- Génération d’une réponse : Le modèle répond en combinant les connaissances issues des documents et ses propres capacités de compréhension.
Illustration de l'architecture du système RAG :
Téléchargez et installez Ollama en suivant les instructions officielles sur ollama.com.

deepseek-r1 Model
Une fois Ollama installé, téléchargez le modèle DeepSeek-r1:1.5b en exécutant :
ollama pull deepseek-r1:1.5bCela télécharge le modèle et le rend disponible pour les requêtes locales.
Lancez Ollama en arrière-plan :
ollama serve
Cela démarre le serveur local sur localhost:11434. Pour vérifier si le modèle fonctionne correctement, exécutez :
curl -X POST http://localhost:11434/api/generate -d '{"model": "deepseek-r1:1.5b", "prompt": "Quelle est la capitale de la France ?"}'Si le modèle est bien lancé, il doit répondre "Paris".
Ajoutez les fichiers PDF dans le dossier data/. Ces documents seront utilisés pour répondre aux questions.
-
load_documents()→ Charge tous les fichiers PDF et extrait leur texte. -
split_documents()→ Divise les documents en extraits de 1000 caractères avec un chevauchement de 200 caractères pour éviter la perte d’informations. -
calculate_chunk_ids()→ Assigne un ID unique à chaque extrait, au format :
<nom_fichier>:<numéro_page>:<index_extrait>
-
load_or_create_faiss()→ Stocke et récupère les embeddings des documents en utilisant FAISS. -
clear_database()→ Supprime la base de données FAISS pour réinitialiser le système si nécessaire.
query_ollama()→ Envoie les extraits récupérés comme contexte à DeepSeek-r1:1.5b.
pip install -r requirements.txtpython main.pypython main.py --reset- MERCI -
more info Local-Rag Repo on Github or Contact @REp007





