Une application web interactive construite avec Streamlit et LangChain qui permet de discuter avec des documents PDF en utilisant une architecture de génération augmentée par récupération (RAG).
- Chargement de PDF : Extraction de texte intelligente via
PyPDFLoader. - Traitement de texte : Découpage optimisé avec
RecursiveCharacterTextSplitter. - Embeddings de pointe : Utilisation des modèles HuggingFace pour transformer le texte en vecteurs.
- Base de données vectorielle : Stockage local rapide avec
FAISS. - LLM Local : Intégration avec
Ollama(ChatOllama) pour une confidentialité totale des données.
-
Cloner le projet :
git clone [https://github.com/ton-pseudo/nom-du-repo.git](https://github.com/ton-pseudo/nom-du-repo.git) cd nom-du-repo -
Créer un environnement virtuel :
python -m venv .venv source .venv/bin/activate # Sur Windows: .venv\Scripts\activate
-
Installer les dépendances :
pip install -r requirements.txt
-
Configuration locale : Assurez-vous qu'Ollama est installé et qu'un modèle (ex:
llama3oumistral) est en cours d'exécution.J'ai utilisé gemma:2b qui est un modèle léger.
Lancez l'application avec la commande suivante :
streamlit run app.py
-------------------------------------------- Architecture Technique -------------------------------------------
L'application suit le flux suivant :
Ingestion : Lecture du PDF.
Splitting : Découpage en segments cohérents.
Embedding : Vectorisation via sentence-transformers.
Retrieval : Recherche de contexte pertinent dans FAISS.
Generation : Réponse générée par le LLM via LangChain.