Application web Java (Spring Boot) avec interface JSP, connectée à un moteur IA Python pour offrir une expérience de chatbot conversationnel intelligent.
🔗 Projet lié : cette application consomme l'API du moteur IA développé dans
chat_nlp(Python/Flask). Les deux projets forment un système complet : interface Java/JSP (ce repo) → API Python IA → réponse intelligente.
Développé dans le cadre d'un stage d'été chez Smartech (06/2025 – 07/2025).
Utilisateur (interface JSP)
↓
Spring Boot — ChatService
↓ requêtes HTTP
Serveur Flask (chat_nlp) — http://localhost:5000/predict
↓
Moteur IA Python (auto-apprentissage, FastText, Together AI)
↓
Réponse retournée à l'utilisateur
Rôle de ce repo (Java) : fournir l'interface utilisateur (JSP) et faire le pont entre l'utilisateur et le moteur IA via un service dédié.
Rôle du repo chat_nlp (Python) : héberger toute l'intelligence conversationnelle (voir README de ce repo pour le détail du fonctionnement : apprentissage initial, auto-apprentissage, mémoire, détection de langue).
Le service Java ChatService envoie des requêtes HTTP vers l'API Flask exposée par chat_nlp :
http://localhost:5000/predict
Ce découplage permet de séparer clairement :
- l'interface et la logique métier (Java, Spring Boot, JSP) — ce repo
- l'intelligence conversationnelle (Python, IA, NLP) — repo
chat_nlp
Concrètement : l'utilisateur pose une question via l'interface JSP → Spring Boot transmet la requête au serveur Flask → le moteur IA (Python) génère ou récupère une réponse → celle-ci est retournée jusqu'à l'utilisateur.
Résultat : deux technologies connectées ensemble — Java pour l'application, Python pour le moteur IA.
- Apprentissage initial — un fichier
response.csvcontient des phrases connues et leurs réponses (ex : "bonjour" → "Bonjour ! Comment puis-je vous aider ?") - Auto-apprentissage — si la phrase est inconnue, le chatbot propose de l'apprendre
- Génération IA — appel au modèle Ollama via l'API Together AI pour générer une réponse
- Validation avant enregistrement — confirmation demandée avant toute sauvegarde
- Mémoire conversationnelle — les réponses validées sont enregistrées pour un accès instantané ultérieur
- Détection automatique de langue — via FastText, adaptation des réponses (arabe, français, anglais...)
(Détails complets et code de ces fonctionnalités : voir le repo chat_nlp)
Backend : Java, Spring Boot Frontend : JSP Communication : REST API (HTTP) vers le serveur Flask Build : Maven
./mvnw spring-boot:runchat_nlp doit être lancé au préalable (python app.py) pour que l'application puisse communiquer avec le moteur IA.
├── src/ # Code source Java (ChatService, contrôleurs, JSP)
├── .mvn/wrapper/ # Maven wrapper
├── pom.xml # Dépendances Maven
├── mvnw / mvnw.cmd # Scripts Maven
└── README.md