🎨 DrawItToMe
Parcequ'un schéma vaut mieux qu'un long discours.
Cliquez sur l'image pour l'ouvrir en plein écran
Configuration de l'API
Obtenez une clé gratuite sur groq.com
Consultez les modèles disponibles sur console.groq.com/docs/models
DrawItToMe : transformer du texte en diagrammes Mermaid
Présentation
DrawItToMe est une application web qui convertit des descriptions textuelles en diagrammes Mermaid, grâce à une combinaison de technologies open-source et de modèles de langage performants. L’application propose une interface simple pour générer automatiquement des visualisations compréhensibles à partir de texte libre.
Architecture générale
L’application repose sur quatre composants principaux :
Interface utilisateur (Gradio)
Une interface légère développée en Python avec Gradio, structurée autour de champs de saisie textuelle, d'onglets, et de retours visuels immédiats.Orchestration (DuckDB + FlockMTL)
L’application utilise DuckDB enrichi de l’extension FlockMTL pour :
- la gestion sécurisée des secrets d’API,
- la structuration et le versionnage des prompts envoyés au modèle,
- le traitement des retours JSON.
Modèle de génération (Qwen 32B via Groq)
Le texte est envoyé à un modèle LLM déployé sur l’infrastructure Groq. Ce modèle retourne un code Mermaid structuré, ainsi que le type de diagramme le plus adapté.Rendu graphique (Kroki.io)
Le code Mermaid est encodé et compressé dans une URL, puis envoyé à Kroki.io pour générer une image SVG, affichée directement dans l’application.
Défis techniques
1. Fiabilité des réponses JSON
Les LLM génèrent parfois des structures JSON incorrectes.
Solution : Utilisation de FlockMTL pour forcer un format strict, avec validation automatique des champs mermaid_code
et mermaid_diag_type
.
2. Rendu sans backend
L’objectif était d’éviter une API de rendu côté serveur.
Solution : Encodage du code Mermaid dans l’URL, compressé avec zlib, puis envoyé à Kroki en lecture seule. Cela élimine le besoin d'une infrastructure dédiée.
3. Choix du modèle LLM
Plusieurs modèles ont été testés.
Conclusion : Qwen 32B offre un bon compromis entre performance, latence et consommation. Il est capable de générer des structures Mermaid syntaxiquement valides avec un coût modéré.
Sécurité
- Les clés API ne sont jamais persistées, uniquement stockées temporairement en mémoire.
- Aucune donnée utilisateur n’est enregistrée.
- Kroki.io est utilisé comme service de rendu externe, limitant les risques liés au traitement local.
Perspectives
L’architecture de DrawItToMe permet d’envisager des évolutions :
- Support d’autres formats de diagrammes (PlantUML, GraphViz),
- Édition visuelle du code Mermaid,
- Collaboration en temps réel,
- Thématisation des diagrammes.
Conclusion
DrawItToMe démontre qu’il est possible de bâtir une application utile et modulaire en s’appuyant sur des composants open-source spécialisés. La combinaison DuckDB + FlockMTL + Groq + Kroki permet de transformer du texte libre en visualisation structurée de manière fiable, sans compromis sur l’ergonomie ou la robustesse.
Exemples de descriptions pour vous inspirer
📝 Description du diagramme | 🔍 Précisions supplémentaires |
---|
Ali HMAOU 2025 | DrawItToMe utilise Kroki.io pour le rendu des diagrammes Mermaid | Propulsé par Groq et DuckDB/FlockMTL | Made with 🧡 and with duckit