DataBloom est un générateur de tableaux de bord assisté par IA, conçu pour fonctionner en local. Importez un jeu de données, demandez une analyse en langage naturel, puis acceptez, déplacez, redimensionnez ou supprimez les composants visuels proposés par l'assistant.
- Construire par conversation — l'assistant génère des propositions structurées à partir d'une consigne, avec validation avant leur ajout à l'espace de composition.
- Importer des données réelles — CSV, TSV, XLS, XLSX, XLSM et XLSB, mais aussi API HTTP et sources de supervision HTTP, DNS ou ping.
- Contrôler la qualité — détection des doublons, valeurs manquantes, lignes vides et dates ambiguës avant l'analyse.
- Analyser intelligemment — distinction entre mesures, dimensions et identifiants numériques pour éviter les agrégations absurdes.
- Composer librement — déplacement, redimensionnement, suppression, inspection et édition de chaque composant visuel.
- Piloter par commandes — tapez
/dans la conversation pour afficher le catalogue, puis utilisez par exemple/pie,/heatmapou/kpi-group. - Présenter et exporter — thèmes clair et sombre, mode présentation, aperçu JSON et génération de
workflow.yml.
Les composants Bloom sont isolés de l'interface applicative et partagent un contrat de données stable.
| Famille | Types disponibles |
|---|---|
| Indicateurs | kpi, comparison, kpi-group |
| Graphiques | bar, line, pie, heatmap |
| Données et contenu | table, text, note |
| Supervision | service-status, threshold-line, radial-gauge, availability-grid |
Chaque rendu possède un état vide explicite. Les graphiques temporels affichent leurs axes, leur échelle et une hiérarchie visuelle cohérente ; les composants de supervision utilisent des couleurs fondées sur des seuils plutôt que sur le nom des champs.
- Node.js 22+
- pnpm 11.9+
- Facultatif : LM Studio pour utiliser l'assistant local
git clone git@github.com:dandyArise/data-bloom.git
cd data-bloom
pnpm install
pnpm devOuvrez ensuite http://127.0.0.1:5173. Un jeu de données financier prêt à importer est fourni dans examples/financial-sample.csv.
- Lancez le serveur local de LM Studio sur le port
1234. - Chargez explicitement le modèle que vous souhaitez utiliser.
- Dans DataBloom, ouvrez LLM et conservez l'URL
/lmstudio/v1. - Sélectionnez le modèle détecté, puis testez la connexion.
En développement, Vite relaie /lmstudio vers http://127.0.0.1:1234. DataBloom utilise les points de terminaison compatibles avec OpenAI /models et /chat/completions. La configuration reste dans le navigateur ; aucun service distant n'est requis pour le mode local.
src/
├── app/ # orchestration, données, conversation, état et interface
│ ├── components/ # vues et contrôles de l'application
│ ├── hooks/ # contrôleur et état de l'espace de travail
│ ├── datasetImport.ts # import et normalisation des jeux de données
│ ├── dataProfiling.ts # profilage sémantique des champs
│ └── widgetDataAdapter.ts # adaptation Dataset → WidgetData
└── bloom/ # bibliothèque de composants visuels autonome
├── registry.ts # registre extensible des composants
├── types.ts # contrat public WidgetData / WidgetConfig
├── tokens.css # variables de design pour les thèmes clair et sombre
├── widgets/ # un module par type de composant
└── dev/ # banc de test du rendu isolé
L'interface applicative importe Bloom uniquement via @bloom/index. Les composants visuels ne connaissent ni la conversation, ni les jeux de données de l'application, ni le stockage : l'adaptateur traduit les données métier vers le contrat public de Bloom. Les règles ESLint empêchent les dépendances inverses.
Pour ajouter un composant visuel, créez son module sous src/bloom/widgets/, enregistrez-le dans le registre Bloom, puis ajoutez son adaptateur dans src/app/. La commande / correspondante est générée automatiquement depuis le registre.
pnpm dev # serveur de développement
pnpm check:boundaries # architecture et analyse statique stricte
pnpm build # TypeScript et compilation de production
pnpm preview # prévisualisation de la version compiléeLe banc de test autonome des composants est accessible en développement sur /src/bloom/dev/harness.html.
L'espace de travail pnpm impose un délai minimal avant l'installation des nouvelles versions publiées et bloque les rétrogradations de confiance. Ces protections réduisent l'exposition aux paquets compromis fraîchement publiés. Les clés d'API éventuelles doivent rester locales et ne doivent jamais être ajoutées au dépôt.
Les tickets et demandes de fusion sont les bienvenus. Avant de proposer un changement, exécutez au minimum :
pnpm check:boundaries
pnpm buildDataBloom est distribué sous licence 0BSD : utilisation, modification et redistribution sans restriction, dans les limites précisées par la licence.
Créé par dandyArise.

