rag_perso / README.md
Clement33's picture
Update README.md
5d4b341 verified
|
Raw
History Blame Contribute Delete
2.62 kB

A newer version of the Gradio SDK is available: 6.26.0

Upgrade
metadata
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 :

                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.