v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution

- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Dom
2026-01-29 11:23:51 +01:00
parent 21bfa3b337
commit a27b74cf22
1595 changed files with 412691 additions and 400 deletions

View File

@@ -0,0 +1,276 @@
# Analyse Dashboard - Incohérences Identifiées
**Date**: 7 janvier 2026 - 22:40
**Objectif**: Identifier pourquoi le dashboard ne reflète pas l'activité réelle
---
## 📊 État Actuel des Données
### Données RÉELLES sur le système
```
/opt/rpa_vision_v3/data/training/
├── sessions/ → 8 dossiers (sessions brutes, certaines non traitées)
├── screen_states/ → 236 fichiers JSON (données EXPLOITABLES après traitement)
│ └── 2026-01-07/
├── workflows/ → 2 fichiers JSON
├── embeddings/ → (vides en .npy, stockés dans FAISS)
├── faiss_index/ → Index vectoriel
├── chains/ → Chaînes de workflows
└── triggers/ → Déclencheurs automatiques
```
### Ce que le dashboard AFFICHE actuellement
- **Sessions count**: 8 (compte les dossiers bruts dans sessions/)
- **Workflows count**: 2 ✅ (correct)
- **Tests count**: 56 ✅ (correct)
- **Sessions list**: Affiche sessions BRUTES avec `screenshots_count: 0`
---
## 🔴 Problèmes Identifiés
### Problème 1 - Chemin Screenshots Incorrect
**Fichier**: `/opt/rpa_vision_v3/web_dashboard/app.py`
**Ligne**: 207
**Code actuel** :
```python
screenshots_dir = session_dir / "screenshots" # MAUVAIS !
screenshot_files = list(screenshots_dir.glob('*.png')) if screenshots_dir.exists() else []
```
**Problème** :
- Cherche dans `session_dir/screenshots/`
- Mais les screenshots sont dans `session_dir/<session_id>/shots/*.png`
- Résultat : `screenshots_count: 0` pour TOUTES les sessions
**Impact** :
- L'onglet "Sessions" affiche toujours 0 screenshots même avant le nettoyage
- L'utilisateur pense qu'il n'y a pas de données
---
### Problème 2 - Screen States Invisibles
**Situation** :
- 236 screen_states créés et sauvegardés dans `/data/training/screen_states/2026-01-07/`
- Ces fichiers JSON contiennent les données RÉELLES après traitement :
- Métadonnées des événements
- Références aux embeddings
- Contexte business
- Tags et workflow candidat
- **AUCUNE** route API pour les lister
- **AUCUN** onglet pour les visualiser
**Impact** :
- Les données traitées (qui sont les VRAIES données exploitables) sont invisibles
- L'utilisateur ne peut pas voir le résultat de l'apprentissage
- Impossible de valider que le traitement a fonctionné
---
### Problème 3 - Sessions Count Trompeur
**Fichier**: `/opt/rpa_vision_v3/web_dashboard/app.py`
**Ligne**: 115
**Code actuel** :
```python
sessions_count = len(list(SESSIONS_PATH.glob('*'))) if SESSIONS_PATH.exists() else 0
```
**Problème** :
- Compte les dossiers dans `sessions/` (données BRUTES)
- Après nettoyage post-apprentissage, ces dossiers sont SUPPRIMÉS
- Le compteur ne reflète PAS le nombre de sessions réellement traitées et exploitables
- Compte aussi des dossiers vides, en erreur, ou non traités (ex: `test_session_123`, `2025-11-29`)
**Impact** :
- L'utilisateur voit "8 sessions" mais ne sait pas :
- Combien sont traitées ?
- Combien sont en attente ?
- Combien ont échoué ?
---
### Problème 4 - Pas de Stats de Processing
**Situation** :
- Le `processing_pipeline.py` génère des statistiques détaillées :
```python
stats = {
"session_id": session_id,
"screen_states_created": 40,
"embeddings_generated": 40,
"ui_elements_detected": 15,
"workflow_created": True,
"patterns_detected": 3,
"errors": []
}
```
- Ces stats sont loguées mais JAMAIS affichées dans le dashboard
- L'utilisateur ne peut pas voir :
- Combien de sessions traitées aujourd'hui ?
- Combien d'embeddings générés au total ?
- Combien de patterns détectés ?
- Gain d'espace disque après cleanup ?
**Impact** :
- Impossible de monitorer l'apprentissage
- Pas de feedback sur l'efficacité du système
- Démo investisseurs moins impactante (pas de métriques visuelles)
---
### Problème 5 - Confusion Raw vs Processed
**Situation** :
- Le dashboard montre les sessions RAW (avant traitement)
- Mais l'utilisateur veut voir les sessions TRAITÉES (après apprentissage)
- Aucune distinction visuelle entre :
- Sessions en attente de traitement
- Sessions en cours de traitement
- Sessions traitées avec succès
- Sessions en erreur
**Impact** :
- L'utilisateur ne sait pas si le système fonctionne
- Confusion entre données brutes et données exploitables
---
### Problème 6 - Screenshots Deleted After Learning
**Situation** :
- Après traitement réussi, les screenshots sont supprimés (ligne 163-169 de processing_pipeline.py)
- C'est NORMAL et souhaité (gain d'espace ~99%)
- Mais le dashboard a :
- Bouton "📸 Screenshots" (ligne 620 de index.html)
- Route `/api/agent/sessions/<session_id>/screenshot/<filename>` (ligne 285 de app.py)
- Ces fonctions retournent 404 après cleanup
**Impact** :
- Bouton "Screenshots" ne fonctionne plus après traitement
- Erreur 404 frustrante pour l'utilisateur
- Pas d'indication que les screenshots ont été supprimés (normal) vs erreur
---
## ✅ Ce Qui Fonctionne Correctement
- ✅ Workflows count (2 workflows détectés)
- ✅ Tests count (56 tests)
- ✅ WebSocket temps réel
- ✅ Exécution de workflows
- ✅ Chains et Triggers
- ✅ Logs et métriques Prometheus
- ✅ Healthcheck endpoint
---
## 🎯 Objectifs de la Correction
### 1. Afficher les Screen States
- Nouvelle route API : `/api/screen_states`
- Nouveau tab "📊 Données Traitées" dans le dashboard
- Liste des screen_states par date
- Groupement par session_id
- Affichage des métadonnées (tags, workflow candidat, timestamp)
### 2. Stats de Processing
- Nouvelle route API : `/api/processing/stats`
- Affichage dans l'onglet "Vue d'ensemble" :
- Sessions traitées (vs brutes)
- Screen states créés
- Embeddings générés
- Patterns détectés
- Gain d'espace disque
- Historique par jour/semaine
### 3. Corriger le Chemin Screenshots
- Fixer ligne 207 de app.py :
```python
screenshots_dir = session_dir / session_id / "shots"
```
- Ajouter vérification : si screenshot n'existe plus (après cleanup), afficher message clair
### 4. Statut de Traitement
- Ajouter colonne "Statut" dans la liste des sessions :
- 🟡 En attente
- 🔵 En cours
- 🟢 Traité
- 🔴 Erreur
- Basé sur l'existence des screen_states correspondants
### 5. Clarifier Raw vs Processed
- Renommer l'onglet "Sessions" en "Sessions Brutes"
- Ajouter onglet "Sessions Traitées" (basé sur screen_states)
- Afficher les deux compteurs :
- Sessions brutes : X (en attente de traitement)
- Sessions traitées : Y (exploitables)
---
## ⚠️ Risques et Mitigation
### Risque 1 - Casser l'API existante
**Mitigation** :
- AJOUTER de nouvelles routes SANS modifier les anciennes
- Garder `/api/agent/sessions` intact pour compatibilité
- Nouvelles routes : `/api/screen_states`, `/api/processing/stats`
### Risque 2 - Frontend JavaScript cassé
**Mitigation** :
- AJOUTER de nouveaux tabs SANS modifier les existants
- Garder le code JavaScript existant fonctionnel
- Nouvelles fonctions JavaScript isolées
### Risque 3 - Performance (236 screen_states)
**Mitigation** :
- Pagination sur `/api/screen_states` (50 par page)
- Cache côté serveur pour les stats
- Lazy loading dans le frontend
### Risque 4 - Services externes cassés
**Mitigation** :
- Vérifier si d'autres services appellent `/api/agent/sessions`
- Tester l'API après modifications
- Garder les anciennes routes en parallèle
---
## 📋 Plan d'Action Recommandé
### Phase 1 - Fix Critique (30 min)
1. ✅ Corriger le chemin screenshots (ligne 207)
2. ✅ Ajouter route `/api/screen_states`
3. ✅ Tester sans casser l'existant
### Phase 2 - Stats Processing (45 min)
1. Créer `/api/processing/stats`
2. Sauvegarder les stats du pipeline dans un fichier JSON
3. Afficher dans le dashboard
### Phase 3 - Interface Améliorée (1h)
1. Ajouter onglet "Données Traitées"
2. Afficher screen_states groupés par session
3. Ajouter statut de traitement
### Phase 4 - Tests et Validation (30 min)
1. Tester toutes les routes API
2. Vérifier que rien n'est cassé
3. Valider avec une nouvelle session
---
## 📊 Métriques de Succès
Après les corrections, le dashboard devra afficher :
-**236 screen_states** visibles et exploitables
-**Statut de traitement** pour chaque session
-**Stats de processing** en temps réel
-**Distinction claire** entre données brutes et traitées
-**Pas de 404** sur les screenshots (message clair si supprimés)
-**0 régression** sur les fonctionnalités existantes
---
**Version** : 1.0 - Analyse Complète
**Status** : ⏳ En attente de validation utilisateur avant implémentation