135 lines
3.5 KiB
Markdown
135 lines
3.5 KiB
Markdown
# 🤝 Mode Assisté - Avancement
|
|
|
|
## ✅ Ce qui vient d'être créé
|
|
|
|
### 1. Documentation
|
|
|
|
**`MODE_ASSISTE_CONCEPTION.md`** - Conception complète du Mode Assisté
|
|
- Flux détaillé
|
|
- Architecture
|
|
- Implémentation
|
|
- Interface utilisateur
|
|
- Tests
|
|
|
|
### 2. Code
|
|
|
|
**`geniusia2/core/suggestion_manager.py`** (300 lignes)
|
|
|
|
Fonctionnalités :
|
|
- ✅ Recherche de suggestions basée sur FAISS
|
|
- ✅ Calcul de scores de confiance
|
|
- ✅ Gestion des timeouts (10s par défaut)
|
|
- ✅ Callbacks pour événements
|
|
- ✅ Thread-safe avec locks
|
|
- ✅ Logging complet
|
|
|
|
Méthodes principales :
|
|
- `find_suggestion()` - Recherche dans FAISS
|
|
- `create_suggestion()` - Crée une suggestion
|
|
- `accept_suggestion()` - Accepte et met à jour stats
|
|
- `reject_suggestion()` - Rejette et met à jour stats
|
|
- `check_timeout()` - Vérifie l'expiration
|
|
|
|
## 🔄 Ce qu'il reste à faire
|
|
|
|
### Étape 1 : Intégrer dans l'Orchestrator ⭐
|
|
|
|
**Fichier** : `geniusia2/core/orchestrator.py`
|
|
|
|
**Modifications** :
|
|
```python
|
|
from .suggestion_manager import SuggestionManager
|
|
from .task_replay import TaskReplayEngine
|
|
|
|
class Orchestrator:
|
|
def __init__(self, ...):
|
|
# Ajouter
|
|
self.suggestion_manager = SuggestionManager(...)
|
|
self.replay_engine = TaskReplayEngine(...)
|
|
|
|
def _on_user_action(self, action):
|
|
# Capturer contexte
|
|
context = self._capture_context()
|
|
|
|
# Créer suggestion si applicable
|
|
if self.learning_manager.get_mode() == "assist":
|
|
self.suggestion_manager.create_suggestion(context)
|
|
```
|
|
|
|
### Étape 2 : Ajouter Overlay dans la GUI ⭐
|
|
|
|
**Fichier** : `geniusia2/gui/minimal_gui.py`
|
|
|
|
**Modifications** :
|
|
- Ajouter widget de suggestion (overlay)
|
|
- Gérer les touches Entrée/Échap/Alt+C
|
|
- Afficher confiance et description
|
|
|
|
### Étape 3 : Connecter les Callbacks
|
|
|
|
**Dans Orchestrator** :
|
|
```python
|
|
self.suggestion_manager.on_suggestion_created = self._on_suggestion_created
|
|
self.suggestion_manager.on_suggestion_accepted = self._on_suggestion_accepted
|
|
self.suggestion_manager.on_suggestion_rejected = self._on_suggestion_rejected
|
|
```
|
|
|
|
### Étape 4 : Implémenter l'Exécution
|
|
|
|
**Méthode à ajouter** :
|
|
```python
|
|
def _execute_suggestion(self, suggestion):
|
|
"""Exécute une suggestion acceptée."""
|
|
task_id = suggestion["task_id"]
|
|
|
|
# Utiliser le replay engine
|
|
result = await self.replay_engine.replay_task(task_id)
|
|
|
|
# Logger le résultat
|
|
self.logger.log_action({
|
|
"action": "suggestion_executed",
|
|
"task_id": task_id,
|
|
"success": result["success"]
|
|
})
|
|
```
|
|
|
|
### Étape 5 : Tester
|
|
|
|
**Tests à faire** :
|
|
1. Créer une tâche (3x clic)
|
|
2. Refaire l'action une fois
|
|
3. Vérifier qu'une suggestion apparaît
|
|
4. Tester Entrée (accepter)
|
|
5. Tester Échap (refuser)
|
|
|
|
## 📊 Estimation
|
|
|
|
| Étape | Temps | Complexité |
|
|
|-------|-------|------------|
|
|
| Intégration Orchestrator | 30 min | Moyenne |
|
|
| Overlay GUI | 45 min | Moyenne |
|
|
| Callbacks | 15 min | Facile |
|
|
| Exécution | 20 min | Facile |
|
|
| Tests | 30 min | Facile |
|
|
| **Total** | **~2h30** | **Moyenne** |
|
|
|
|
## 🎯 Prochaine Action
|
|
|
|
**Option 1** : Continuer maintenant
|
|
- Je peux implémenter l'intégration dans l'Orchestrator
|
|
- Puis l'overlay dans la GUI
|
|
- Et tester le tout
|
|
|
|
**Option 2** : Faire une pause
|
|
- Tu as déjà le `SuggestionManager` fonctionnel
|
|
- Tu peux tester le reste plus tard
|
|
- La documentation est complète
|
|
|
|
**Qu'est-ce que tu préfères ?** 🤔
|
|
|
|
1. **Continuer** : On implémente l'intégration maintenant
|
|
2. **Pause** : On s'arrête là pour aujourd'hui
|
|
3. **Tester d'abord** : On teste ce qui existe déjà
|
|
|
|
**Dis-moi ! 😊**
|