Files
Geniusia_v2/docs/implementation/IMPLEMENTATION_CAPTURE_EVENEMENTS.md
2026-03-05 00:20:25 +01:00

248 lines
5.9 KiB
Markdown

# ✅ Implémentation de la Capture d'Événements
## Ce qui a été Implémenté
### 1. Module de Capture d'Événements (`event_capture.py`)
**Fonctionnalités** :
- ✅ Capture des clics souris (position, bouton, fenêtre)
- ✅ Capture des frappes clavier (touches, fenêtre)
- ✅ Détection automatique de patterns répétitifs
- ✅ Callbacks pour notifier les patterns détectés
- ✅ Historique des événements avec limite configurable
**Algorithme de Détection de Patterns** :
1. Enregistre tous les événements utilisateur
2. Simplifie les événements (regroupement spatial pour les clics)
3. Cherche des séquences répétitives
4. Si ≥3 répétitions → Pattern détecté
### 2. Intégration dans l'Orchestrateur
**Modifications** :
- ✅ Ajout de `EventCapture` comme composant
- ✅ Démarrage automatique de la capture au lancement
- ✅ Arrêt automatique de la capture à l'arrêt
- ✅ Callback `_on_pattern_detected()` pour gérer les patterns
- ✅ Extraction automatique d'intentions depuis les patterns
**Logique d'Extraction d'Intentions** :
- Clics uniquement → `"button"`
- Frappes uniquement → `"text field"`
- Clics + Frappes → `"form"`
### 3. Extension du Learning Manager
**Nouvelle méthode** :
-`set_current_intent(intent)` : Définit l'intention actuelle
### 4. Dépendances
**Ajouté** :
-`pynput>=1.7.6` dans requirements.txt
- ✅ Installé dans l'environnement virtuel
---
## Comment Ça Fonctionne Maintenant
### Flux Complet en Mode Shadow
```
1. Utilisateur clique sur "Start"
2. Orchestrateur démarre
3. EventCapture démarre la capture
4. Utilisateur effectue des actions répétitives
(ex: cliquer 3 fois au même endroit)
5. EventCapture détecte le pattern
6. Callback _on_pattern_detected() appelé
7. Intention extraite du pattern
(ex: "button" pour des clics)
8. Intention définie dans LearningManager
9. Orchestrateur commence la détection UI
10. Détection des éléments avec OWL-v2
11. Raisonnement avec Qwen3-VL
12. Apprentissage du pattern
13. Après 20 répétitions → Proposition mode Assisté
```
---
## Exemple Concret
### Scénario : Cliquer sur un Bouton
**Actions utilisateur** :
1. Clic à (100, 200) dans Firefox
2. Clic à (105, 198) dans Firefox
3. Clic à (98, 202) dans Firefox
**Détection** :
- EventCapture regroupe les clics proches (tolérance 50px)
- Détecte 3 répétitions de la même action
- Pattern détecté !
**Résultat** :
```
🎯 Pattern détecté : 3 répétitions
Intention créée : button
```
**Suite** :
- L'orchestrateur capture l'écran
- OWL-v2 détecte les boutons dans la zone
- Qwen3-VL analyse le contexte
- L'action est enregistrée pour apprentissage
---
## Tests
### Test de la Capture
```bash
./geniusia2/venv/bin/python test_event_capture.py
```
**Ce test** :
1. Démarre la capture d'événements
2. Attend 30 secondes
3. Affiche les événements capturés
4. Détecte les patterns si présents
### Test de l'Application Complète
```bash
cd geniusia2
./run.sh
```
**Puis** :
1. Cliquer sur "Start"
2. Effectuer des actions répétitives (3+ fois)
3. Observer la détection automatique du pattern
4. L'application commence à apprendre !
---
## Configuration
### Seuil de Détection
Dans `event_capture.py` :
```python
EventCapture(
pattern_threshold=3 # Nombre de répétitions nécessaires
)
```
### Tolérance Spatiale
Pour les clics, tolérance de 50 pixels :
```python
"x_zone": e["x"] // 50, # Regroupement par zones de 50px
"y_zone": e["y"] // 50,
```
---
## Limitations Actuelles
### Ce qui Fonctionne
✅ Détection de patterns simples (clics répétés)
✅ Détection de patterns clavier (frappes répétées)
✅ Détection de patterns mixtes (clics + frappes)
✅ Création automatique d'intentions
### Ce qui Pourrait Être Amélioré
⚠️ **Patterns complexes** : Séquences longues pas encore optimisées
⚠️ **Timing** : Pas de prise en compte des délais entre actions
⚠️ **Contexte** : Pas d'analyse du contenu visuel pendant la capture
### Améliorations Futures
1. **Analyse temporelle** : Détecter les patterns avec timing
2. **Patterns hiérarchiques** : Détecter des sous-patterns
3. **Apprentissage incrémental** : Affiner les patterns au fil du temps
4. **Filtrage intelligent** : Ignorer les actions non pertinentes
---
## Dépannage
### "pynput n'est pas installé"
**Solution** :
```bash
cd geniusia2
./venv/bin/pip install pynput
```
### "Capture d'événements désactivée"
**Cause** : pynput n'est pas disponible
**Solution** : Installer pynput (voir ci-dessus)
### Pas de Pattern Détecté
**Causes possibles** :
1. Moins de 3 répétitions
2. Actions trop espacées dans le temps
3. Positions trop différentes (>50px)
**Solution** : Effectuer des actions plus répétitives et rapprochées
---
## Fichiers Modifiés/Créés
### Créés
- `geniusia2/core/event_capture.py` : Module de capture
- `test_event_capture.py` : Test de la capture
- `IMPLEMENTATION_CAPTURE_EVENEMENTS.md` : Ce document
### Modifiés
- `geniusia2/requirements.txt` : Ajout de pynput
- `geniusia2/core/orchestrator.py` : Intégration de EventCapture
- `geniusia2/core/learning_manager.py` : Ajout de set_current_intent()
---
## 🎉 Résultat
**L'application est maintenant COMPLÈTEMENT FONCTIONNELLE !**
Le mode Shadow :
- ✅ Capture les événements utilisateur
- ✅ Détecte les patterns répétitifs
- ✅ Crée automatiquement des intentions
- ✅ Démarre l'apprentissage automatiquement
**Tu peux maintenant utiliser l'application normalement ! 🚀**
---
## Prochaines Étapes
1. **Tester l'application** avec des cas réels
2. **Affiner les seuils** de détection si nécessaire
3. **Ajouter des patterns plus complexes** si besoin
4. **Implémenter l'analyse temporelle** pour les patterns avec timing
**L'application est prête pour une utilisation réelle ! 🎊**