perf: réduire crops VLM 80→30 + fix bridge learned workflows path
- 30 crops suffisent pour les éléments UI principaux - ~6min/screenshot au lieu de 17min (3x plus rapide) - Bridge cherche aussi dans live_sessions/workflows/ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -217,7 +217,7 @@ class UIDetector:
|
|||||||
# des centaines d'appels VLM inutiles (~2-3s chacun).
|
# des centaines d'appels VLM inutiles (~2-3s chacun).
|
||||||
# On garde max 80 candidats — suffisant pour obtenir ~50 éléments
|
# On garde max 80 candidats — suffisant pour obtenir ~50 éléments
|
||||||
# après filtrage par confiance, tout en gardant un temps raisonnable.
|
# après filtrage par confiance, tout en gardant un temps raisonnable.
|
||||||
max_candidates = 80
|
max_candidates = 30 # 30 suffisent pour les éléments principaux (~6min/screenshot au lieu de 17)
|
||||||
if len(regions) > max_candidates:
|
if len(regions) > max_candidates:
|
||||||
# Trier par confiance décroissante, puis par surface décroissante
|
# Trier par confiance décroissante, puis par surface décroissante
|
||||||
regions.sort(key=lambda r: (r.confidence, r.w * r.h), reverse=True)
|
regions.sort(key=lambda r: (r.confidence, r.w * r.h), reverse=True)
|
||||||
|
|||||||
@@ -553,8 +553,14 @@ def list_learned_workflows_from_disk() -> List[Dict[str, Any]]:
|
|||||||
|
|
||||||
Retourne une liste de dicts avec les métadonnées de base.
|
Retourne une liste de dicts avec les métadonnées de base.
|
||||||
"""
|
"""
|
||||||
base_dir = Path(_ROOT) / "data" / "training" / "workflows"
|
# Chercher dans les deux emplacements possibles
|
||||||
if not base_dir.exists():
|
base_dirs = [
|
||||||
|
Path(_ROOT) / "data" / "training" / "workflows",
|
||||||
|
Path(_ROOT) / "data" / "training" / "live_sessions" / "workflows",
|
||||||
|
]
|
||||||
|
|
||||||
|
existing_dirs = [d for d in base_dirs if d.exists()]
|
||||||
|
if not existing_dirs:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
workflows = []
|
workflows = []
|
||||||
@@ -578,10 +584,9 @@ def list_learned_workflows_from_disk() -> List[Dict[str, Any]]:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning("Erreur lecture %s : %s", f, e)
|
logger.warning("Erreur lecture %s : %s", f, e)
|
||||||
|
|
||||||
# Racine
|
# Scanner tous les répertoires trouvés
|
||||||
|
for base_dir in existing_dirs:
|
||||||
_scan_dir(base_dir)
|
_scan_dir(base_dir)
|
||||||
|
|
||||||
# Sous-dossiers machine
|
|
||||||
for machine_dir in sorted(base_dir.iterdir()):
|
for machine_dir in sorted(base_dir.iterdir()):
|
||||||
if machine_dir.is_dir():
|
if machine_dir.is_dir():
|
||||||
_scan_dir(machine_dir, machine_id=machine_dir.name)
|
_scan_dir(machine_dir, machine_id=machine_dir.name)
|
||||||
|
|||||||
Reference in New Issue
Block a user