feat: floutage auto champs sensibles + fix routing actions fichiers

Floutage (conformité AI Act) :
- Détection OpenCV des champs de saisie (rectangles clairs avec texte)
- Flou gaussien avant stockage/envoi
- Activé par défaut (RPA_BLUR_SENSITIVE=true)
- <200ms par screenshot, 12 tests

Fix actions fichiers VWB :
- Pas de wait 5s pour les actions fichiers (inutile)
- Routing direct vers agent port 5006

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-03-18 16:24:01 +01:00
parent 40e5fba86c
commit 353c2a347e
6 changed files with 436 additions and 4 deletions

View File

@@ -21,6 +21,9 @@ logger = logging.getLogger(__name__)
CAPTURE_PORT = int(os.environ.get("RPA_CAPTURE_PORT", "5006"))
# Floutage des données sensibles (conformité AI Act)
BLUR_SENSITIVE = os.environ.get("RPA_BLUR_SENSITIVE", "true").lower() in ("true", "1", "yes")
class CaptureHandler(BaseHTTPRequestHandler):
"""Retourne un screenshot frais a chaque requete GET /capture.
@@ -95,6 +98,14 @@ class CaptureHandler(BaseHTTPRequestHandler):
img = Image.frombytes("RGB", raw.size, raw.bgra, "raw", "BGRX")
# Floutage des données sensibles (conformité AI Act)
if BLUR_SENSITIVE:
try:
from ..vision.blur_sensitive import blur_sensitive_regions
blur_sensitive_regions(img)
except ImportError:
logger.warning("Module blur_sensitive non disponible")
buf = io.BytesIO()
img.save(buf, format="JPEG", quality=80)
img_b64 = base64.b64encode(buf.getvalue()).decode()