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:
164
examples/TEST_WORKFLOW_README.md
Normal file
164
examples/TEST_WORKFLOW_README.md
Normal file
@@ -0,0 +1,164 @@
|
||||
# Tests de Construction de Workflow
|
||||
|
||||
Ce dossier contient des scripts pour tester la construction de workflows avec GraphBuilder.
|
||||
|
||||
## Scripts Disponibles
|
||||
|
||||
### 1. `test_workflow_synthetic.py` - Test Rapide
|
||||
|
||||
Test avec une session synthétique (pas besoin de GUI).
|
||||
|
||||
```bash
|
||||
python examples/test_workflow_synthetic.py
|
||||
```
|
||||
|
||||
**Utilité:** Valider rapidement que GraphBuilder fonctionne.
|
||||
|
||||
### 2. `test_workflow_construction.py` - Test avec Session Réelle
|
||||
|
||||
Test avec une session capturée via l'interface GUI.
|
||||
|
||||
```bash
|
||||
# Utilise automatiquement la session la plus récente dans data/sessions/
|
||||
python examples/test_workflow_construction.py
|
||||
|
||||
# Ou spécifier un fichier
|
||||
python examples/test_workflow_construction.py data/sessions/ma_session.json
|
||||
```
|
||||
|
||||
## Workflow de Test Complet
|
||||
|
||||
### Étape 1: Lancer l'Interface GUI
|
||||
|
||||
L'interface de test est disponible à: **http://127.0.0.1:5000**
|
||||
|
||||
Pour la lancer (si pas déjà fait):
|
||||
```bash
|
||||
# Depuis le terminal
|
||||
google-chrome http://127.0.0.1:5000
|
||||
```
|
||||
|
||||
### Étape 2: Capturer une Session
|
||||
|
||||
Dans l'interface GUI:
|
||||
1. Cliquer sur "Démarrer Capture"
|
||||
2. Effectuer plusieurs actions répétées (ex: cliquer 3-4 fois sur différents boutons)
|
||||
3. Cliquer sur "Arrêter Capture"
|
||||
4. Sauvegarder la session dans `data/sessions/`
|
||||
|
||||
### Étape 3: Tester la Construction
|
||||
|
||||
```bash
|
||||
python examples/test_workflow_construction.py
|
||||
```
|
||||
|
||||
Le script va:
|
||||
- ✅ Charger la session la plus récente
|
||||
- ✅ Construire le workflow avec GraphBuilder
|
||||
- ✅ Détecter les patterns répétés
|
||||
- ✅ Créer les nodes et edges
|
||||
- ✅ Afficher un rapport détaillé
|
||||
|
||||
## Sortie Attendue
|
||||
|
||||
```
|
||||
[1/5] Chargement de la session: data/sessions/session_001.json
|
||||
✓ Session chargée: session_001
|
||||
- Screenshots: 15
|
||||
- Événements: 45
|
||||
|
||||
[2/5] Initialisation du GraphBuilder
|
||||
✓ GraphBuilder initialisé
|
||||
|
||||
[3/5] Construction du workflow
|
||||
✓ Workflow construit: workflow_session_001
|
||||
- Nodes: 3
|
||||
- Edges: 2
|
||||
|
||||
[4/5] Analyse des nodes
|
||||
Node node_000:
|
||||
- Name: State Pattern 0
|
||||
- Observations: 5
|
||||
- Similarity threshold: 0.85
|
||||
|
||||
[5/5] Analyse des edges
|
||||
Edge edge_000:
|
||||
- From: node_000 → To: node_001
|
||||
- Action: mouse_click
|
||||
- Target: primary_action
|
||||
- Observations: 3
|
||||
|
||||
✓ TEST RÉUSSI
|
||||
Workflow: 3 nodes, 2 edges
|
||||
FAISS index: 15 vectors
|
||||
```
|
||||
|
||||
## Dépannage
|
||||
|
||||
### Erreur: "Aucune session trouvée"
|
||||
|
||||
**Solution:** Capturer une session via l'interface GUI d'abord.
|
||||
|
||||
### Erreur: "Session has no screenshots"
|
||||
|
||||
**Solution:** La session est vide. Capturer une nouvelle session avec des actions.
|
||||
|
||||
### Erreur: "Not enough states for pattern detection"
|
||||
|
||||
**Solution:** Capturer plus d'actions (minimum 3 répétitions du même pattern).
|
||||
|
||||
## Structure des Données
|
||||
|
||||
### Session JSON
|
||||
|
||||
```json
|
||||
{
|
||||
"session_id": "session_001",
|
||||
"agent_version": "v3.0",
|
||||
"screenshots": [
|
||||
{
|
||||
"screenshot_id": "screen_000",
|
||||
"relative_path": "data/screenshots/screen_000.png",
|
||||
"captured_at": "2024-11-23T10:00:00"
|
||||
}
|
||||
],
|
||||
"events": [...]
|
||||
}
|
||||
```
|
||||
|
||||
### Workflow Construit
|
||||
|
||||
```
|
||||
Workflow
|
||||
├── Nodes (patterns détectés)
|
||||
│ ├── node_000: "State Pattern 0" (5 observations)
|
||||
│ ├── node_001: "State Pattern 1" (4 observations)
|
||||
│ └── node_002: "State Pattern 2" (3 observations)
|
||||
└── Edges (transitions)
|
||||
├── edge_000: node_000 → node_001 (mouse_click)
|
||||
└── edge_001: node_001 → node_002 (mouse_click)
|
||||
```
|
||||
|
||||
## Paramètres de Configuration
|
||||
|
||||
Dans `GraphBuilder`:
|
||||
|
||||
```python
|
||||
builder = GraphBuilder(
|
||||
min_pattern_repetitions=3, # Répétitions min pour un pattern
|
||||
clustering_eps=0.15, # Distance max DBSCAN
|
||||
clustering_min_samples=2 # Échantillons min par cluster
|
||||
)
|
||||
```
|
||||
|
||||
**Ajuster si:**
|
||||
- Trop de patterns détectés → Augmenter `min_pattern_repetitions`
|
||||
- Pas assez de patterns → Diminuer `min_pattern_repetitions` ou augmenter `clustering_eps`
|
||||
|
||||
## Prochaines Étapes
|
||||
|
||||
Après validation des tests:
|
||||
1. Implémenter extraction d'actions réelles depuis events
|
||||
2. Enrichir les contraintes des ScreenTemplates
|
||||
3. Ajouter tests property-based
|
||||
4. Optimiser la détection de patterns
|
||||
Reference in New Issue
Block a user