--- title: JDMAgent emoji: 🧠 colorFrom: purple colorTo: yellow sdk: gradio sdk_version: 5.34.0 app_file: app.py pinned: false license: mit short_description: Agent LLM sur JeuxDeMots — graphe lexical du français tags: - nlp - french - knowledge-graph - agent - mcp - langchain - factcheck - neuro-symbolic --- # JDMAgent — dĂ©mo interactive DĂ©monstration publique du projet **[JDMAgent](https://github.com/expAg/JDMAgent)** : agentification du graphe lexical **[JeuxDeMots](https://www.jeuxdemots.org)** (~2 millions de nƓuds, 180+ relations typĂ©es, construit en dix-huit ans de jeu collaboratif au LIRMM / CNRS) pour les modĂšles de langue modernes, via LangChain et le **Model Context Protocol (MCP)**. L'objectif scientifique : combiner un graphe de connaissance *typĂ©* (la ressource symbolique de JDM) avec la *crĂ©ativitĂ© linguistique* d'un LLM, en prĂ©servant la traçabilitĂ© et le dĂ©terminisme lĂ  oĂč c'est possible. Trois positions mĂ©thodologiques sous-tendent le projet — graphe typĂ© plutĂŽt que RAG vectoriel pour la connaissance lexicale, sĂ©paration stricte extraction-LLM / vĂ©rification-Python, et infĂ©rence symbolique bornĂ©e pour la consolidation. DĂ©tails et architecture complĂšte : [README sur GitHub](https://github.com/expAg/JDMAgent). --- ## Les cinq onglets de cette dĂ©mo ### 📋 Projet PrĂ©sentation synthĂ©tique du projet, des choix de design, et des liens vers la documentation dĂ©taillĂ©e. ### 🔎 Explorer JDM Interrogation directe du graphe — **aucun LLM, aucun coĂ»t d'API, instantanĂ©**. Tape un terme français (`chat`, `voiture`, `avocat`
), choisis une relation parmi les plus utiles (synonymes, hyperonymes, parties, caractĂ©ristiques, agents, lieux, etc.), et reçois la liste des triplets triĂ©s par poids dĂ©croissant. Pour les termes polysĂ©miques (`avocat`, `souris`, `police`), l'outil de dĂ©sambiguĂŻsation propose les sens disponibles et tu peux requĂȘter le sens prĂ©cis voulu via son identifiant raffinĂ©. ### ⚖ Claim checker VĂ©rification dĂ©terministe d'un triplet factuel contre le graphe JDM. Trois rĂ©gimes au choix : - **Effort 0 — contenance stricte** : *« JDM contient-il littĂ©ralement ce triplet ? »*. Pas d'infĂ©rence, rĂ©ponse rapide. - **Effort 1 — infĂ©rence noyau** : *« ce triplet est-il dĂ©ductible du graphe ? »*. Si la contenance Ă©choue, un moteur d'infĂ©rence symbolique enchaĂźne une cascade de schĂ©mas (transitivitĂ©, dĂ©duction par gĂ©nĂ©ralisation, Ă©limination par classe, contraste antonymique, etc.) bornĂ©e par un budget HTTP. - **Effort 2 — infĂ©rence complĂšte** : ajoute la composition curĂ©e de relations (R₁ ⟾ R₂ ∘ R₃ selon une carte de compositions valides). Chaque verdict (`supported` / `contradicted` / `unknown`) est accompagnĂ© de la chaĂźne de preuve — les triplets JDM rĂ©els qui le justifient, et le schĂ©ma d'infĂ©rence utilisĂ© si le verdict provient d'une dĂ©duction. La distinction contenance / infĂ©rence est toujours prĂ©servĂ©e dans la rĂ©ponse : un fait seulement dĂ©ductible n'est jamais prĂ©sentĂ© comme un contenu direct de JDM. ### đŸ•žïž Sous-graphe Visualisation interactive d'un sous-graphe centrĂ© sur un terme, profondeur configurable. Le rendu utilise vis-network : nƓuds colorĂ©s par type de relation entrante, nĂ©gations en rouge, isolĂ©s masquables par seuil de degrĂ©, recadrage par clic, gravitĂ© par double-clic. Le HTML est autonome, on peut le tĂ©lĂ©charger pour usage hors-ligne. ### đŸ€– Agent (BYOK — Bring Your Own Key) Agent conversationnel pour discuter en langage naturel avec un LLM qui ne rĂ©pond qu'avec des triplets JDM citĂ©s. Deux providers supportĂ©s : - **Anthropic Claude** (Haiku ou Sonnet) — clĂ© sur [console.anthropic.com](https://console.anthropic.com/settings/keys). - **OpenAI GPT** (4o ou 4o mini) — clĂ© sur [platform.openai.com](https://platform.openai.com/api-keys). La clĂ© reste **en mĂ©moire de session uniquement** : elle n'est ni Ă©crite sur disque, ni envoyĂ©e Ă  un serveur tiers autre que ton provider de LLM, ni loggĂ©e. La fenĂȘtre se ferme, la clĂ© disparaĂźt. Tu paies uniquement ton propre usage du LLM choisi. Les onglets **Explorer JDM**, **Claim checker** et **Sous-graphe** ne requiĂšrent **aucune clĂ©** et ne consomment **aucune API LLM** — uniquement l'API publique de JeuxDeMots. --- ## Note de performance Cet espace HF tourne sur le tier gratuit (CPU basic). À la premiĂšre visite aprĂšs ~48 h d'inactivitĂ©, attends-toi Ă  un *cold start* de 30 Ă  60 secondes le temps que le conteneur redĂ©marre. Une fois lancĂ©, les requĂȘtes sont rapides grĂące au cache disque de l'API JDM. --- ## Pour aller plus loin Cette dĂ©mo n'est qu'une vitrine de trois des cinq surfaces du projet. Le **serveur MCP local** permet d'utiliser les 34 outils JDM directement dans Claude Code, Claude Desktop, Cursor ou tout autre client compatible MCP, en une seule commande d'installation et sans frais d'API supplĂ©mentaire pour qui dispose d'un abonnement Claude. ```bash pip install -e ".[langchain,mcp]" claude mcp add jdm --scope user -- python -m jdm_agent.mcp.server ``` À partir de lĂ , Claude peut enchaĂźner les outils JDM dans une conversation : > *« Pour le sens juridique d'« avocat », liste cinq synonymes plausibles et > vĂ©rifie chacun contre JeuxDeMots. »* → `disambiguate(avocat)` → `get_synonyms(avocat>116477>66699)` → `verify_claim` × 5, avec citation systĂ©matique des triplets sources. Le projet propose en outre un **flux d'enrichissement contributif complet** : le LLM propose des triplets candidats, le moteur d'infĂ©rence symbolique les consolide contre le graphe existant, et seuls les triplets *dĂ©ductibles* sont soumis au endpoint contributif de JDM — fermant la boucle entre crĂ©ativitĂ© neuronale et garantie logique. --- ## CrĂ©dits - **JeuxDeMots** — Mathieu Lafourcade et l'Ă©quipe TEXTE, LIRMM/CNRS. - **Code source, documentation, journal de bord** — - **Guide d'usage complet** — [USAGE.md](https://github.com/expAg/JDMAgent/blob/main/USAGE.md) - **Documentation technique** — [DEVELOPMENT.md](https://github.com/expAg/JDMAgent/blob/main/DEVELOPMENT.md)