--- title: RAG Chatbot Demo emoji: 🤗 colorFrom: blue colorTo: purple sdk: gradio sdk_version: 6.20.0 app_file: app.py pinned: false --- # RAG Assistant Assistant conversationnel basé sur une architecture **Retrieval Augmented Generation (RAG)**. Cette application permet d'interroger une base documentaire pré-indexée en combinant une recherche vectorielle, un reranking des documents et un modèle de langage. --- # Modèles utilisés | Composant | Modèle | |-----------|---------| | **LLM** | TinyLlama/TinyLlama-1.1B-Chat-v1.0 | | **Embeddings** | sentence-transformers/all-MiniLM-L6-v2 | | **Reranker** | cross-encoder/ms-marco-MiniLM-L-6-v2 | | **Recherche vectorielle** | FAISS | | **Interface** | Gradio | --- # Fonctionnement Le pipeline RAG suit les étapes suivantes : 1. La question de l'utilisateur est convertie en embedding grâce au modèle **sentence-transformers/all-MiniLM-L6-v2**. 2. Une recherche de similarité est effectuée dans la base vectorielle **FAISS** afin de récupérer les passages les plus proches. 3. Les documents retrouvés sont ensuite réordonnés (**reranking**) grâce au modèle **cross-encoder/ms-marco-MiniLM-L-6-v2** afin de conserver les passages les plus pertinents. 4. Les passages sélectionnés sont injectés dans le prompt du modèle **TinyLlama/TinyLlama-1.1B-Chat-v1.0**. 5. Le modèle génère une réponse contextualisée. Architecture : ```text Question utilisateur │ ▼ Embedding (all-MiniLM-L6-v2) │ ▼ Recherche vectorielle (FAISS) │ ▼ Top-k documents │ ▼ Reranking (CrossEncoder) cross-encoder/ms-marco-MiniLM-L-6-v2 │ ▼ Contexte optimisé │ ▼ TinyLlama-1.1B-Chat-v1.0 │ ▼ Réponse ``` ## Objectif du projet Ce projet a été développé afin d'explorer les différentes étapes de la construction d'un système RAG complet : - chargement et préparation des documents ; - création d'une base vectorielle avec FAISS ; - recherche sémantique par embeddings ; - amélioration de la pertinence grâce à un CrossEncoder (reranking) ; - génération de réponses avec un modèle de langage Hugging Face ; - interface utilisateur développée avec Gradio.