- 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>
4.0 KiB
4.0 KiB
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).
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.
# 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):
# Depuis le terminal
google-chrome http://127.0.0.1:5000
Étape 2: Capturer une Session
Dans l'interface GUI:
- Cliquer sur "Démarrer Capture"
- Effectuer plusieurs actions répétées (ex: cliquer 3-4 fois sur différents boutons)
- Cliquer sur "Arrêter Capture"
- Sauvegarder la session dans
data/sessions/
Étape 3: Tester la Construction
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
{
"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:
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_repetitionsou augmenterclustering_eps
Prochaines Étapes
Après validation des tests:
- Implémenter extraction d'actions réelles depuis events
- Enrichir les contraintes des ScreenTemplates
- Ajouter tests property-based
- Optimiser la détection de patterns