Moteur d'intelligence artificielle en Python (Flask) pour un chatbot auto-apprenant et multilingue, exposé via une API REST.
🔗 Projet lié : ce moteur constitue le backend IA consommé par l'application Java Spring Boot
spring_chatbot_smartech. Les deux projets forment un système complet : interface Java/JSP → API Python (ce repo) → réponse intelligente.
Développé dans le cadre d'un stage d'été chez Smartech (06/2025 – 07/2025).
1. Apprentissage initial
Un fichier response.csv contient des phrases connues avec leurs réponses associées (ex : "bonjour" → "Bonjour ! Comment puis-je vous aider ?").
2. Auto-apprentissage Si une phrase posée n'existe pas dans le CSV, le chatbot le signale et propose de l'apprendre.
3. Génération de réponse via IA Si l'utilisateur confirme, le modèle Ollama (via l'API Together AI) génère automatiquement une réponse adaptée.
4. Validation avant enregistrement Avant toute sauvegarde, une confirmation est demandée à l'utilisateur — évite de polluer la base avec des réponses non désirées.
5. Mémoire conversationnelle
Une fois validée, la paire question/réponse est enregistrée dans response.csv : la prochaine fois, la réponse est instantanée, sans nouvel appel API.
6. Détection automatique de langue
Le modèle FastText (lid.176.ftz) détecte automatiquement la langue de l'utilisateur (arabe, français, anglais) pour adapter la réponse.
Ce moteur Python est exposé en local via une route Flask (http://localhost:5000/predict).
L'application Java (spring_chatbot_smartech) envoie ses requêtes à cette route via un service dédié (ChatService), permettant à une interface JSP de dialoguer avec ce moteur IA.
Utilisateur → Interface JSP → Spring Boot (ChatService) → API Flask (ce repo) → Réponse IA
Ce découplage permet de séparer clairement :
- la logique métier / interface (Java, Spring Boot)
- l'intelligence conversationnelle (Python, IA)
Langage & Framework : Python, Flask IA / NLP : FastText (détection de langue), Together AI (Ollama) pour la génération de réponses Données : CSV (mémoire conversationnelle)
pip install -r requirements.txt
python app.pyLe fichier requirements.txt contient toutes les bibliothèques nécessaires au projet.
├── app.py # Point d'entrée Flask
├── chatbot_predict.py # Logique de prédiction/génération de réponse
├── lang_detect.py # Détection de langue (FastText)
├── lid.176.ftz # Modèle FastText pré-entraîné
├── response.csv # Mémoire conversationnelle
├── pending.json # Phrases en attente de validation
└── requirements.txt