Un assistant intelligent, robuste et modulaire construit avec FastAPI. Il combine la recherche sémantique (RAG) et la génération par IA (LLM) pour fournir des réponses précises et contextuelles.
- Intelligence Hybride : Moteur RAG (SentenceTransformers) + LLM (Groq) avec bascule automatique.
- Sécurité & Auth : Interface administrateur protégée par JWT (Access Tokens & Cookies).
- Dashboard Admin : Statistiques en temps réel et gestion (CRUD) de la FAQ sans redémarrage.
- Interface Moderne : UI "Glassmorphism", support Markdown et feedback utilisateur.
- Dockerisé : Déploiement facile avec Docker Compose.
- Persistance : Base de données SQLite/SQLModel pour l'historique et la FAQ.
Ce projet utilise Groq par défaut pour sa rapidité et sa gratuité, avec un fallback possible sur OpenAI.
L'API est très rapide et offre un quota gratuit généreux.
- Créez un compte sur Groq Console.
- Allez dans la section API Keys et cliquez sur Create API Key.
- Copiez votre clé (commençant par
gsk_). - Collez-la dans votre fichier
.env:GROQ_API_KEY="gsk_votre_cle_ici..."
Si vous préférez GPT-3.5/4 ou souhaitez un backup de sécurité.
- Ajoutez votre clé OpenAI dans le fichier
.env:OPENAI_API_KEY="sk-..."
- Le système utilisera automatiquement OpenAI si Groq est indisponible ou non configuré.
C'est la méthode recommandée pour tester et déployer.
1. Cloner le projet
git clone https://github.com/thanhtulearncode/ChatBot.git
cd ChatBot2. Configurer l'environnement
Créez votre fichier .env à partir de l'exemple :
cp .env.example .env
# Éditez le fichier .env pour y ajouter votre GROQ_API_KEY3. Lancer l'application
docker-compose up --build4. Initialiser la base de données (Premier lancement uniquement) Ouvrez un nouveau terminal et exécutez :
# Import de la FAQ initiale
docker-compose exec chatbot python scripts/init_db.py
# Création de l'admin
docker-compose exec chatbot python scripts/create_admin.py- Chatbot (Utilisateur) : http://localhost:8000
- Dashboard (Admin) : http://localhost:8000/api/auth/login
- Compte par défaut :
admin@chatbot.com/admin123
- Compte par défaut :
- Documentation API : http://localhost:8000/docs
Si vous préférez coder sans Docker :
# 1. Créer l'environnement virtuel
python -m venv venv
# Windows: venv\Scripts\activate | Mac/Linux: source venv/bin/activate
# 2. Installer les dépendances
pip install -r requirements.txt
# 3. Initialiser la DB
python scripts/init_db.py
python scripts/create_admin.py
# 4. Lancer le serveur
uvicorn app.main:app --reload/ChatBot
├── app/ # Cœur de l'application
│ ├── core/ # Config & Sécurité
│ ├── db/ # Modèles & Session SQL
│ ├── routers/ # Endpoints (Chat, Admin, Auth)
│ ├── services/ # Logique RAG & LLM
│ └── main.py # Point d'entrée
├── data/ # Données (DB & JSON source)
├── scripts/ # Scripts d'initialisation
├── static/ # Assets Frontend (CSS/JS)
├── templates/ # Pages HTML (Jinja2)
├── tests/ # Tests unitaires (Pytest)
├── docker-compose.yml # Orchestration Docker
└── Dockerfile # Image Python
Pour vérifier que tout fonctionne correctement (nécessite l'installation locale) :
pytestLes contributions sont les bienvenues ! N'hésitez pas à ouvrir une Issue ou une Pull Request.
Propulsé par FastAPI, SentenceTransformers & Groq.