docs: consolidation 5 avril — état des lieux complet

Pipeline entraînement validé (15.7s, extrapolation 1h = 10 min).
CLIP vérification validée (sim 0.87-0.99 sur fenêtres).
Acteur gemma4 branché (PASSER/EXECUTER/STOPPER, think=True).
Grounding fenêtre + template taskbar fonctionnels.
Problèmes identifiés : ambiguïté Rechercher, éléments VLM.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-04-05 21:25:10 +02:00
parent 8589e87a13
commit 72a9651b94

View File

@@ -0,0 +1,77 @@
# Consolidation — 5 avril 2026
## Ce qui fonctionne
### Pipeline d'entraînement (mesuré)
| Étape | Temps/screenshot | Extrapolation 1h |
|-------|-----------------|------------------|
| ScreenAnalyzer (OCR docTR) | 1.05s | 9 min |
| CLIP Embeddings (ViT-B-32) | 0.093s | 1 min |
| FAISS Index | <0.01s | <1s |
| GraphBuilder | 0.7s total | <1 min |
| **Total** | **1.2s/shot** | **~10 min** |
### Résolution visuelle
- **Grounding qwen2.5vl** : fonctionne sur les fenêtres croppées (by_text OCR/VLM)
- **Template matching** : fonctionne pour les icônes/taskbar (crop 80x80)
- **gemma4 enrichissement** : lit le texte des éléments sans OCR (onglets, icônes)
### Vérifications
- **CLIP** : vérifie la bonne application (sim > 0.75 sur fenêtre)
- **Titre fenêtre** : vérifie l'état par nom d'app (polling 10s)
- **Pré-vérification** : stoppe si mauvaise fenêtre AVANT de cliquer
### Acteur intelligent
- **gemma4 think=True** : décide PASSER/EXECUTER/STOPPER (5s, 75% correct)
- Branché dans l'executor quand target_not_found
- Mode texte CPU (pas d'image, pas de VRAM)
### Infrastructure
- Ollama 0.16.3 host (port 11434) : qwen2.5vl:7b GPU 9.4GB
- Docker Ollama 0.20 (port 11435) : gemma4:e4b GPU 3.6GB
- Jamais simultanés (auto-unload gemma4 après build)
- VM Win11 (192.168.122.14) : SSH + agent Léa
- Anti-bot : Bézier mouse + frappe char-by-char
## Problèmes identifiés (non résolus)
### P1 : Ambiguïté "Rechercher" (taskbar vs explorateur)
Le crop 80x80 de la barre de recherche Windows ressemble à la barre
de recherche de l'explorateur. Le template matching clique au mauvais
endroit. L'acteur doit apprendre à distinguer les contextes.
### P2 : Éléments VLM (by_text_source="vlm")
Le grounding qwen2.5vl ne trouve pas toujours les textes lus par
gemma4 (ex: "voiture elec" — texte d'onglet). L'acteur prend le
relais et décide PASSER quand l'état est déjà atteint.
### P3 : Premier chargement VLM lent
Le premier appel à qwen2.5vl ou gemma4 après redémarrage prend 30-60s
(chargement en VRAM). Les appels suivants sont rapides (0.2-5s).
## Architecture validée
```
ENREGISTREMENT (une fois)
Agent capture → screenshots + events
BUILD (une fois, ~15s)
ScreenAnalyzer (OCR) → CLIP → FAISS → GraphBuilder
gemma4 enrichit les éléments sans OCR
→ Workflow enrichi + actions avec embeddings CLIP
REPLAY (à chaque exécution)
Fast path :
Titre fenêtre OK → grounding qwen2.5vl → clic → polling titre → OK
Slow path (quand target_not_found) :
Acteur gemma4 → PASSER / STOPPER / EXECUTER
```
## Métriques de replay sur VM
| Session | Résultat | Détail |
|---------|----------|--------|
| Notepad (dernier test) | 4/32 actions | Recherche + ouverture Bloc-notes OK, bloque sur onglet |
| Grounding texte OCR | 100% | Rechercher, Ouvrir, Fichier, Enregistrer |
| CLIP vérification | 100% | sim 0.87-0.99 |
| Acteur gemma4 | Validé unitairement | PASSER correct pour onglet actif |