3.6 KiB
3.6 KiB
Design - Mode Assisté avec Suggestions
Overview
Le Mode Assisté détecte quand l'utilisateur commence un workflow connu et propose de le compléter automatiquement. Le système compare les actions en cours avec les workflows sauvegardés et affiche une suggestion si la correspondance est suffisante.
Architecture
User Actions → SessionManager → WorkflowMatcher → SuggestionManager → GUI
↓
Workflows (JSON)
Flux :
- L'utilisateur effectue des actions
- SessionManager crée une session en cours
- WorkflowMatcher compare avec les workflows connus
- Si match > 80%, SuggestionManager crée une suggestion
- GUI affiche la suggestion avec timeout de 10s
- Utilisateur accepte (Enter) ou rejette (Escape)
- Si accepté, TaskReplayEngine exécute les étapes restantes
Components
1. WorkflowMatcher (Nouveau)
Responsabilité : Comparer les actions courantes avec les workflows connus
Méthodes :
def match_current_session(session, workflows) -> List[WorkflowMatch]:
"""Compare la session courante avec tous les workflows"""
def calculate_match_score(actions, workflow_steps) -> float:
"""Calcule le score de correspondance (0-1)"""
def find_best_match(matches) -> Optional[WorkflowMatch]:
"""Retourne le meilleur match si > 80%"""
Algorithme de matching :
- Comparer les N premières actions avec le début de chaque workflow
- Score = (actions_matching / total_actions) * position_similarity
- Position similarity : tolérance de 50px
2. SuggestionManager (Existant - À améliorer)
Améliorations nécessaires :
- Méthode
check_workflow_match(): vérifie périodiquement les matchs - Méthode
create_workflow_suggestion(): crée une suggestion de workflow - Gestion du timeout (10 secondes)
- Tracking des rejets pour ajuster la priorité
3. GUI Overlay (Existant - À améliorer)
Améliorations :
- Affichage des 3 prochaines étapes
- Boutons Enter/Escape bien visibles
- Barre de progression pendant l'exécution
- Notification de succès/échec
4. TaskReplayEngine (Existant)
Utilisation :
- Exécuter les étapes restantes du workflow
- Recherche visuelle pour chaque étape
- Feedback visuel pendant l'exécution
Data Models
WorkflowMatch
@dataclass
class WorkflowMatch:
workflow_id: str
workflow_name: str
confidence: float
matched_steps: int
total_steps: int
remaining_steps: List[WorkflowStep]
Suggestion (Existant - À étendre)
{
"type": "workflow",
"workflow_id": str,
"workflow_name": str,
"confidence": float,
"current_step": int,
"remaining_steps": List[dict],
"created_at": datetime,
"timeout": 10.0
}
Error Handling
- Match échoue : Continuer en mode manuel, ne pas suggérer
- Exécution échoue : Arrêter, notifier l'utilisateur, rollback optionnel
- Timeout : Dismisser la suggestion silencieusement
- Rejet répété : Réduire la priorité du workflow (confidence *= 0.9)
Testing Strategy
Unit Tests
- Test du matching avec différents workflows
- Test du calcul de score
- Test de la tolérance de position
- Test du timeout
Integration Tests
- Test du flux complet : action → suggestion → exécution
- Test avec workflows réels de la calculatrice
- Test des rejets et acceptations
Performance
- Latence de détection : < 500ms
- Affichage suggestion : < 1s après le match
- Exécution par étape : ~500ms (recherche visuelle + action)
- Fréquence de vérification : Toutes les 2 secondes en mode Assist