ENIAD-ASSISTANT est un chatbot intelligent basé sur l'intelligence artificielle, conçu pour fournir des informations sur les études et les services scolaires à l'ENIAD (École Nationale d'Informatique et d'Analyse des Données). Il utilise des technologies de pointe comme RAG (Retrieval-Augmented Generation) pour offrir des réponses précises et contextuelles.
- 🎯 Réponses intelligentes : Utilise RAG pour des réponses précises basées sur les documents officiels de l'ENIAD
- 💬 Interface multimodale : Support texte et voix pour une interaction naturelle
- 🌐 Multilingue : Prise en charge du français et de l'anglais
- ⚡ Recherche vectorielle : Base de données vectorielle pour une recherche rapide et précise
- 🎨 Interface moderne : Interface web responsive développée avec Next.js
- 🐳 Déploiement facile : Containerisé avec Docker pour un déploiement simplifié
- 📊 Monitoring : Logs et métriques pour le suivi des performances
Le projet est structuré en plusieurs composants :
ENIAD-ASSISTANT/
├── RAG/ # Système RAG (Retrieval-Augmented Generation)
│ ├── src/ # Code source du pipeline RAG
│ ├── data/ # Documents et données d'entraînement
│ └── app.py # Application console RAG
├── app/ # API Backend
│ ├── api/ # Endpoints API
│ └── admin/ # Interface d'administration
├── chatbot-ui/ # Interface utilisateur web
├── deploy_code/ # Scripts de déploiement
├── data/ # Données FAQ et configurations
└── docker-compose.yml # Configuration Docker
- Python 3.10+
- Node.js 18+
- Docker (optionnel)
- Git
git clone https://github.com/ennajari/ENIAD-ASSISTANT.git
cd ENIAD-ASSISTANT# Démarrer tous les services
docker-compose up -d
# L'application sera accessible sur http://localhost:8501# Installer les dépendances Python
pip install -r requirements.txt
pip install -r RAG/requirements.txt
# Configurer les variables d'environnement
cp .env.example .env
# Éditer .env avec vos configurations
# Démarrer le système RAG
cd RAG
python app.py# Installer les dépendances Node.js
cd chatbot-ui
npm install
# Démarrer le serveur de développement
npm run dev
# L'interface sera accessible sur http://localhost:3000cd RAG
python app.pyPosez vos questions directement dans la console :
Posez votre question (ou tapez 'exit' pour quitter) : Quels sont les programmes d'études disponibles à l'ENIAD ?
- Accédez à
http://localhost:3000 - Tapez votre question dans le chat
- Obtenez des réponses instantanées basées sur les documents officiels
# Exemple d'appel API
curl -X POST http://localhost:8501/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "Quels sont les frais de scolarité?"}'Créez un fichier .env à la racine du projet :
# Configuration LLM
OPENAI_API_KEY=your_openai_api_key
LLAMA_API_URL=your_llama_api_url
# Configuration Base de données
MONGODB_URI=mongodb://localhost:27017/eniad_assistant
# Configuration Application
ENV=development
PORT=8501- Ajoutez vos documents dans
RAG/data/ - Modifiez les FAQ dans
data/ - Relancez l'indexation :
cd RAG/src
python create_index.py# Tests Python
python -m pytest tests/
# Tests Frontend
cd chatbot-ui
npm test- Python 3.10+ : Langage principal
- LlamaIndex : Framework RAG pour l'indexation et la recherche
- OpenAI API : Modèles de langage pour la génération de réponses
- MongoDB : Base de données pour le stockage des conversations
- Docker : Containerisation et déploiement
- TypeScript : Typage statique
- Tailwind CSS : Framework CSS utilitaire
- React Hot Toast : Notifications utilisateur
- Docker Compose : Orchestration des services
- Jenkins : CI/CD pipeline
- Modal : Déploiement cloud des modèles LLM
- Git : Contrôle de version
- Authentification : Système d'authentification sécurisé
- Validation des entrées : Sanitisation des données utilisateur
- Rate limiting : Protection contre les abus
- Logs de sécurité : Monitoring des activités suspectes
- Variables d'environnement : Gestion sécurisée des secrets
- Logs structurés : Suivi détaillé des interactions
- Métriques de performance : Temps de réponse, taux de succès
- Analytics utilisateur : Statistiques d'utilisation anonymisées
- Health checks : Surveillance de l'état des services
# Production
docker-compose -f docker-compose.prod.yml up -dENV=production
DEBUG=false
ALLOWED_HOSTS=your-domain.com
DATABASE_URL=your-production-db-url
REDIS_URL=your-redis-url# Scaler les services
docker-compose up -d --scale web=3 --scale worker=2- ✅ Précision des réponses : >90%
- ✅ Temps de réponse : <2 secondes
- ✅ Disponibilité : 99.9%
- ✅ Support multilingue : Français, Anglais
- Phase 1 : Collecte des données et analyse des besoins
- Phase 2 : Conception du prototype et développement de la base de données
- Phase 3 : Développement de l'interface utilisateur et intégration avec le modèle
- Phase 4 : Tests et optimisation des performances
- Phase 5 : Livraison finale et documentation complète
Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour plus de détails.
- Fork le projet
- Créez votre branche feature (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- Développeur Principal :
• Ennajari Abdellah @ennajari • Ourti Abdelilah @Abdelilah04116 • Oukacha Ahmed @Ahmed-oukacha • Elhadji Oussama @Bosaj
- Institution : ENIAD (École Nationale de L'Intelligence Artificielle et du Digital de Berkane)
- 📧 Email : ai.ennajari@gmail.com
- 🐛 Issues : GitHub Issues
- 📖 Documentation : Wiki
- L'équipe pédagogique de l'ENIAD
- La communauté open source
- Tous les contributeurs du projet
Pr. Naoual Boukil Présidente Pr. Asmae Bentaleb Encadrante