Agent IA conversationnel pour l'apprentissage des ouvertures aux échecs (RAG, LangGraph, MCP)
Python, LangGraph, RAG, FastAPI, Milvus, MongoDB, Angular, MCP, Computer Vision, LLM
Agent IA pour l'Apprentissage des Ouvertures aux Échecs
Présentation
Ce projet met en œuvre la conception d'un agent IA conversationnel connecté à plusieurs sources de connaissance expertes, pour le compte de la Fédération Française des Échecs. L'objectif est de guider les jeunes espoirs dans l'apprentissage des ouvertures en combinant théorie officielle (Lichess), évaluation par moteur d'échecs (Stockfish), recherche vectorielle sur une base de connaissance (RAG) et ressources vidéo pédagogiques, le tout piloté par LangGraph et exposé via une interface Angular avec échiquier interactif.
Le projet applique les bonnes pratiques de conception d'agents IA orchestrés et de RAG multimodal, en couvrant à la fois le développement d'un POC fonctionnel et l'étude de faisabilité d'une extension avancée basée sur un serveur MCP.
Objectifs
- Développer un agent IA capable de proposer les coups théoriques d'une position d'échecs et de l'évaluer si elle sort des sentiers battus.
- Enrichir l'agent avec un système RAG connecté à une base de connaissance vectorielle sur les ouvertures.
- Intégrer une recherche de ressources vidéo pédagogiques pertinentes par rapport à la position en cours.
- Construire une interface utilisateur interactive (échiquier) connectée à l'agent.
- Concevoir, sans le développer, un système avancé de recherche vidéo par position exacte (vision + FEN), porté par un serveur MCP.
Compétences démontrées
Architecture backend et orchestration d'agent
- Mise en place d'une architecture de services (FastAPI, Milvus, MongoDB, Angular) orchestrée par Docker Compose, avec endpoint de healthcheck dès l'initialisation.
- Développement d'endpoints métier (
/api/v1/moves/{fen},/api/v1/evaluate/{fen}) interrogeant successivement l'API Lichess (coups théoriques) et Stockfish (évaluation en centipawns) selon la nature de la position. - Encapsulation de la logique d'appel aux services externes dans des modules dédiés, avec gestion des erreurs et des timeouts.
- Orchestration du workflow de l'agent (récupération de contexte, recherche vectorielle, recommandation vidéo) avec LangGraph.
RAG et recherche vectorielle
- Constitution d'un jeu de données textuelles sur les ouvertures (Wikichess) et génération d'embeddings via
sentence-transformers. - Indexation et interrogation d'une base vectorielle Milvus, exposée via un endpoint de recherche sémantique (
/vector-search). - Attention portée à la qualité du chunking et à la connexion réseau entre l'API et Milvus au sein de l'environnement Docker.
Intégration de sources externes et enrichissement multimodal
- Intégration de l'API YouTube Data v3 pour la recherche de vidéos explicatives pertinentes selon l'ouverture jouée, avec gestion des quotas et filtrage qualité.
- Validation des positions et de la légalité des coups via la bibliothèque
python-chess. - Conception d'une requête intelligente combinant nom d'ouverture et mots-clés pédagogiques pour affiner la pertinence des résultats.
Interface utilisateur interactive
- Développement d'une application Angular avec échiquier interactif (
ngx-chessboard) et panneau de recommandations (coups, contexte, vidéos). - Mise en place de services Angular pour la communication avec l'API backend, avec gestion des états de chargement et des erreurs réseau.
- Synchronisation de l'état de l'échiquier avec les réponses de l'agent IA.
Industrialisation et démonstration
- Containerisation complète du système (
docker-compose.yml) orchestrant FastAPI, Milvus, MongoDB et Angular. - Vérification de la persistance des volumes Docker et test de bout en bout à partir d'une installation fraîche.
- Rédaction d'une documentation d'installation et préparation d'un scénario de démonstration client.
Étude de faisabilité d'un système avancé (vision + MCP)
- Conception (sans développement) d'un système de reconnaissance de position d'échecs à partir de vidéos : extraction de frames, détection d'échiquier, conversion en notation FEN via un modèle de vision de type board-to-FEN.
- Réflexion sur l'exposition de ce système via un serveur MCP (Model Context Protocol) pour une intégration facilitée à l'application existante.
- Rédaction d'une note de 8 à 10 pages couvrant bénéfices, limites, schéma d'architecture technique et étude de coûts (build + opex), avec identification des risques techniques et business et proposition d'alternatives.
Architecture
Interface Angular
(ngx-chessboard + panneau)
│
▼
API FastAPI
│
Orchestration LangGraph
│
┌───────────────┼───────────────┬──────────────┐
▼ ▼ ▼ ▼
API Lichess Stockfish Recherche RAG API YouTube
(coups théoriques) (évaluation) (Milvus, texte (vidéos
Wikichess) pédagogiques)
│ │ │ │
└───────────────┴───────┬───────┴──────────────┘
▼
MongoDB (persistance)
│
▼
── Étude de faisabilité (non développée) ──
Vidéos YouTube stockées
│
Extraction de frames (vision)
│
Détection échiquier → FEN
│
Serveur MCP (recherche par position)
Stack technique
Backend & orchestration d'agent
- FastAPI
- LangGraph
- python-chess, Stockfish
Données & recherche vectorielle
- Milvus, pymilvus
- sentence-transformers
- MongoDB
Sources externes
- API Lichess
- API YouTube Data v3 (google-api-python-client)
Frontend
- Angular, ngx-chessboard
Infrastructure
- Docker, Docker Compose
- Git
Étude prospective
- Model Context Protocol (FastMCP)
- Vision par ordinateur (détection d'échiquier, board-to-FEN)
Bonnes pratiques appliquées
- Architecture en services découplés, orchestrés par Docker Compose, testés dès le premier commit (healthcheck)
- Encapsulation de la logique d'appel aux APIs externes dans des modules dédiés
- Gestion explicite des erreurs, timeouts et quotas d'API
- Séparation claire entre développement du POC et étude de faisabilité prospective
- Estimation de coûts réaliste (build + opex) et identification explicite des risques techniques et business
- Documentation d'installation permettant une démonstration reproductible à partir d'une installation fraîche
Résultats
À l'issue de ce projet, le système permet de :
- proposer à un utilisateur les coups théoriques d'une position d'échecs, ou son évaluation par moteur si elle sort de la théorie ;
- enrichir chaque recommandation d'un contexte textuel pertinent via recherche vectorielle (RAG) ;
- suggérer des vidéos pédagogiques adaptées à l'ouverture en cours ;
- offrir une expérience interactive complète via une interface Angular connectée à l'agent ;
- documenter une trajectoire d'évolution crédible (recherche vidéo par position exacte via vision + MCP) appuyée par une étude de coûts.
Compétences acquises
- Conception et orchestration d'agents IA (LangGraph)
- Mise en place d'un système RAG (embeddings, base vectorielle Milvus)
- Intégration d'APIs externes multiples au sein d'un même agent (Lichess, Stockfish, YouTube)
- Développement full-stack (FastAPI + Angular) et containerisation (Docker Compose)
- Conception d'architecture technique prospective (Model Context Protocol)
- Étude de faisabilité et estimation de coûts d'un système IA (build + opex)