Initial commit

This commit is contained in:
Dom
2026-03-05 00:20:25 +01:00
commit dcd4de9945
1954 changed files with 669380 additions and 0 deletions

View File

@@ -0,0 +1,318 @@
# 🎯 Résumé : Correction de la Détection de Workflows
**Date** : 18 novembre 2025
**Objectif** : Corriger les bugs empêchant la détection et la sauvegarde des workflows dans GeniusIA v2
---
## 🐛 Problèmes Identifiés
### 1. Bug VisionAnalysis - AttributeError
**Symptôme** : Erreur `'VisionAnalysis' object has no attribute 'llm_manager'` à chaque action
**Cause** : Incohérence entre le nom de l'attribut (`self.llm`) et son utilisation (`self.llm_manager`)
**Impact** : Aucune analyse visuelle des actions n'était possible
### 2. SessionManager Non Intégré
**Symptôme** : Aucune session créée malgré la capture d'événements
**Cause** : EventCapture capturait les événements mais ne les passait pas au SessionManager
**Impact** : Pas de segmentation des actions en sessions
### 3. WorkflowDetector Non Intégré
**Symptôme** : Aucun workflow détecté même après répétitions
**Cause** : WorkflowDetector n'était pas connecté à l'Orchestrator
**Impact** : Pas d'analyse de patterns répétitifs
### 4. Absence de Persistence
**Symptôme** : Workflows perdus au redémarrage
**Cause** : Aucun mécanisme de sauvegarde sur disque
**Impact** : Impossible de réutiliser les workflows appris
### 5. Détection de Fenêtre Défaillante
**Symptôme** : Toutes les actions attribuées à "RPA Vision V2"
**Cause** : `xdotool` non installé, fallback `xprop` insuffisant
**Impact** : Workflows mélangés entre différentes applications
---
## ✅ Solutions Implémentées
### 1. Correction VisionAnalysis
**Fichier** : `geniusia2/core/vision_analysis.py`
**Changements** :
- Corrigé `self.llm_manager``self.llm` (lignes 75, 86)
- Ajouté gestion d'erreur robuste avec try/except imbriqués
- Garantie qu'une signature valide est toujours retournée
**Résultat** : ✅ Analyse visuelle fonctionnelle sans erreurs
### 2. Intégration SessionManager
**Fichiers** :
- `geniusia2/core/orchestrator.py`
- `geniusia2/core/event_capture.py`
- `geniusia2/core/session_manager.py`
**Changements** :
- SessionManager créé dans Orchestrator et partagé avec EventCapture
- EventCapture appelle `session_manager.add_action()` pour chaque événement
- Callback `_on_session_completed()` ajouté dans Orchestrator
- Suppression du double logging (SessionManager ne log plus)
**Résultat** : ✅ Sessions créées automatiquement avec timeout de 5 minutes
### 3. Intégration WorkflowDetector
**Fichiers** :
- `geniusia2/core/orchestrator.py`
- `geniusia2/core/workflow_detector.py`
**Changements** :
- WorkflowDetector créé dans Orchestrator
- Ajout de la méthode `analyze_session()` pour analyse incrémentale
- Callback `_on_workflow_detected()` connecté au SuggestionManager
- Groupement des sessions par fenêtre avant comparaison
- Filtre des workflows trop courts (< 3 actions)
**Résultat** : ✅ Workflows détectés après 3+ répétitions similaires
### 4. Persistence des Workflows
**Fichier** : `geniusia2/core/workflow_detector.py`
**Changements** :
- Ajout de `_save_workflow()` : sauvegarde en JSON
- Ajout de `_load_workflows()` : chargement au démarrage
- Ajout de `update_workflow_confidence()` : mise à jour après exécution
- Répertoire : `data/user_profiles/workflows/`
**Format JSON** :
```json
{
"workflow_id": "workflow_20251118_184244",
"name": "Mouse_click → Mouse_click",
"repetitions": 10,
"confidence": 1.0,
"created_at": "2025-11-18T18:42:44",
"last_seen": "2025-11-18T18:43:21",
"steps": [
{
"step_id": 0,
"action_type": "mouse_click",
"target_description": "",
"position": [44, 1055],
"window": "Calculatrice"
}
]
}
```
**Résultat** : ✅ Workflows persistés et rechargés automatiquement
### 5. Amélioration Détection de Fenêtre
**Fichier** : `geniusia2/core/utils/image_utils.py`
**Changements** :
- Installation de `xdotool` pour détection fiable sur Linux
- Fallback vers `xprop` si `xdotool` indisponible
- Gestion des erreurs et timeouts
**Résultat** : ✅ Noms de fenêtres correctement détectés
---
## 🛠️ Outils Créés
### 1. Script de Monitoring
**Fichier** : `monitor_workflows.sh`
**Fonctionnalité** : Affiche en temps réel les sessions et workflows détectés
**Usage** :
```bash
./monitor_workflows.sh
```
### 2. Script de Vérification
**Fichier** : `check_workflows.sh`
**Fonctionnalité** : Liste tous les workflows sauvegardés avec détails
**Usage** :
```bash
./check_workflows.sh
```
### 3. Test de Détection de Fenêtre
**Fichier** : `test_window_detection.py`
**Fonctionnalité** : Teste `get_active_window()` en temps réel
**Usage** :
```bash
python3 test_window_detection.py
```
### 4. Test d'Intégration
**Fichier** : `test_workflow_fix.py`
**Fonctionnalité** : Vérifie que tous les composants sont correctement intégrés
**Usage** :
```bash
python3 test_workflow_fix.py
```
---
## 📊 Métriques de Performance
### Avant les Corrections
- ❌ 0 workflows détectés
- ❌ 0 sessions créées
- ❌ 100% d'erreurs `llm_manager`
- ❌ Aucune persistence
### Après les Corrections
- ✅ Workflows détectés après 3+ répétitions
- ✅ Sessions créées automatiquement
- ✅ 0 erreur d'attribut
- ✅ Persistence fonctionnelle
- ✅ Détection de fenêtre fiable avec `xdotool`
---
## 🧪 Tests Effectués
### Test 1 : VisionAnalysis
- ✅ Pas d'AttributeError
- ✅ Signatures créées avec embeddings
- ✅ Gestion d'erreur robuste
### Test 2 : SessionManager
- ✅ Sessions créées automatiquement
- ✅ Timeout de 5 minutes respecté
- ✅ Groupement par fenêtre
### Test 3 : WorkflowDetector
- ✅ Détection après 3 répétitions
- ✅ Filtrage des workflows courts
- ✅ Groupement par fenêtre
### Test 4 : Persistence
- ✅ Sauvegarde en JSON
- ✅ Chargement au démarrage
- ✅ Mise à jour de confiance
---
## 📝 Configuration
### Paramètres de Workflow
```python
{
"workflow": {
"min_repetitions": 3, # Nombre de répétitions minimum
"similarity_threshold": 0.75, # Seuil de similarité (75%)
"min_workflow_length": 3, # Longueur minimale (3 actions)
"session_timeout": 300 # Timeout de session (5 minutes)
}
}
```
### Dépendances Système
```bash
# Linux
sudo apt install xdotool
# Vérification
xdotool getactivewindow getwindowname
```
---
## 🚀 Utilisation
### Mode Shadow (Apprentissage)
```bash
cd geniusia2
./run.sh --mode shadow
```
### Monitoring en Temps Réel
```bash
# Terminal 1 : GeniusIA
cd geniusia2
./run.sh --mode shadow
# Terminal 2 : Monitoring
./monitor_workflows.sh
```
### Vérification des Workflows
```bash
./check_workflows.sh
```
---
## 🔮 Améliorations Futures
### 1. Détection 100% Vision
**Objectif** : Ne plus dépendre des noms de fenêtres
**Approche** :
- Comparer les embeddings des screenshots au lieu des noms
- Grouper les sessions par similarité visuelle
- Identifier automatiquement le contexte visuel
### 2. Suggestions Proactives
**Objectif** : Suggérer des workflows avant que l'utilisateur ne les répète
**Approche** :
- Analyser le contexte visuel actuel
- Comparer avec les workflows connus
- Suggérer le workflow le plus probable
### 3. Apprentissage Incrémental
**Objectif** : Améliorer les workflows au fil du temps
**Approche** :
- Mettre à jour la confiance après chaque exécution
- Fusionner les workflows similaires
- Supprimer les workflows obsolètes
---
## 📚 Documentation Créée
1. **Spec Complète** : `.kiro/specs/workflow-detection-fix/`
- `requirements.md` : Exigences détaillées
- `design.md` : Architecture et propriétés de correction
- `tasks.md` : Plan d'implémentation
2. **Scripts de Test** :
- `test_workflow_fix.py`
- `test_window_detection.py`
- `monitor_workflows.sh`
- `check_workflows.sh`
3. **Ce Document** : Résumé complet de la correction
---
## ✨ Conclusion
**Statut** : ✅ Tous les bugs critiques corrigés
**Fonctionnalités Opérationnelles** :
- ✅ Capture d'événements
- ✅ Segmentation en sessions
- ✅ Détection de workflows
- ✅ Persistence sur disque
- ✅ Détection de fenêtres
**Prochaine Étape** : Tester en conditions réelles avec différentes applications (Calculatrice, Firefox, OnlyOffice, etc.)
---
**Auteur** : Kiro AI Assistant
**Date** : 18 novembre 2025
**Version** : GeniusIA v2.0