Dom ca81850a20
Some checks failed
tests / Lint (ruff + black) (push) Successful in 16s
tests / Tests unitaires (sans GPU) (push) Failing after 15s
tests / Tests sécurité (critique) (push) Has been skipped
docs(audit): rapport médecin DIM senior + TIM sur arbre décisionnel UHCD/Forfait
Audit du cœur métier de la démo GHT Sud 95 (8 mai 2026), du point de vue
d'un médecin DIM senior qui se ferait challenger par le DSI Carvella.
Confronte : arbre officiel RPU UHCD IA.pptx (7 slides), code métier
agent_chat/urgences_orchestrator.py + core/llm/t2a_decision.py, prompts
LLM en place, 11 dossiers anonymisés data.js, bench Dom 18 modèles,
référentiels officiels (SFMU 2024, instructions DGOS, arrêtés 2021/2024
ATIH, recommandations IPAQSS).

Findings critiques (avant démo) :

1. Bug silencieux modèle — t2a_decision.py:28 met DEFAULT_MODEL=qwen2.5:7b
   (64 % accuracy au bench Dom) alors que gemma3:27b-cloud (73 %) est
   retenu par BENCH_T2A_DECISION_11DOSSIERS. Si T2A_MODEL pas posé via
   env, on tourne sur le mauvais modèle. 9 points d'accuracy laissés
   sur la table.

2. Règle de combinaison incorrecte dans le prompt — code dit "au moins
   2 sur 3 ⇒ REQUALIFICATION" alors que l'arbre PPTX d'Eaubonne dit
   "si oui aux 3 critères". Cause probable des faux positifs UHCD du
   bench (25003284, 25056615). Quick win = passer à 3/3.

3. Trous métier dans le prompt : aucune mention CCMU, GEMSA, durée,
   mode de sortie, type de forfait précis (SU2/PE2/Standard). C'est
   exactement où se loge le ROI 100k€/mois. 5 quick wins prompt
   rédigés prêts à coller dans §E.4 du rapport.

4. Trois dossiers à NE PAS montrer en démo (25056615, 25151530, 25003475,
   25048485) — trop ambigus, hallucinations LLM, structure non tranchée.

5. Trois dossiers à mettre en avant (25003451 SU2 plaie 2h, 25010621
   PE2 laryngite, 25003364 UHCD pneumo SLA) — décisions justes,
   justifications béton.

Argumentaire pré-démo : 9 questions/réponses face à Carvella
(instructions DGOS, SFMU, cumul SU2+PE2, hallucination LLM, ROI 100k€).

Roadmap post-démo pour Amina : bench étendu 50-100 dossiers + 3
inférences/dossier, fine-tune t2a-gemma3-27b, distinction forfaits
fine, module ATIH-aware, couverture pédia/géria/psy, sortie contre
avis, transferts.

Note : aucun changement de code dans ce commit. Rapport seul. Les
quick wins identifiés (3/3, modèle par défaut, prompts enrichis)
sont à appliquer demain matin avec validation Dom + Amina.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 22:21:13 +02:00

RPA Vision V3 — Automatisation basée sur la compréhension visuelle des interfaces

⚠️ Projet en phase POC — voir docs/STATUS.md pour l'état réel par module. Certaines briques sont opérationnelles bout en bout, d'autres sont en cours de stabilisation. Ce dépôt n'est pas production-ready.

Dernière mise à jour : 14 avril 2026

Intention

Automatiser des workflows métier par compréhension sémantique de l'écran plutôt que par coordonnées de clic fixes. Le système observe l'utilisateur, reconstruit un graphe d'états de l'interface, et cherche à rejouer la procédure en reconnaissant visuellement les éléments cibles — y compris quand l'UI change légèrement.

Terrain cible principal : postes hospitaliers (Citrix, applications métier web et desktop). Contrainte forte : 100 % local, pas d'appel à un LLM cloud dans le pipeline par défaut.

Architecture en couches

RawSession (couche 0) — capture événements + screenshots
        ↓
ScreenState (couche 1) — états d'écran à plusieurs niveaux d'abstraction
        ↓
UIElement (couche 2) — détection sémantique (cascade OCR + templates + VLM)
        ↓
State Embedding (couche 3) — fusion multi-modale + index FAISS
        ↓
Workflow Graph (couche 4) — nœuds, transitions, résolution de cibles

État des fonctionnalités (synthèse)

Le détail par module est dans docs/STATUS.md.

Opérationnel

  • Capture Windows (Agent V1) + streaming vers serveur Linux
  • Stockage des sessions brutes (screenshots + événements)
  • Streaming server FastAPI, sessions en mémoire
  • Build du package Windows (deploy/build_package.sh)

Alpha (fonctionnel sur un cas de référence, encore peu généralisé)

  • Détection UI par cascade VLM + OCR + templates
  • Construction de workflow graph depuis une session
  • Replay E2E supervisé — premier succès sur Notepad le 13 avril 2026
  • Mode apprentissage : pause et demande d'aide humaine quand la résolution échoue
  • Embeddings CLIP + index FAISS
  • Module auth (Fernet + TOTP), federation (LearningPack)
  • Web Dashboard, Agent Chat

En cours

  • Visual Workflow Builder (VWB) — bugs DB runtime connus
  • Self-healing / recovery global
  • Analytics / reporting
  • Worker de compilation sessions → ExecutionPlan
  • Tests E2E multi-applications

Limitations connues

  • Le pipeline de replay est validé sur un nombre très restreint d'applications.
  • TargetMemoryStore (apprentissage Phase 1) est câblé mais sa base reste vide tant qu'un replay complet n'a pas été cristallisé.
  • Certaines asymétries entre chemins stricts et legacy dans le serveur de streaming peuvent provoquer des arrêts au lieu de pauses d'apprentissage.
  • VWB n'est pas encore stable en écriture ; un outil dédié plus simple est envisagé.

Démarrage

Prérequis

  • Python 3.10 à 3.12
  • Ollama installé et démarré localement
  • Recommandé : GPU NVIDIA pour l'inférence VLM
  • Windows 10/11 uniquement pour le client Agent V1

Installation

# 1) Cloner puis créer le venv
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# 2) Démarrer Ollama et récupérer le modèle VLM par défaut
ollama serve &
ollama pull gemma4:latest        # défaut du projet
# Alternatives supportées :
# ollama pull qwen3-vl:8b
# ollama pull 0000/ui-tars-1.5-7b-q8_0:7b   # grounder visuel

# 3) Copier et ajuster la configuration
cp .env.example .env
# éditer .env pour vérifier RPA_VLM_MODEL, VLM_ENDPOINT, ports, etc.

Lancer les services

Tous les services sont pilotés par svc.sh (source de vérité des ports : services.conf).

./svc.sh status          # État de tous les services
./svc.sh start           # Tout démarrer
./svc.sh start streaming # Streaming server uniquement (port 5005)
./svc.sh restart api     # Redémarrer l'API (port 8000)
./svc.sh stop            # Tout arrêter
Port Service
8000 API Server (upload / traitement core)
5001 Web Dashboard
5002 VWB Backend (Flask)
5003 Monitoring
5004 Agent Chat
5005 Streaming Server (Agent V1 → pipeline core)
5006 Session Cleaner
5099 Worker de compilation (optionnel)
3002 VWB Frontend (Vite/React)

Client Windows (Agent V1)

Le client capture souris, clavier et écran sur le poste Windows et envoie les données au streaming server Linux.

# Build du package Windows depuis le repo Linux
./deploy/build_package.sh
# produit deploy/Lea_v<version>.zip

Voir docs/DEV_SETUP.md pour la maintenance du dépôt (worktrees, build, services).

Arborescence du dépôt

rpa_vision_v3/
├── agent_v0/                # Agent V1 (client Windows) + serveur de streaming
│   ├── agent_v1/            # Source de l'agent (capture, UI tray, exécution)
│   └── server_v1/           # FastAPI streaming + processeurs
├── core/                    # Pipeline core
│   ├── detection/           # Cascade VLM + OCR + templates
│   ├── embedding/           # CLIP + FAISS
│   ├── graph/               # Construction / matching de workflow graphs
│   ├── execution/           # Résolution de cibles, actions LLM
│   ├── learning/            # TargetMemoryStore (apprentissage)
│   ├── auth/                # Vault Fernet + TOTP
│   └── federation/          # Export/import de LearningPacks
├── visual_workflow_builder/ # VWB (backend Flask + frontend React Vite)
├── web_dashboard/           # Dashboard Flask + SocketIO
├── agent_chat/              # Interface conversationnelle + planner
├── deploy/                  # Scripts de build et unités systemd
├── data/                    # Sessions, embeddings, index FAISS, apprentissage
├── docs/                    # Documentation technique
├── tests/                   # pytest (unit, integration, e2e)
├── services.conf            # Source de vérité des ports
├── svc.sh                   # Orchestrateur des services
└── run.sh                   # Démarrage tout-en-un (legacy, préférer svc.sh)

Tests

source .venv/bin/activate

# Tests rapides (hors marqueur slow)
pytest -m "not slow" -q

# Tests d'intégration (streaming, pipeline)
pytest tests/integration/ -q

# Tests E2E
pytest tests/test_pipeline_e2e.py -q

Quelques tests legacy sont connus comme cassés — voir la mémoire projet et docs/ pour la liste.

Documentation

Concepts clés

  • RPA 100 % vision : pas de coordonnées fixes ; l'agent localise un élément par ce qu'il voit (label + contexte visuel), pas par x,y.
  • Apprentissage progressif : mode shadow → assisté → autonome, validé par supervision humaine sur les échecs.
  • LLM 100 % local : Ollama sur la machine. Aucun appel cloud dans le pipeline par défaut (cf. feedback projet feedback_local_only.md).

Licence

Propriétaire — tous droits réservés.

Description
No description provided
Readme 667 MiB
Languages
Python 82.6%
TypeScript 11.8%
HTML 2.7%
Shell 1.2%
CSS 1.1%
Other 0.4%