Ce projet est un Proof of Concept (POC) d’un assistant conversationnel intelligent basé sur l’architecture RAG (Retrieval-Augmented Generation).
L’objectif est de permettre aux collaborateurs d’interroger la base de connaissances interne de l’entreprise (procédures, guides, politiques RH, documents métiers) de manière :
- intuitive
- sécurisée
- fiable (sans hallucinations)
- Compréhension du langage naturel
- Pas besoin de correspondance exacte de mots-clés
- Les réponses sont strictement limitées au contenu des documents fournis
- Réduction drastique des risques d’hallucination du LLM
-
Chaque réponse inclut :
- le document source
- le numéro de page
- Téléchargement direct du document PDF depuis l’interface utilisateur
-
Chargement des PDF via
PyPDFLoader -
Découpage intelligent avec
RecursiveCharacterTextSplitter- Taille des chunks : 1500 caractères
- ChromaDB pour le stockage des embeddings
- Embeddings générés via HuggingFace
- Llama 3.1
- Hébergé sur l’infrastructure Groq Cloud
- Génération rapide et performante
Avant de commencer, assurez-vous d’avoir :
- Python 3.9 ou supérieur
- Git
- Un compte Groq Cloud 👉 https://console.groq.com/home
GROQ_API_KEY=votre_cle_apigit clone https://github.com/------/Assistant_IA.git
cd Assistant_IApython -m venv env
env\Scripts\activate # Windows
# source env/bin/activate # Linux / Macpip install -r requirements.txtAssistant_IA/
├── app/ # Interface utilisateur (Streamlit)
│ └── chat.py
│
├── chroma_db/ # Base vectorielle (générée automatiquement)
│
├── ingestion/ # Pipeline d’ingestion des documents
│ ├── __init__.py
│ ├── load_docs.py # Chargement des PDF
│ ├── chunking.py # Découpage du texte
│ └── embed_store.py # Génération et stockage des embeddings
│
├── rag/ # Logique RAG
│ ├── __init__.py
│ ├── retriever.py # Recherche vectorielle
│ └── generator.py # Génération de réponse (Groq API)
│
├── Data/
│ └── Documents/ # Sources PDF
│
├── .env # Variables d’environnement (non versionné)
├── .env.example # Modèle de configuration
├── .gitignore
├── main.py # Chaîne complète d’ingestion
└── requirements.txt # Dépendances Python
Après avoir ajouté vos documents PDF dans :
Data/Documents/
Lancez :
python main.pyCela :
- charge les documents
- les découpe
- génère les embeddings
- les stocke dans ChromaDB
python -m streamlit run app/chat.pyL’interface Streamlit sera accessible depuis votre navigateur.
- Vérifiez que l’environnement virtuel est bien activé
- Relancez :
pip install -r requirements.txt- Vérifiez que des PDF sont bien présents dans
Data/Documents/ - Relancez :
python main.py- Vérifiez que le fichier
.envexiste bien - La clé doit commencer par :
gsk_
-
Ce projet est un POC et peut être étendu :
- authentification utilisateur
- gestion des rôles
- ajout d’autres formats de documents
- déploiement cloud