120 lines
3.7 KiB
Markdown
120 lines
3.7 KiB
Markdown
# Task 2: Améliorer SuggestionManager - ✓ COMPLÉTÉ
|
||
|
||
## Résumé
|
||
|
||
Le SuggestionManager a été amélioré avec succès pour supporter la détection et la suggestion de workflows en mode assisté.
|
||
|
||
## Modifications apportées
|
||
|
||
### Fichier modifié
|
||
- `geniusia2/core/suggestion_manager.py`
|
||
|
||
### Nouvelles méthodes ajoutées
|
||
|
||
1. **check_workflow_match(session_actions, workflows)**
|
||
- Vérifie périodiquement si les actions courantes correspondent à un workflow
|
||
- Applique les ajustements de priorité
|
||
- Retourne le meilleur match si confiance > 80%
|
||
|
||
2. **create_workflow_suggestion(workflow_match)**
|
||
- Crée une suggestion détaillée avec toutes les étapes restantes
|
||
- Inclut un aperçu des 3 prochaines étapes
|
||
- Gère le timeout de 10 secondes
|
||
|
||
3. **_track_workflow_rejection(workflow_id)**
|
||
- Enregistre les rejets par workflow
|
||
- Ajuste automatiquement la priorité après 3 rejets
|
||
- Formule: confiance * (0.9 ^ (rejets // 3))
|
||
|
||
4. **_track_workflow_acceptance(workflow_id)**
|
||
- Récompense les workflows acceptés
|
||
- Réduit le compteur de rejets de 2
|
||
- Supprime l'ajustement si rejets < 3
|
||
|
||
5. **_apply_priority_adjustment(match)**
|
||
- Applique l'ajustement de priorité au score de confiance
|
||
- Maintient la confiance dans [0, 1]
|
||
|
||
### Modifications existantes
|
||
|
||
- **__init__**: Ajout du paramètre `workflow_matcher` et initialisation des dictionnaires de tracking
|
||
- **accept_suggestion**: Intégration du tracking d'acceptation pour les workflows
|
||
- **reject_suggestion**: Intégration du tracking de rejet pour les workflows
|
||
- **get_stats**: Ajout des statistiques de rejets et ajustements
|
||
|
||
## État des données
|
||
|
||
### Nouveaux attributs de classe
|
||
```python
|
||
self.workflow_matcher: WorkflowMatcher
|
||
self.workflow_rejections: Dict[str, int] # workflow_id -> count
|
||
self.workflow_priority_adjustments: Dict[str, float] # workflow_id -> multiplier
|
||
```
|
||
|
||
## Tests
|
||
|
||
✓ 8/8 tests passés:
|
||
- Syntaxe correcte
|
||
- Toutes les méthodes présentes
|
||
- Imports corrects
|
||
- Paramètres __init__ corrects
|
||
- Logique de tracking des rejets
|
||
- Logique de tracking des acceptations
|
||
- Intégration accept/reject
|
||
- Couverture des requirements
|
||
|
||
## Requirements couverts
|
||
|
||
- ✓ **1.4**: Vérification périodique avec check_workflow_match()
|
||
- ✓ **1.5**: Suggestions détaillées avec create_workflow_suggestion()
|
||
- ✓ **3.3**: Tracking des rejets et ajustement après 3 rejets
|
||
- ✓ **3.5**: Filtrage par fenêtre (via WorkflowMatcher)
|
||
|
||
## Exemple d'utilisation
|
||
|
||
```python
|
||
# Vérifier les matchs périodiquement
|
||
match = suggestion_manager.check_workflow_match(session_actions, workflows)
|
||
|
||
# Créer une suggestion si match trouvé
|
||
if match:
|
||
suggestion = suggestion_manager.create_workflow_suggestion(match)
|
||
|
||
# L'utilisateur accepte ou rejette
|
||
if user_accepts:
|
||
suggestion_manager.accept_suggestion() # Réduit les rejets
|
||
else:
|
||
suggestion_manager.reject_suggestion() # Incrémente les rejets
|
||
```
|
||
|
||
## Impact sur le système
|
||
|
||
### Ajustement de priorité
|
||
- 0 rejets: confiance × 1.0 (100%)
|
||
- 3 rejets: confiance × 0.9 (90%)
|
||
- 6 rejets: confiance × 0.81 (81%)
|
||
- 9 rejets: confiance × 0.729 (73%)
|
||
|
||
### Récompenses
|
||
- Chaque acceptation réduit le compteur de rejets de 2
|
||
- Si rejets < 3, l'ajustement est supprimé
|
||
|
||
## Prochaines étapes
|
||
|
||
Le SuggestionManager est maintenant prêt pour:
|
||
- **Task 3**: Intégration dans l'Orchestrator
|
||
- **Task 4**: Amélioration du GUI Overlay
|
||
- **Task 5**: Amélioration du TaskReplayEngine
|
||
|
||
## Fichiers créés
|
||
|
||
- `test_suggestion_manager_simple.py`: Tests de validation
|
||
- `SUGGESTION_MANAGER_IMPROVEMENTS.md`: Documentation détaillée
|
||
- `TASK_2_SUMMARY.md`: Ce résumé
|
||
|
||
---
|
||
|
||
**Status**: ✓ COMPLÉTÉ
|
||
**Date**: 2025-11-19
|
||
**Tests**: 8/8 passés
|