v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution

- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Dom
2026-01-29 11:23:51 +01:00
parent 21bfa3b337
commit a27b74cf22
1595 changed files with 412691 additions and 400 deletions

View File

@@ -0,0 +1,182 @@
# Documentation ActionExecutor
**Auteur**: Dom, Alice Kiro - 15 décembre 2024
## Vue d'ensemble
L'ActionExecutor est le composant central responsable de l'exécution automatique des actions de workflow dans RPA Vision V3. Il fait partie de la couche d'exécution (`core/execution/`) et implémente un système robuste d'exécution d'actions avec gestion d'erreurs et stratégies de récupération.
## Architecture
### Classes principales
#### ExecutionStatus (Enum)
Énumération des statuts d'exécution possibles :
- `SUCCESS`: Exécution réussie
- `FAILED`: Échec d'exécution
- `TIMEOUT`: Timeout dépassé
- `PRECONDITION_FAILED`: Pré-conditions non satisfaites
- `POSTCONDITION_FAILED`: Post-conditions non satisfaites
- `TARGET_NOT_FOUND`: Cible non trouvée
#### ExecutionResult (Dataclass)
Résultat d'une exécution d'action contenant :
- `status`: Statut d'exécution
- `message`: Message descriptif
- `duration_ms`: Durée d'exécution en millisecondes
- `target_resolved`: Cible résolue (optionnel)
- `error`: Exception capturée (optionnel)
#### ActionExecutor
Classe principale gérant l'exécution des actions avec :
- Résolution de cibles via TargetResolver
- Gestion d'erreurs via ErrorHandler
- Vérification des pré/post-conditions
- Stratégies de fallback multiples
## Types d'actions supportés
### 1. MOUSE_CLICK
Exécution de clics souris avec :
- Résolution automatique de la cible
- Calcul de position de clic (centre de l'élément)
- Support des offsets personnalisés
- Stratégies de fallback multiples
### 2. TEXT_INPUT
Saisie de texte avec :
- Clic automatique pour focus
- Substitution de variables depuis le contexte
- Gestion des délais d'attente
### 3. COMPOUND
Exécution de séquences d'actions avec :
- Politiques de répétition configurables
- Gestion des échecs en cascade
## Stratégies de fallback
### Fallback par similarité visuelle
- Utilise les embeddings visuels CLIP
- Seuil de similarité : 0.75
- Recherche l'élément le plus similaire visuellement
### Fallback par position approximative
- Utilise les positions historiques
- Seuil de distance : 100 pixels
- Trouve l'élément le plus proche géographiquement
## Gestion des erreurs
### Types d'erreurs gérés
- Cible non trouvée (TARGET_NOT_FOUND)
- Violation de post-conditions (POSTCONDITION_VIOLATION)
- Timeouts d'exécution
### Stratégies de récupération
- RETRY : Nouvelle tentative avec fallbacks
- ROLLBACK : Annulation de la dernière action
- SKIP : Ignorer l'action et continuer
## Configuration
### Paramètres par défaut
- `default_timeout_ms`: 5000ms
- `verify_postconditions`: True
- `pyautogui.PAUSE`: 0.1s entre actions
- `pyautogui.FAILSAFE`: True (sécurité)
### Délais d'attente
- Après clic : 500ms (configurable)
- Après saisie : 500ms (configurable)
- Vérification post-conditions : 5000ms
## Intégration avec les autres composants
### TargetResolver
- Résolution de cibles par rôle sémantique
- Recherche dans les éléments UI détectés
- Support des critères de matching avancés
### ErrorHandler
- Enregistrement des actions pour rollback
- Logging structuré des erreurs
- Statistiques d'échecs par edge
### ScreenState
- Accès aux éléments UI détectés
- Contexte de fenêtre active
- Embeddings pour fallbacks
## Métriques et monitoring
### Statistiques collectées
- Durée d'exécution par action
- Taux de succès par type d'action
- Utilisation des stratégies de fallback
- Fréquence des violations de post-conditions
### Logging
- Niveau DEBUG : Détails d'exécution
- Niveau INFO : Actions principales
- Niveau WARNING : Fallbacks utilisés
- Niveau ERROR : Échecs critiques
## Exemples d'utilisation
### Exécution simple
```python
executor = ActionExecutor()
result = executor.execute_edge(edge, screen_state)
if result.status == ExecutionStatus.SUCCESS:
print(f"Action réussie en {result.duration_ms}ms")
```
### Avec contexte de variables
```python
context = {"username": "alice", "password": "secret"}
result = executor.execute_edge(edge, screen_state, context)
```
### Configuration personnalisée
```python
executor = ActionExecutor(
default_timeout_ms=10000,
verify_postconditions=False
)
```
## Évolutions futures
### Améliorations prévues
- Support des actions de glisser-déposer
- Reconnaissance de gestes complexes
- Adaptation dynamique des seuils de fallback
- Apprentissage des patterns d'échec
### Optimisations
- Cache des résolutions de cibles
- Prédiction des positions futures
- Parallélisation des vérifications
- Réduction des délais d'attente
## Tests et validation
### Tests unitaires
- Couverture de tous les types d'actions
- Simulation des échecs de résolution
- Validation des stratégies de fallback
### Tests d'intégration
- Workflows complets end-to-end
- Interaction avec composants réels
- Performance sous charge
### Tests de robustesse
- Gestion des changements d'UI
- Récupération après pannes
- Comportement en mode dégradé
---
*Cette documentation fait partie du système RPA Vision V3 - Architecture 5 couches*