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

197 lines
5.1 KiB
Markdown

# 🔍 Fonctionnement du Mode Shadow
## Qu'est-ce que le Mode Shadow ?
Le mode Shadow (👀) est le mode d'**observation passive** où l'application :
- ✅ Observe les actions de l'utilisateur
- ✅ Enregistre les patterns répétitifs
- ❌ N'interfère PAS avec l'utilisateur
- ❌ Ne suggère PAS d'actions
## 🤔 Problème Actuel
### Ce qui se passe maintenant
Quand tu cliques sur "Start" en mode Shadow :
1. L'application démarre la boucle cognitive
2. Elle capture l'écran
3. Elle cherche une "intention" (quelle action automatiser)
4. **Pas d'intention** → Elle ne fait rien et attend
### Pourquoi les warnings ?
Les warnings que tu vois :
```
WARNING: Aucune détection avec owl-v2
WARNING: DINO n'est pas disponible
WARNING: YOLO-World n'est pas disponible
ERROR: Aucun modèle n'a pu détecter 'observer'
```
Sont causés par une tentative de détecter des éléments avec le terme "observer", qui est trop générique.
**C'est maintenant corrigé** : L'application n'essaie plus de détecter sans intention.
## ✅ Comment Ça Devrait Fonctionner
### Architecture Complète (À Implémenter)
```
Mode Shadow
Capture d'événements système
Détection d'actions répétitives
Création d'une "intention"
Apprentissage du pattern
Proposition de passer en mode Assisté
```
### Ce qui Manque Actuellement
**Capture d'événements système** :
- Hooks clavier (pynput, keyboard)
- Hooks souris (pynput, mouse)
- Détection de patterns répétitifs
### Implémentation Actuelle (Simplifiée)
L'application attend que tu **définisses manuellement une tâche** :
1. Via l'interface (à ajouter)
2. Via des actions répétitives détectées (à implémenter)
## 🚀 Solution Temporaire
En attendant l'implémentation complète des hooks système, voici comment utiliser l'application :
### Option 1: Mode Assisté Direct
Au lieu de commencer en Shadow, commence directement en mode Assisté :
1. **Définir une tâche manuellement** (via interface à ajouter)
2. **Passer en mode Assisté**
3. **Valider les suggestions**
### Option 2: Utiliser l'API Programmatique
Créer une tâche via code :
```python
from core.learning_manager import LearningManager
from core.models import TaskProfile
# Créer une tâche
task = TaskProfile(
task_id="test_task",
window_title="Firefox",
description="Cliquer sur le bouton de recherche"
)
# Définir l'intention
learning_manager.set_current_intent("button")
```
## 📝 Prochaines Étapes
### Pour Rendre le Mode Shadow Fonctionnel
1. **Implémenter la capture d'événements** :
```python
from pynput import mouse, keyboard
def on_click(x, y, button, pressed):
if pressed:
# Enregistrer le clic
capture_action("click", x, y)
def on_key(key):
# Enregistrer la frappe
capture_action("key", key)
# Démarrer les listeners
mouse_listener = mouse.Listener(on_click=on_click)
keyboard_listener = keyboard.Listener(on_press=on_key)
```
2. **Détecter les patterns répétitifs** :
```python
def detect_repetitive_pattern(actions):
# Analyser les actions pour trouver des répétitions
# Si 3+ actions similaires → Créer une intention
pass
```
3. **Créer automatiquement des intentions** :
```python
if pattern_detected:
intent = extract_intent_from_pattern(pattern)
learning_manager.set_current_intent(intent)
```
## 🎯 État Actuel
### Ce qui Fonctionne
**Capture d'écran** : L'application capture l'écran en continu
**Détection UI** : OWL-v2 peut détecter des éléments (boutons, champs, etc.)
**Raisonnement** : Qwen3-VL peut analyser les images
**Mémoire visuelle** : OpenCLIP stocke les embeddings
### Ce qui Manque
**Capture d'événements** : Pas de hooks clavier/souris
**Détection de patterns** : Pas d'analyse des répétitions
**Création auto d'intentions** : Pas de génération automatique
## 💡 Recommandation Actuelle
**Pour tester l'application maintenant** :
1. **Ne pas utiliser le mode Shadow** pour l'instant
2. **Attendre l'implémentation des hooks système**
3. **Ou contribuer à l'implémentation** (voir ci-dessous)
### Comment Contribuer
Si tu veux implémenter la capture d'événements :
```bash
# Installer les dépendances
pip install pynput
# Créer le module
touch geniusia2/core/event_capture.py
# Implémenter les hooks
# Voir exemple ci-dessus
```
## 📚 Ressources
- **pynput** : https://pynput.readthedocs.io/
- **keyboard** : https://github.com/boppreh/keyboard
- **mouse** : https://github.com/boppreh/mouse
---
## ✅ Résumé
**Situation actuelle** :
- Le mode Shadow démarre mais n'a rien à faire sans événements utilisateur
- Les warnings sont normaux et ont été corrigés
- L'application attend une intention pour agir
**Solution temporaire** :
- L'application fonctionne mais en mode "passif"
- Elle attend que tu définisses une tâche manuellement
- Ou que les hooks système soient implémentés
**Prochaine étape** :
- Implémenter la capture d'événements système
- Ou utiliser l'application en mode manuel pour l'instant
**L'application est fonctionnelle, mais le mode Shadow complet nécessite encore du développement ! 🚀**