feat: replay visuel VLM-first, worker séparé, package Léa, AZERTY, sécurité HTTPS
Pipeline replay visuel : - VLM-first : l'agent appelle Ollama directement pour trouver les éléments - Template matching en fallback (seuil strict 0.90) - Stop immédiat si élément non trouvé (pas de clic blind) - Replay depuis session brute (/replay-session) sans attendre le VLM - Vérification post-action (screenshot hash avant/après) - Gestion des popups (Enter/Escape/Tab+Enter) Worker VLM séparé : - run_worker.py : process distinct du serveur HTTP - Communication par fichiers (_worker_queue.txt + _replay_active.lock) - Le serveur HTTP ne fait plus jamais de VLM → toujours réactif - Service systemd rpa-worker.service Capture clavier : - raw_keys (vk + press/release) pour replay exact indépendant du layout - Fix AZERTY : ToUnicodeEx + AltGr detection - Enter capturé comme \n, Tab comme \t - Filtrage modificateurs seuls (Ctrl/Alt/Shift parasites) - Fusion text_input consécutifs, dédup key_combo Sécurité & Internet : - HTTPS Let's Encrypt (lea.labs + vwb.labs.laurinebazin.design) - Token API fixe dans .env.local - HTTP Basic Auth sur VWB - Security headers (HSTS, CSP, nosniff) - CORS domaines publics, plus de wildcard Infrastructure : - DPI awareness (SetProcessDpiAwareness) Python + Rust - Métadonnées système (dpi_scale, window_bounds, monitors, os_theme) - Template matching multi-scale [0.5, 2.0] - Résolution dynamique (plus de hardcode 1920x1080) - VLM prefill fix (47x speedup, 3.5s au lieu de 180s) Modules : - core/auth/ : credential vault (Fernet AES), TOTP (RFC 6238), auth handler - core/federation/ : LearningPack export/import anonymisé, FAISS global - deploy/ : package Léa (config.txt, Lea.bat, install.bat, LISEZMOI.txt) UX : - Filtrage OS (VWB + Chat montrent que les workflows de l'OS courant) - Bibliothèque persistante (cache local + SQLite) - Clustering hybride (titre fenêtre + DBSCAN) - EdgeConstraints + PostConditions peuplés - GraphBuilder compound actions (toutes les frappes) Agent Rust : - Token Bearer auth (network.rs) - sysinfo.rs (DPI, résolution, window bounds via Win32 API) - config.txt lu automatiquement - Support Chrome/Brave/Firefox (pas que Edge) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
85
deploy/lea_package/LISEZMOI.txt
Normal file
85
deploy/lea_package/LISEZMOI.txt
Normal file
@@ -0,0 +1,85 @@
|
||||
============================================================
|
||||
Lea - Votre assistante intelligente
|
||||
============================================================
|
||||
|
||||
Bienvenue ! Lea est une assistante qui apprend vos taches
|
||||
repetitives sur l'ordinateur et peut les refaire a votre place.
|
||||
|
||||
|
||||
PREMIERE INSTALLATION
|
||||
---------------------
|
||||
|
||||
1. Double-cliquez sur "install.bat"
|
||||
(cela prend 2-3 minutes, une seule fois)
|
||||
|
||||
2. Si une fenetre vous demande d'autoriser Python,
|
||||
cliquez "Oui" ou "Autoriser".
|
||||
|
||||
3. A la fin, vous verrez "Installation terminee !"
|
||||
|
||||
|
||||
LANCER LEA
|
||||
----------
|
||||
|
||||
Double-cliquez sur "Lea.bat"
|
||||
|
||||
Lea apparait en bas a droite de votre ecran, dans la barre
|
||||
des taches (petite icone ronde, a cote de l'horloge).
|
||||
|
||||
Clic droit sur l'icone pour ouvrir le menu :
|
||||
|
||||
- "Apprenez-moi une tache" : Lea observe ce que vous faites
|
||||
et memorise les etapes.
|
||||
|
||||
- "Mes taches" : Liste des taches que Lea a apprises.
|
||||
Cliquez sur une tache pour que Lea la refasse.
|
||||
|
||||
- "Discuter avec Lea" : Ouvre une fenetre de discussion
|
||||
pour poser des questions ou donner des instructions.
|
||||
|
||||
- "ARRET D'URGENCE" : Arrete immediatement tout ce que
|
||||
Lea est en train de faire.
|
||||
|
||||
- "Quitter Lea" : Ferme le programme.
|
||||
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
Si vous devez modifier l'adresse du serveur, ouvrez le fichier
|
||||
"config.txt" avec le Bloc-notes et changez les valeurs.
|
||||
|
||||
Ne modifiez rien d'autre sans l'accord de votre administrateur.
|
||||
|
||||
|
||||
EN CAS DE PROBLEME
|
||||
-------------------
|
||||
|
||||
- "Python n'est pas installe" : Demandez a votre
|
||||
service informatique d'installer Python 3.10
|
||||
depuis https://python.org
|
||||
|
||||
- Lea ne demarre pas : Relancez "install.bat" puis
|
||||
relancez "Lea.bat"
|
||||
|
||||
- Lea est deconnectee : Verifiez votre connexion
|
||||
internet/reseau. Le serveur est peut-etre en
|
||||
maintenance.
|
||||
|
||||
- En cas de doute, contactez votre administrateur.
|
||||
|
||||
|
||||
INFORMATIONS
|
||||
------------
|
||||
|
||||
Lea est un systeme base sur l'intelligence artificielle.
|
||||
|
||||
Quand Lea enregistre vos actions, elle capture votre ecran,
|
||||
vos clics et vos frappes clavier. Les donnees sensibles
|
||||
(mots de passe, informations medicales) sont automatiquement
|
||||
floutees avant envoi.
|
||||
|
||||
Vous pouvez arreter l'enregistrement ou le replay a tout
|
||||
moment via le menu ou le bouton "ARRET D'URGENCE".
|
||||
|
||||
============================================================
|
||||
54
deploy/lea_package/Lea.bat
Normal file
54
deploy/lea_package/Lea.bat
Normal file
@@ -0,0 +1,54 @@
|
||||
@echo off
|
||||
chcp 65001 >nul 2>&1
|
||||
title Lea - Assistante IA
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: Se placer dans le dossier du script (important pour les chemins)
|
||||
:: ---------------------------------------------------------------
|
||||
cd /d "%~dp0"
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: Verifier que l'installation a ete faite
|
||||
:: ---------------------------------------------------------------
|
||||
if not exist ".venv\Scripts\python.exe" (
|
||||
echo.
|
||||
echo Lea n'est pas encore installee.
|
||||
echo Lancez d'abord "install.bat" puis revenez ici.
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: Charger la configuration depuis config.txt
|
||||
:: Les lignes commencant par # sont ignorees (commentaires)
|
||||
:: Format attendu : NOM_VARIABLE=valeur
|
||||
:: ---------------------------------------------------------------
|
||||
if exist "config.txt" (
|
||||
for /f "usebackq eol=# tokens=1,* delims==" %%a in ("config.txt") do (
|
||||
if not "%%a"=="" if not "%%b"=="" set "%%a=%%b"
|
||||
)
|
||||
) else (
|
||||
echo ATTENTION : config.txt introuvable, utilisation des valeurs par defaut.
|
||||
)
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: Lancer Lea
|
||||
:: ---------------------------------------------------------------
|
||||
echo.
|
||||
echo Demarrage de Lea...
|
||||
echo (Lea apparait dans la barre des taches, en bas a droite)
|
||||
echo.
|
||||
echo Pour arreter Lea : clic droit sur l'icone ^> "Quitter Lea"
|
||||
echo Vous pouvez fermer cette fenetre.
|
||||
echo.
|
||||
|
||||
.venv\Scripts\pythonw.exe run_agent_v1.py
|
||||
if errorlevel 1 (
|
||||
echo.
|
||||
echo Lea a rencontre un probleme au demarrage.
|
||||
echo Tentative avec affichage des erreurs...
|
||||
echo.
|
||||
.venv\Scripts\python.exe run_agent_v1.py
|
||||
pause
|
||||
)
|
||||
31
deploy/lea_package/config.txt
Normal file
31
deploy/lea_package/config.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
# ============================================================
|
||||
# Configuration Lea
|
||||
# ============================================================
|
||||
#
|
||||
# Ce fichier contient les parametres de connexion au serveur.
|
||||
# Modifiez uniquement les valeurs apres le signe =
|
||||
# Ne touchez pas aux noms des parametres (a gauche du =).
|
||||
#
|
||||
# Les lignes commencant par # sont des commentaires (ignorees).
|
||||
#
|
||||
# ============================================================
|
||||
|
||||
# Adresse du serveur Lea (URL complete avec /api/v1)
|
||||
RPA_SERVER_URL=https://lea.labs.laurinebazin.design/api/v1
|
||||
|
||||
# Cle d'authentification (fournie par l'administrateur)
|
||||
RPA_API_TOKEN=86031addb338e449fccdb1a983f61807aec15d42d482b9c7748ad607dc23caab
|
||||
|
||||
# Nom du serveur (sans https://, sans /api/v1)
|
||||
RPA_SERVER_HOST=lea.labs.laurinebazin.design
|
||||
|
||||
# ============================================================
|
||||
# Parametres avances (ne pas modifier sauf indication)
|
||||
# ============================================================
|
||||
|
||||
# Flouter les zones de texte dans les captures (securite donnees)
|
||||
# Mettre false uniquement pour le developpement/tests
|
||||
RPA_BLUR_SENSITIVE=true
|
||||
|
||||
# Duree de conservation des logs en jours (minimum 180 pour conformite)
|
||||
RPA_LOG_RETENTION_DAYS=180
|
||||
127
deploy/lea_package/install.bat
Normal file
127
deploy/lea_package/install.bat
Normal file
@@ -0,0 +1,127 @@
|
||||
@echo off
|
||||
chcp 65001 >nul 2>&1
|
||||
title Lea - Installation
|
||||
|
||||
echo.
|
||||
echo ============================================================
|
||||
echo Lea - Installation
|
||||
echo ============================================================
|
||||
echo.
|
||||
echo Cette installation prend 2-3 minutes.
|
||||
echo Ne fermez pas cette fenetre.
|
||||
echo.
|
||||
echo ============================================================
|
||||
echo.
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: 0. Verifier que Python est installe
|
||||
:: ---------------------------------------------------------------
|
||||
echo [1/5] Verification de Python...
|
||||
|
||||
python --version >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo.
|
||||
echo ERREUR : Python n'est pas installe sur cet ordinateur.
|
||||
echo.
|
||||
echo Pour installer Python :
|
||||
echo 1. Allez sur https://python.org
|
||||
echo 2. Cliquez "Download Python 3.12"
|
||||
echo 3. IMPORTANT : cochez "Add Python to PATH" pendant l'installation
|
||||
echo 4. Relancez install.bat apres l'installation de Python
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:: Afficher la version Python detectee
|
||||
for /f "tokens=*" %%v in ('python --version 2^>^&1') do echo %%v detecte - OK
|
||||
echo.
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: 1. Creer l'environnement virtuel
|
||||
:: ---------------------------------------------------------------
|
||||
if not exist ".venv" (
|
||||
echo [2/5] Creation de l'environnement isole...
|
||||
python -m venv .venv
|
||||
if errorlevel 1 (
|
||||
echo ERREUR : Impossible de creer l'environnement virtuel.
|
||||
echo Verifiez que Python est correctement installe.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo Environnement cree - OK
|
||||
) else (
|
||||
echo [2/5] Environnement existant detecte - OK
|
||||
)
|
||||
echo.
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: 2. Activer l'environnement
|
||||
:: ---------------------------------------------------------------
|
||||
echo [3/5] Activation de l'environnement...
|
||||
call .venv\Scripts\activate.bat
|
||||
echo Active - OK
|
||||
echo.
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: 3. Installer les dependances
|
||||
:: ---------------------------------------------------------------
|
||||
echo [4/5] Installation des composants (cela peut prendre 1-2 min)...
|
||||
python -m pip install --upgrade pip --quiet 2>nul
|
||||
pip install -r requirements_agent.txt --quiet 2>nul
|
||||
if errorlevel 1 (
|
||||
echo.
|
||||
echo ATTENTION : Certains composants n'ont pas pu etre installes.
|
||||
echo Nouvelle tentative avec affichage des details...
|
||||
echo.
|
||||
pip install -r requirements_agent.txt
|
||||
if errorlevel 1 (
|
||||
echo.
|
||||
echo ERREUR : L'installation a echoue.
|
||||
echo Verifiez votre connexion internet et reessayez.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
echo Composants installes - OK
|
||||
echo.
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: 4. Post-installation Windows (pywin32)
|
||||
:: ---------------------------------------------------------------
|
||||
echo [5/5] Configuration Windows...
|
||||
python -c "import win32api" >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
python .venv\Scripts\pywin32_postinstall.py -install >nul 2>&1
|
||||
)
|
||||
echo Configuration terminee - OK
|
||||
echo.
|
||||
|
||||
:: ---------------------------------------------------------------
|
||||
:: 5. Verification finale
|
||||
:: ---------------------------------------------------------------
|
||||
echo ============================================================
|
||||
echo Verification finale...
|
||||
echo ============================================================
|
||||
echo.
|
||||
|
||||
python -c "import mss; import pynput; import pystray; import plyer; import requests; import PIL; print(' Tous les composants sont OK !')"
|
||||
if errorlevel 1 (
|
||||
echo.
|
||||
echo ATTENTION : Certains composants manquent.
|
||||
echo Essayez de relancer install.bat.
|
||||
echo Si le probleme persiste, contactez votre administrateur.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ============================================================
|
||||
echo.
|
||||
echo Installation terminee !
|
||||
echo.
|
||||
echo Pour lancer Lea, double-cliquez sur "Lea.bat"
|
||||
echo.
|
||||
echo ============================================================
|
||||
echo.
|
||||
pause
|
||||
13
deploy/lea_package/requirements_agent.txt
Normal file
13
deploy/lea_package/requirements_agent.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
# Dependances Lea Agent (client leger)
|
||||
# Pas de CLIP, PyTorch, ou modele lourd - tout le calcul est sur le serveur
|
||||
|
||||
mss>=9.0.1 # Capture d'ecran haute performance
|
||||
pynput>=1.7.7 # Clavier/Souris
|
||||
Pillow>=10.0.0 # Traitement image (crops, compression)
|
||||
requests>=2.31.0 # Communication serveur
|
||||
psutil>=5.9.0 # Monitoring CPU/RAM
|
||||
pystray>=0.19.5 # Icone systray
|
||||
plyer>=2.1.0 # Notifications toast natives
|
||||
|
||||
# Windows specifique
|
||||
pywin32>=306 ; sys_platform == 'win32'
|
||||
Reference in New Issue
Block a user