feat(agent): add learn action flow and grounding guards

This commit is contained in:
Dom
2026-06-02 16:24:10 +02:00
parent 86b3c8f7e7
commit d38f0b0f2f
39 changed files with 5901 additions and 212 deletions

View File

@@ -248,8 +248,10 @@ class DialogHandler:
try:
import easyocr
from core.llm.ocr_extractor import easyocr_gpu_enabled
gpu = easyocr_gpu_enabled(default=False)
self._easyocr_reader = easyocr.Reader(
['fr', 'en'], gpu=True, verbose=False
['fr', 'en'], gpu=gpu, verbose=False
)
return self._easyocr_reader
except ImportError:

View File

@@ -144,19 +144,21 @@ class FastDetector:
_easyocr_reader = None # Singleton EasyOCR (chargé une fois)
def _ocr_extract(self, image) -> List[Dict[str, Any]]:
"""Extrait les mots visibles via EasyOCR (GPU, ~500ms).
"""Extrait les mots visibles via EasyOCR.
Fallback sur docTR si EasyOCR non disponible.
"""
try:
import numpy as np
import easyocr
from core.llm.ocr_extractor import easyocr_gpu_enabled
# Singleton : charger le reader une seule fois
if FastDetector._easyocr_reader is None:
print(f"🔍 [FAST/ocr] Chargement EasyOCR (GPU)...")
gpu = easyocr_gpu_enabled(default=False)
print(f"🔍 [FAST/ocr] Chargement EasyOCR ({'GPU' if gpu else 'CPU'})...")
FastDetector._easyocr_reader = easyocr.Reader(
['fr', 'en'], gpu=True, verbose=False
['fr', 'en'], gpu=gpu, verbose=False
)
results = FastDetector._easyocr_reader.readtext(np.array(image))

View File

@@ -148,10 +148,16 @@ class TitleVerifier:
try:
import easyocr
import numpy as np
from core.llm.ocr_extractor import easyocr_gpu_enabled
if TitleVerifier._easyocr_reader is None:
gpu = easyocr_gpu_enabled(default=False)
TitleVerifier._easyocr_reader = easyocr.Reader(
['fr', 'en'], gpu=True, verbose=False
['fr', 'en'], gpu=gpu, verbose=False
)
logger.info(
"TitleVerifier EasyOCR initialisé (fr+en, %s)",
"GPU" if gpu else "CPU",
)
def _easyocr_extract_text(img):