feat: analyse OCR+VLM de l'ancre à la capture (pas à l'exécution)
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 13s
security-audit / pip-audit (CVE dépendances) (push) Successful in 11s
security-audit / Scan secrets (grep) (push) Successful in 8s
tests / Lint (ruff + black) (push) Successful in 14s
tests / Tests unitaires (sans GPU) (push) Failing after 15s
tests / Tests sécurité (critique) (push) Has been skipped
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 13s
security-audit / pip-audit (CVE dépendances) (push) Successful in 11s
security-audit / Scan secrets (grep) (push) Successful in 8s
tests / Lint (ruff + black) (push) Successful in 14s
tests / Tests unitaires (sans GPU) (push) Failing after 15s
tests / Tests sécurité (critique) (push) Has been skipped
Quand l'utilisateur sélectionne une ancre dans le VWB : 1. OCR docTR extrait le texte du crop → target_text 2. Si texte < 3 chars → VLM qwen2.5vl:3b décrit en 5 mots 3. Stocké en BDD (VisualAnchor.target_text + ocr_description) 4. Injecté automatiquement dans les params à l'exécution L'exécution sait maintenant QUOI chercher dès le départ : - CLIP vérifie par OCR que le texte correspond - Le grounding cascade a un vrai target_text - Plus besoin de deviner à chaque run Migration SQLite gracieuse (ALTER TABLE si colonnes absentes). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -183,6 +183,11 @@ class VisualAnchor(db.Model):
|
||||
# Description pour l'utilisateur
|
||||
description = db.Column(db.Text, nullable=True)
|
||||
|
||||
# Texte OCR extrait du crop de l'ancre (analyse à la capture)
|
||||
target_text = db.Column(db.Text, nullable=True)
|
||||
# Description VLM de l'ancre (si l'OCR ne trouve pas de texte)
|
||||
ocr_description = db.Column(db.Text, nullable=True)
|
||||
|
||||
# Seuil de confiance pour la détection
|
||||
confidence_threshold = db.Column(db.Float, default=0.8)
|
||||
|
||||
@@ -207,6 +212,8 @@ class VisualAnchor(db.Model):
|
||||
'height': self.screen_height
|
||||
} if self.screen_width else None,
|
||||
'description': self.description,
|
||||
'target_text': self.target_text,
|
||||
'ocr_description': self.ocr_description,
|
||||
'confidence_threshold': self.confidence_threshold,
|
||||
'created_at': self.created_at.isoformat() if self.created_at else None
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user