Files
rpa_vision_v3/examples/TEST_WORKFLOW_README.md
Dom a27b74cf22 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>
2026-01-29 11:23:51 +01:00

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:

  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

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_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