Initial commit
This commit is contained in:
155
archive/old_docs/PROBLEME_MODE_ASSISTE.md
Normal file
155
archive/old_docs/PROBLEME_MODE_ASSISTE.md
Normal file
@@ -0,0 +1,155 @@
|
||||
# ⚠️ Problème Identifié - Mode Assisté
|
||||
|
||||
## 🔍 Problème
|
||||
|
||||
Le script `test_mode_assiste_manuel.py` utilisait une méthode qui n'existe pas dans `LearningManager` :
|
||||
|
||||
```python
|
||||
tasks = learning_manager.list_tasks() # ❌ N'existe pas
|
||||
```
|
||||
|
||||
### Erreur Attendue
|
||||
|
||||
```
|
||||
AttributeError: 'LearningManager' object has no attribute 'list_tasks'
|
||||
```
|
||||
|
||||
## ✅ Solution
|
||||
|
||||
Utiliser la méthode correcte `get_all_tasks()` :
|
||||
|
||||
```python
|
||||
task_metrics = learning_manager.get_all_tasks() # ✅ Existe
|
||||
```
|
||||
|
||||
## 📊 Différence entre les Méthodes
|
||||
|
||||
### `list_tasks()` (N'existe pas)
|
||||
- ❌ Méthode inexistante
|
||||
- Aurait retourné des objets `TaskProfile`
|
||||
|
||||
### `get_all_tasks()` (Existe)
|
||||
- ✅ Méthode existante dans `LearningManager`
|
||||
- Retourne une liste de dictionnaires avec métriques complètes
|
||||
|
||||
**Exemple de retour** :
|
||||
```python
|
||||
[
|
||||
{
|
||||
'task_id': 'task_fc1d3e52',
|
||||
'task_name': 'Défilement rapide',
|
||||
'observation_count': 3,
|
||||
'confidence_score': 0.0,
|
||||
'concordance_rate': 0.0,
|
||||
'mode': 'shadow',
|
||||
'window_whitelist': ['Firefox']
|
||||
},
|
||||
# ... autres tâches
|
||||
]
|
||||
```
|
||||
|
||||
## 🔧 Correction Appliquée
|
||||
|
||||
### Avant
|
||||
|
||||
```python
|
||||
# Vérifier les tâches existantes
|
||||
print("📊 Vérification des tâches apprises...")
|
||||
tasks = learning_manager.list_tasks() # ❌
|
||||
|
||||
if not tasks:
|
||||
print("❌ Aucune tâche apprise trouvée !\n")
|
||||
return
|
||||
|
||||
print(f"✅ {len(tasks)} tâche(s) trouvée(s) :\n")
|
||||
for i, task in enumerate(tasks, 1):
|
||||
print(f" {i}. {task.task_name}") # ❌ task est un objet
|
||||
print(f" ID: {task.task_id}")
|
||||
print(f" Actions: {len(task.signatures)}")
|
||||
```
|
||||
|
||||
### Après
|
||||
|
||||
```python
|
||||
# Vérifier les tâches existantes
|
||||
print("📊 Vérification des tâches apprises...")
|
||||
|
||||
# Utiliser get_all_tasks() qui retourne une liste de dicts avec métriques
|
||||
task_metrics = learning_manager.get_all_tasks() # ✅
|
||||
|
||||
if not task_metrics:
|
||||
print("❌ Aucune tâche apprise trouvée !\n")
|
||||
return
|
||||
|
||||
print(f"✅ {len(task_metrics)} tâche(s) trouvée(s) :\n")
|
||||
for i, task_info in enumerate(task_metrics, 1):
|
||||
print(f" {i}. {task_info['task_name']}") # ✅ task_info est un dict
|
||||
print(f" ID: {task_info['task_id']}")
|
||||
print(f" Observations: {task_info['observation_count']}")
|
||||
print(f" Confiance: {task_info['confidence_score']:.2%}")
|
||||
```
|
||||
|
||||
## 📝 Avantages de `get_all_tasks()`
|
||||
|
||||
1. ✅ **Métriques complètes** : Retourne toutes les infos (observations, confiance, etc.)
|
||||
2. ✅ **Format dict** : Plus facile à manipuler que des objets
|
||||
3. ✅ **Déjà implémenté** : Pas besoin de créer une nouvelle méthode
|
||||
4. ✅ **Utilisé ailleurs** : Cohérent avec le reste du code
|
||||
|
||||
## 🎯 Méthodes Disponibles dans LearningManager
|
||||
|
||||
Voici les méthodes publiques disponibles :
|
||||
|
||||
### Observation et Apprentissage
|
||||
- `observe(action)` : Enregistre une observation
|
||||
- `create_task_from_signatures(signatures, ...)` : Crée une tâche
|
||||
|
||||
### Suggestions et Validation
|
||||
- `suggest_action(context)` : Génère une suggestion
|
||||
- `confirm_action(feedback)` : Traite la validation utilisateur
|
||||
|
||||
### Évaluation et Métriques
|
||||
- `calculate_confidence(vision_conf, llm_score, task_id)` : Calcule la confiance
|
||||
- `evaluate_task(task_id)` : Évalue une tâche
|
||||
- `get_all_tasks()` : ✅ Retourne toutes les tâches avec métriques
|
||||
- `get_task_stats()` : Statistiques globales
|
||||
|
||||
### Transitions de Mode
|
||||
- `should_transition_to_auto(task_id)` : Vérifie si passage en Autopilot
|
||||
- `rollback_if_low_confidence(task_id)` : Rétrograde si confiance faible
|
||||
|
||||
### Gestion de Tâches
|
||||
- `load_task(task_id)` : Charge une tâche depuis le disque
|
||||
- `set_current_task(task_id)` : Définit la tâche actuelle
|
||||
- `set_current_context(context)` : Définit le contexte actuel
|
||||
- `record_execution(decision)` : Enregistre une exécution
|
||||
|
||||
### Détection de Changements UI
|
||||
- `check_ui_changes(task_id, current_screenshot)` : Vérifie les changements
|
||||
- `monitor_execution_drift(task_id, execution_result)` : Surveille la dérive
|
||||
- `get_ui_change_stats()` : Statistiques de détection
|
||||
|
||||
### État
|
||||
- `get_mode()` : Retourne le mode actuel
|
||||
- `get_current_intent()` : Retourne l'intention actuelle
|
||||
- `set_current_intent(intent)` : Définit l'intention
|
||||
|
||||
## ✅ État Final
|
||||
|
||||
- [x] Problème identifié
|
||||
- [x] Solution appliquée
|
||||
- [x] Script corrigé
|
||||
- [x] Aucune erreur de syntaxe
|
||||
- [x] Prêt à l'emploi
|
||||
|
||||
## 🚀 Test
|
||||
|
||||
```bash
|
||||
geniusia2/venv/bin/python test_mode_assiste_manuel.py
|
||||
```
|
||||
|
||||
**Résultat attendu** : Le script liste toutes les tâches et simule une vérification de suggestion.
|
||||
|
||||
---
|
||||
|
||||
**Problème résolu le 19 Novembre 2025**
|
||||
Reference in New Issue
Block a user