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:
@@ -372,6 +372,23 @@ with app.app_context():
|
||||
db.session.rollback()
|
||||
print(f" [DB] Colonne '{col_name}' déjà existante ou erreur: {e}")
|
||||
|
||||
# Migration manuelle : ajouter les colonnes OCR/VLM aux ancres visuelles
|
||||
if 'visual_anchors' in insp.get_table_names():
|
||||
existing_anchor_cols = {col['name'] for col in insp.get_columns('visual_anchors')}
|
||||
new_anchor_cols = {
|
||||
'target_text': "ALTER TABLE visual_anchors ADD COLUMN target_text TEXT",
|
||||
'ocr_description': "ALTER TABLE visual_anchors ADD COLUMN ocr_description TEXT",
|
||||
}
|
||||
for col_name, sql in new_anchor_cols.items():
|
||||
if col_name not in existing_anchor_cols:
|
||||
try:
|
||||
db.session.execute(text(sql))
|
||||
db.session.commit()
|
||||
print(f" [DB] Colonne '{col_name}' ajoutée à visual_anchors")
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
print(f" [DB] Colonne '{col_name}' déjà existante ou erreur: {e}")
|
||||
|
||||
# Initialize VisualTargetManager with RPA Vision V3 components (optional)
|
||||
try:
|
||||
from core.capture.screen_capturer import ScreenCapturer
|
||||
|
||||
Reference in New Issue
Block a user