jdalfonso/repilot-recycling-chatbot
RePilot Recycle Chatbot 🤖♻️
         
Table des matières
Présentation
RePilot est un chatbot intelligent spécialisé dans le tri des déchets. Utilisant le RAG (Retrieval-Augmented Generation) et l'API Mistral, il fournit des réponses contextualisées selon la ville de l'utilisateur tout en mesurant son impact environnemental (choix de la taille du modèle).
Fonctionnalités
- 🎯 RAG Intelligent
- Reformulation automatique des questions
- Réponses basées sur le contexte local (Système de tri des déchets selon la ville Paris/Grand Métropoel de Lyon)
- Système de garde-fou pour requêtes inappropriées
- 📊 Monitoring Complet
- Suivi de la latence des requêtes
- Mesure de l'impact environnemental (GWP)
- Analyse de la consommation d'énergie
- Calcul des coûts par requête
- 🗄️ Choix du Data Warehouse
- PostgreSQL : Base de données relationnelle puissante pour le scaling
- MongoDB : Base NoSQL adaptée aux instructions de recyclage (clé:valeur) pour un apprentissage efficace du RAG
- ChromaDB : Stockage des vecteurs (embeddings) en chunks avec SentenceTransformer
- 👥 Gestion Utilisateurs
- Interface admin dédiée
- Système de quiz interactif
- Historique des conversations
- Feedback utilisateur
Architecture du projet
Installation
Vous avez deux façons d'initialiser localement le projet
DOCKER
Prérequis
- Docker
- Ficher .env
MISTRAL_API_KEY=${MISTRAL_API_KEY}
HF_TOKEN=${HF_TOKEN}docker compose up --build -dLocal
Prérequis
- Python 3.11
- PostgreSQL
- Compte Mistral AI
- Un fichier
.envcontenant vos clés API (par exemple,MISTRAL_API_KEY)
Étapes d'installation
# Cloner le dépôt
git clone https://github.com/jdalfons/RePilot-recycle-chatbot.git
cd RePilot-recycle-chatbot
# Créer et activer l'environnement virtuel
python -m venv venv
source venv/bin/activate # Sur macOS/Linux
# Installer les dépendances
pip install -r requirements.txtConfiguration de la base de données
psql -U postgres -f database/init.sqlConfiguration des variables d'environnement
Créer un fichier .env et y ajouter les informations suivantes :
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=poc_rag
POSTGRES_USER=your_user
POSTGRES_PASSWORD=your_password
MISTRAL_API_KEY=your_api_keyUtilisation
streamlit run app.pyAccès
- Interface utilisateur :
- Login :
user - Password :
user123 - Dashboard admin :
- Login :
admin - Password :
admin123
Contribution
- Forker le projet
- Créer une branche :
git checkout -b feature/NouvelleFonctionnalite- Commiter vos modifications :
git commit -m "Ajout nouvelle fonctionnalité"- Pousser vers le dépôt distant :
git push origin feature/NouvelleFonctionnalite- Créer une Pull Request
Auteurs
Core Team
- Juan Diego A.
- Quentin Lim
- ADJARO
- Akrem Jomaa
- [Yacine Ayachi]()
Contributions

Merci à tous les contributeurs qui ont participé à ce projet !
