backup: snapshot post-démo GHT 2026-05-19
Backup état complet après enregistrement vidéo démo de bout en bout. À utiliser comme point de référence pour la consolidation post-démo. Changements majeurs de la session 18-19 mai : - AIVA-URGENCE : page autonome avec preset URL + auto-focus chain - Workflow Demo_urgence_3_db : merge linux_db + steps AIVA + pause humaine NoMachine - Bypass LLM (static_result / static_text) dans replay_engine pour démos déterministes sans appel Ollama - Fix api_stream:3013 — replay_paused au premier polling /next - dag_execute : lift duration_ms vers top-level pour wait runtime - NPM bypass auth /aiva-urgence/ via location ^~ (proxy_host/10.conf hors git) - scripts/cancel-replays.sh — workaround Stop VWB qui ne purge pas la queue Anchors visuels (468) forcés dans le commit pour garantir restorabilité. DB workflows actuelle + ~12 .bak DB de la journée incluses. Sujets identifiés pour consolidation post-démo (TODO) : 1. Bug VWB recapture anchor ne régénère pas le PNG 2. Léa client accumule état mémoire (restart périodique requis) 3. Stop VWB ne purge pas la queue serveur (lien manquant vers /replay/cancel) 4. Bug coord client mss tronqué 2560x60 → mapping Y cassé 5. delay_before/delay_after ignorés au runtime (fix partiel duration_ms) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
695
archive/historical_recall/recall_2026-05-08.md
Normal file
695
archive/historical_recall/recall_2026-05-08.md
Normal file
@@ -0,0 +1,695 @@
|
||||
Bonjour ! Aujourd'hui, nous devons réaliser la démo de bout en bout et sans accros. Il nous faut être précis pour ne pas avoir à refaire constamment le workflow, c'est long et
|
||||
chronophaque. Il faut penser que l'on doit pouvoir "communiquer" avec Léa pour lui demander de faire le travail. Par exemple, traite moi les 3 premiers dossier (dans vwb on a un
|
||||
outil de lescture de tableau ?). Il faut donc qu'elle soit capable de lire le tableau correctement et faire le traitement propre au fur et à mesure. On peut aussi, si c'est
|
||||
nécessaire modifier l'interface de la maquette pour plus de simplicité. Pour finir, est ce que l'utilisation de vwb est suffisament solide pour faire l'exercice plutôt que
|
||||
d'utiliser le mode d'apprentissage de lea ? Ne code rien, on discute.
|
||||
|
||||
● Bonjour. Avant de raisonner architecture, j'ai besoin de clarifier 3 choses :
|
||||
|
||||
Questions de cadrage
|
||||
|
||||
1. Quand exactement la démo ? La semaine est entamée — on parle de mardi-mercredi-jeudi ? Combien d'heures de prep on a réellement avant ?
|
||||
2. Scénario souhaité : tu te projettes en quoi devant la DSI Carvella ?
|
||||
- "Je dis à Léa : traite les 3 premiers dossiers. Léa lit le tableau, choisit, fait, rapporte" — pur pilotage vocal/chat
|
||||
- Ou : "Je clique le bouton Léa qui lance le workflow A pour le dossier sélectionné" — démo de l'automatisation, pilotage visuel
|
||||
- Ou les deux à des moments différents
|
||||
3. Métier vs tech : Carvella vient en adversaire technique (RPA classique). Tu veux qu'il soit bluffé sur l'INTELLIGENCE de Léa (compréhension naturelle, lecture de tableau,
|
||||
généralisation) ou sur la PROFONDEUR métier (preuves cliniques citées, gain ROI 100k€/mois) ? Les deux mais quel curseur ?
|
||||
|
||||
Maintenant mes réponses sur tes 4 points :
|
||||
|
||||
Outil de lecture de tableau dans VWB
|
||||
|
||||
À ma connaissance non, pas d'action spécifique extract_table. Ce qui existe :
|
||||
- extract_text (OCR sur une zone) → renvoie du texte plat, pas une structure
|
||||
- Import Excel via /api/v3/excel/upload (vu hier dans le code) — mais c'est pour DÉPOSER un Excel, pas lire un tableau à l'écran
|
||||
- Les learned_workflows qui ont une notion de "boucle données → UI" (vu un commit 9da804bb6 feat: import Excel → SQLite + boucle données → UI dans le VWB)
|
||||
|
||||
→ Il faudrait que je vérifie learned_workflows.py et la logique de boucle pour voir si ça peut servir. Mais à ce jour, pour lire le tableau de patients à l'écran et boucler dessus,
|
||||
il y a un trou. C'est probablement à construire ou à contourner.
|
||||
|
||||
VWB vs apprentissage Léa pour la démo
|
||||
|
||||
┌───────────────────────────────────────────┬───────────────────────────────────┬──────────────────────────────────┐
|
||||
│ Critère │ Workflow VWB │ Apprentissage Léa │
|
||||
├───────────────────────────────────────────┼───────────────────────────────────┼──────────────────────────────────┤
|
||||
│ Déterminisme (rejouable, pas de surprise) │ ✅ │ ⚠️ moins prévisible │
|
||||
├───────────────────────────────────────────┼───────────────────────────────────┼──────────────────────────────────┤
|
||||
│ Robustesse aux variations UI │ ❌ (cf. nos 8h d'hier) │ ✅ │
|
||||
├───────────────────────────────────────────┼───────────────────────────────────┼──────────────────────────────────┤
|
||||
│ Vitesse de mise au point │ Long, fragile (re-enregistrement) │ Court (Léa s'adapte) │
|
||||
├───────────────────────────────────────────┼───────────────────────────────────┼──────────────────────────────────┤
|
||||
│ Crédibilité démo "IA vraie" │ ⚠️ (RPA classique +) │ ✅ (ce qui te démarque d'Evanov) │
|
||||
├───────────────────────────────────────────┼───────────────────────────────────┼──────────────────────────────────┤
|
||||
│ Risque le jour J │ Modéré (si répété) │ Plus élevé (moins testé) │
|
||||
├───────────────────────────────────────────┼───────────────────────────────────┼──────────────────────────────────┤
|
||||
│ Prêt aujourd'hui │ Presque (re-enregistrement) │ Probablement pas │
|
||||
└───────────────────────────────────────────┴───────────────────────────────────┴──────────────────────────────────┘
|
||||
|
||||
Mon avis honnête : pour la démo qui arrive cette semaine, workflow VWB pour le squelette + intelligence Léa pour la partie qui démarque est le bon mix.
|
||||
|
||||
Concrètement :
|
||||
- Léa lit le tableau patients (étape "intelligente" qu'on met en avant)
|
||||
- Léa choisit les N premiers (capacité de compréhension)
|
||||
- Pour chaque patient, Léa lance le workflow VWB Urgence (mécanique fiable)
|
||||
- Léa rapporte au humain (l'analyse PMSI, les preuves citées)
|
||||
|
||||
L'enveloppe est intelligente. Le moteur dedans est du VWB solide. C'est ce qui te démarque tout en étant fiable.
|
||||
|
||||
Communication avec Léa pour le scénario "traite les 3 premiers"
|
||||
|
||||
Architecturalement, ça implique :
|
||||
1. Un endpoint chat Léa (déjà : rpa-agent-chat port 5004) qui reçoit "traite les 3 premiers dossiers"
|
||||
2. Un NLP léger côté Léa qui interprète : action=process_patients, nombre=3, ordre=top
|
||||
3. Une lecture du tableau : OCR de la zone tableau + parsing par lignes (le tableau est régulier : IPP | Nom | Prénom | … donc parser les colonnes par espaces multiples)
|
||||
4. Une boucle : pour chaque IPP des 3 premiers, lancer le workflow Urgence avec ce dossier en paramètre (ce qui implique de variabiliser le by_text="{{patient_id}}")
|
||||
5. Un retour utilisateur : "Dossier 25003284 codé en FORFAIT_URGENCE — Dossier 25003362 codé en FORFAIT — Dossier 25003364 codé en UHCD avec ces preuves : …"
|
||||
|
||||
L'élément manquant central : paramétrisation du workflow par variable d'entrée + mécanisme de boucle.
|
||||
|
||||
Modifier la maquette ? Oui mais avec discernement
|
||||
|
||||
Modifier pour SIMPLIFIER (rendre les anchors plus stables) = OK. Exemples acceptables :
|
||||
- Compacter les 3 textareas pour tenir dans le viewport sans scroll
|
||||
- Ajouter des bordures contrastées sur les zones cibles (template matching plus robuste)
|
||||
- Mettre un placeholder unique dans chaque textarea (texte distinctif que template matching reconnaît)
|
||||
|
||||
Modifier pour TRICHER (afficher déjà la décision UHCD avant que Léa ait analysé) = NON, ça tue la crédibilité.
|
||||
|
||||
Question de précision et non-régression
|
||||
|
||||
C'est ton vrai point critique. Je propose qu'on :
|
||||
1. Fige une procédure d'enregistrement documentée (config Chrome précise, étapes, validation)
|
||||
2. Capture une fois proprement, et après on n'y touche plus
|
||||
3. Crée un script de test E2E qui valide en 30 secondes que le workflow marche encore (à lancer avant chaque session, et avant la démo)
|
||||
|
||||
---
|
||||
Bref, ma recommandation pour aujourd'hui : on construit dans cet ordre :
|
||||
|
||||
1. Discussion : tu réponds à mes 3 questions de cadrage → on aligne sur le scénario démo
|
||||
2. Variabilisation du workflow Urgence : by_text="{{patient_id}}" + extension templating
|
||||
3. Mécanisme Léa lit tableau + boucle sur N patients (enveloppe intelligente autour du workflow VWB)
|
||||
4. Re-enregistrement précis des anchors dans config bureau standard
|
||||
5. Procédure documentée + script de test E2E
|
||||
|
||||
Mais avant tout, je veux entendre tes réponses aux 3 questions de cadrage. Ça change radicalement l'angle.
|
||||
|
||||
✻ Cogitated for 1m 24s
|
||||
|
||||
❯ [Image #2] Il y a bien dans vwb un extracteur de tableau. La démo dans 4 jours. Je n'ai pas compris ta question : "Scénario souhaité : tu te projettes en quoi devant la DSI Carvella
|
||||
?" Pour le 3) je dirais les deux. Pas simplement pour kervella, mais aussi pour les dim/tim/dg. Si je suis assez confiant sur la partie workflow, c'est surtout la partie analyse du
|
||||
dossier qui m"interroge ?
|
||||
⎿ [Image #2]
|
||||
|
||||
● OK, message reçu. L'enjeu majeur c'est la qualité de l'analyse, pas la mécanique. C'est exactement le point qui démarque Léa d'un RPA classique : un workflow qui clique, c'est
|
||||
UiPath. Une Léa qui raisonne juste sur du texte clinique, c'est ton offre.
|
||||
|
||||
Reformulation de ma question scénario
|
||||
|
||||
Concrètement, ce que tes 4 minutes devant les DG vont ressembler. Je veux comprendre le déroulé pour caler le bon niveau de polish à chaque étape :
|
||||
|
||||
- Minute 0 : tu ouvres l'écran, qu'est-ce qui est affiché ? (Easily avec liste de 11 dossiers ? Chat Léa ? Les deux côte à côte ?)
|
||||
- Minute 1 : tu dis quoi à voix / en chat à Léa ? Et qu'est-ce que Carvella+DG voient se passer à l'écran ?
|
||||
- Minute 2-3 : Léa analyse et code 1 ou 3 dossiers. Que regardent-ils ? La maquette qui se remplit ? Léa qui parle ? Un dashboard qui synthétise ?
|
||||
- Minute 4 : Léa rapporte le résultat. Sous quelle forme ? "J'ai codé 3 dossiers : 2 forfaits, 1 UHCD. Voici les preuves de l'UHCD : …". Vocal ? Texte ? Dashboard ?
|
||||
|
||||
Tu n'es pas obligé d'avoir une réponse précise — c'est ce qu'on doit décider ensemble. Mais c'est ce que je voulais dire par "scénario souhaité".
|
||||
|
||||
Sur ton inquiétude (l'analyse) — c'est le vrai sujet
|
||||
|
||||
Je propose un plan de durcissement de l'analyse LLM en 3 axes :
|
||||
|
||||
A. Bench complet sur tes 11 dossiers
|
||||
|
||||
- Lancer t2a_decision sur les 11 dossiers anonymisés (les 4 UHCD + les 4 forfaits + les 3 PE2/SU2/SU2)
|
||||
- Vérifier la décision (vrai positif / vrai négatif)
|
||||
- Vérifier la qualité des preuves (citations littérales vraiment du dossier ? pertinentes ? pas inventées ?)
|
||||
- Vérifier la confiance (le LLM dit "elevee" quand il devrait dire "moyenne" ?)
|
||||
- Tableau de scores : accuracy + qualité preuves + temps + VRAM
|
||||
|
||||
B. Comparer 2-3 modèles
|
||||
|
||||
On a déjà bench medgemma:4b (docs/BENCH_MEDGEMMA.md) et qwen2.5:7b. À tester aussi peut-être gemma3:12b pour voir la marge. Choix final selon : qualité, vitesse, VRAM, robustesse.
|
||||
|
||||
C. Renforcer le prompt si besoin
|
||||
|
||||
Selon le bench, on peut ajouter :
|
||||
- Des exemples few-shot (1 exemple UHCD, 1 forfait, copiés en début de prompt)
|
||||
- Une étape de raisonnement explicite ("Avant de décider, liste les 3 critères et pour chacun cite une preuve")
|
||||
- Un garde-fou : si confiance="faible", Léa demande à l'humain au lieu de coder
|
||||
|
||||
Cela rend l'analyse défendable devant Carvella : tu peux dire "Léa cite le dossier mot pour mot, et quand elle doute, elle nous le dit."
|
||||
|
||||
Pour les 4 jours, je propose ce découpage
|
||||
|
||||
┌───────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||
│ Jour │ Focus │
|
||||
├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Aujourd'hui (J-4) │ Cadrage scénario démo + bench analyse LLM sur 11 dossiers + identification des cas problématiques │
|
||||
├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
|
||||
│ J-3 │ Si bench OK : variabilisation workflow + Extraire tableau + boucle Léa. Si bench KO : amélioration prompt et/ou modèle │
|
||||
├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
|
||||
│ J-2 │ Re-enregistrement workflow propre + intégration mécanisme "Léa lit tableau et traite N dossiers" │
|
||||
├───────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
|
||||
│ J-1 │ Test E2E répété 5-10 fois sur scénario démo. Tweaks finaux. Préparation slides │
|
||||
└───────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
Ce que je propose maintenant (avant de coder)
|
||||
|
||||
1. Tu réponds aux questions scénario ci-dessus (ça cadre tout le reste)
|
||||
2. Je vais voir le code de "Extraire tableau" pour comprendre ses capacités exactes (lecture seule, on discute ensuite)
|
||||
3. Je propose un script de bench des 11 dossiers (qui ne touche pas le code prod, juste pour mesurer)
|
||||
|
||||
OK ?
|
||||
|
||||
✻ Crunched for 58s
|
||||
|
||||
❯ Alors, pour demarrer, chat lea. Je lui demande de traiter 3 dossiers.Elle se réduit (si ça doit être possible) Elle ouvre chrome, tape l'adresse de la maquette, elle lit le
|
||||
tableau. Elle traite aprés dossier par dossier. A la fin, elle dis que c'est fini ! Tu en penses quoi ? Est ce que c'est complexe, ça demande beaucoup de changement ?
|
||||
|
||||
● Ce que tu décris est clair et faisable en 4 jours. Pas de révolution — on a les briques. Il faut surtout assembler et variabiliser.
|
||||
|
||||
Décomposition technique du scénario
|
||||
|
||||
┌────────────────────────────────────────┬─────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────┐
|
||||
│ Étape │ Brique nécessaire │ Existe ? │
|
||||
├────────────────────────────────────────┼─────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Chat Léa reçoit "traite 3 dossiers" │ NLP léger (regex ou mini-LLM) côté chat │ ⚠️ partiel — chat existe, NLP commande à coder │
|
||||
├────────────────────────────────────────┼─────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Léa se réduit │ iconify() Tkinter ou raccourci Win+D │ 🟢 trivial │
|
||||
├────────────────────────────────────────┼─────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Léa ouvre Chrome + tape URL │ Action launch_app ou raccourci Win + Chrome déjà ouvert │ ⚠️ à brancher │
|
||||
├────────────────────────────────────────┼─────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Léa lit le tableau │ "Extraire tableau" VWB │ 🟢 existe (bouton vu) — à vérifier ce qu'il rend │
|
||||
├────────────────────────────────────────┼─────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Léa boucle sur 3 IPP │ Mécanisme boucle workflow + variable {{patient_id}} │ ⚠️ "boucle données→UI" existe partiellement (commit 9da804bb6) — à confirmer │
|
||||
├────────────────────────────────────────┼─────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Pour chaque dossier : workflow Urgence │ Workflow existant variabilisé │ ✏️ workflow OK, juste variabiliser le step 2 │
|
||||
├────────────────────────────────────────┼─────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Léa dit "c'est fini + synthèse" │ Réponse chat + récap des décisions │ ⚠️ à coder simple │
|
||||
└────────────────────────────────────────┴─────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
Évaluation honnête
|
||||
|
||||
Pas complexe au sens "casse-tête". C'est de la plomberie d'assemblage :
|
||||
- 4-5 modifs de code structurelles, chacune ~30 min à 2h
|
||||
- 1 re-enregistrement de workflow (30 min si bien préparé)
|
||||
- 1 jour de test E2E qu'il faut absolument répéter 10× pour la fiabilité
|
||||
|
||||
Le risque majeur : c'est qu'on découvre en cours de route que "Extraire tableau" ne renvoie pas ce qu'on espère, ou que le mécanisme de boucle VWB n'est pas mature, et qu'on doive
|
||||
coder du contournement. Je propose qu'on fasse les 2 vérifications en premier (1h grand max).
|
||||
|
||||
Découpage 4 jours proposé
|
||||
|
||||
┌──────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────┐
|
||||
│ Jour │ Focus │ Livrable │
|
||||
├──────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤
|
||||
│ J-4 │ (1) Vérifier capacités "Extraire tableau" et boucle VWB. (2) Bench analyse LLM sur les 11 dossiers. (3) Cadrage │ Verdict bench LLM + go/no-go boucle VWB │
|
||||
│ (aujourd'hui) │ final scénario │ │
|
||||
├──────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤
|
||||
│ J-3 │ (1) Variabilisation workflow + extension templating. (2) NLP commande chat Léa. (3) Action minimiser + ouvrir │ Léa peut traiter 1 dossier sur commande │
|
||||
│ │ Chrome │ chat │
|
||||
├──────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤
|
||||
│ J-2 │ (1) Re-enregistrement workflow propre. (2) Intégration boucle (Léa traite N dossiers). (3) Synthèse fin │ Démo end-to-end fonctionne au moins 1 │
|
||||
│ │ │ fois │
|
||||
├──────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────┤
|
||||
│ J-1 │ Test E2E répété 5-10 fois. Polish. Procédure documentée. │ Démo robuste, reproductible │
|
||||
└──────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────┘
|
||||
|
||||
Liste précise des changements (cumul sur 4 jours)
|
||||
|
||||
1. Variabiliser by_text du step "sélection patient" : 30 min
|
||||
2. Étendre templating {{var}} au by_text et autres champs (aujourd'hui c'est sur text uniquement) : 1h
|
||||
3. NLP commande chat Léa : regex simple "traite (\d+) dossiers?" + dispatch action : 2h
|
||||
4. Action launch_url ou utilisation du Chrome déjà ouvert (selon préférence) : 30 min
|
||||
5. Mécanisme boucle : à valider (peut-être 0, peut-être 4h)
|
||||
6. Re-enregistrement workflow Urgence + test : 1h-2h
|
||||
7. Synthèse fin de boucle envoyée au chat : 1h
|
||||
8. Procédure et tests E2E : 1 journée
|
||||
|
||||
Total 1.5-2 jours de dev pur, 1 jour de re-enregistrement+test, 1 jour de polish/répétition. Confortable sur 4 jours.
|
||||
|
||||
Question pour décider maintenant
|
||||
|
||||
Avant que je vérifie quoi que ce soit, 2 décisions à prendre :
|
||||
|
||||
A. Sur "Léa ouvre Chrome + tape URL" : c'est un détail théâtral (ça impressionne) mais ça ajoute 1 step potentiellement fragile. Alternative : Chrome est déjà ouvert sur la maquette
|
||||
quand la démo commence, et Léa enchaîne directement la lecture du tableau. Tu préfères ?
|
||||
|
||||
B. Sur "Léa se réduit" : tu veux qu'elle disparaisse de l'écran pendant le travail (ça augmente le côté "elle bosse toute seule"), ou qu'elle reste visible en petite popup (côté "je
|
||||
vois ce qu'elle fait") ? Les deux marchent.
|
||||
|
||||
Une fois ces 2 réponses, je vais voir le code "Extraire tableau" et "boucle VWB" — et reviens avec un verdict en 30 min.
|
||||
|
||||
✻ Cooked for 1m 7s
|
||||
|
||||
❯ Pour le A j'ai déjà fait avec vwb sous linux, ça fonctionne bien et c'est rapide. Sous windows pas testé. Donc, on part sans que chrome soit ouvert. Oui, pendant la démo, léa se
|
||||
réduit completement.
|
||||
|
||||
● OK, je vais voir les 4 capacités existantes en mode read-only et reviens avec un verdict.
|
||||
|
||||
Searched for 11 patterns, read 1 file (ctrl+o to expand)
|
||||
|
||||
● Voici mon verdict après vérification :
|
||||
|
||||
Bilan des briques existantes
|
||||
|
||||
┌───────────────────────────────────┬─────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────┐
|
||||
│ Brique │ État │ Verdict │
|
||||
├───────────────────────────────────┼─────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
|
||||
│ Action extract_table │ 🟡 Bouton frontend OK avec params │ Backend NON implémenté — coquille vide actuellement │
|
||||
├───────────────────────────────────┼─────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
|
||||
│ Mécanisme boucle db_foreach │ ✅ Codé dans dag_execute.py:274 │ Mais côté backend VWB Flask (Linux), pas côté serveur replay (PC Windows) │
|
||||
├───────────────────────────────────┼─────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
|
||||
│ Templating ${current_row.col} │ ✅ Existe pour db_foreach │ Réutilisable │
|
||||
├───────────────────────────────────┼─────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
|
||||
│ Templating {{var}} │ ⚠️ Existe mais uniquement sur le champ text │ À étendre au by_text │
|
||||
├───────────────────────────────────┼─────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
|
||||
│ Action launch_url / ouvrir Chrome │ ❌ Pas trouvée │ À coder ou contourner │
|
||||
├───────────────────────────────────┼─────────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
|
||||
│ Minimiser Léa Tkinter │ ✅ iconify() existe │ Trivial │
|
||||
└───────────────────────────────────┴─────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
Ce qu'il faut construire pour ton scénario
|
||||
|
||||
┌─────┬─────────────────────────────────────────────────────────────────────────────────┬─────────────┐
|
||||
│ # │ Brique │ Coût estimé │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 1 │ extract_table côté serveur replay (OCR + parsing par lignes) │ 3-4h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 2 │ Mécanisme boucle côté replay OU orchestration Python depuis chat Léa │ 3-4h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 3 │ Action launch_chrome_url pour PC Windows (subprocess.Popen Chrome.exe avec URL) │ 1h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 4 │ Étendre templating {{var}} au by_text du click_anchor │ 30 min │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 5 │ Variabiliser le step 2 du workflow Urgence │ 30 min │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 6 │ NLP commande chat ("traite N dossiers" → action structurée) │ 1-2h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 7 │ Action minimiser Léa │ 30 min │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 8 │ Synthèse fin de boucle envoyée au chat │ 1h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 9 │ Re-enregistrement workflow Urgence dans config bureau │ 1h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────┤
|
||||
│ 10 │ Tests E2E répétés │ 1 jour │
|
||||
└─────┴─────────────────────────────────────────────────────────────────────────────────┴─────────────┘
|
||||
|
||||
Total : ~2 jours de dev + 1 jour re-enregistrement + 1 jour de polish. Tient en 4 jours, mais sans marge pour les surprises.
|
||||
|
||||
Le seul vrai point d'incertitude
|
||||
|
||||
extract_table n'a pas d'implémentation serveur. Il faut la construire. C'est faisable proprement (EasyOCR + parsing par espaces multiples sur les colonnes IPP/Nom/Prénom) mais c'est
|
||||
de l'OCR de tableau qui peut avoir des erreurs (caractères mal lus, alignement colonnes). À tester sur ta maquette pour mesurer la précision.
|
||||
|
||||
Plan de mitigation si OCR fragile : la maquette urgence.labs.laurinebazin.design est statique HTML — j'ai vu hier que le <table> est accessible via fetch GET. Si l'OCR rate, on peut
|
||||
récupérer la liste IPP via une simple requête HTTP côté serveur (ce qui n'est pas "tricherie" puisque c'est UNE source de vérité du tableau, juste plus fiable que l'OCR). À garder en
|
||||
filet de sécurité.
|
||||
|
||||
Décision à prendre maintenant
|
||||
|
||||
Option A — On code extract_table côté replay (vraie vision) : aligné feedback_100pct_visual, démontrable comme capacité visuelle de Léa. Risque OCR.
|
||||
|
||||
Option B — Léa lit la liste via fetch HTTP de la maquette : robuste, plus rapide à coder, mais on perd le côté "Léa lit visuellement le tableau" qui est un argument fort vs RPA
|
||||
classique.
|
||||
|
||||
Option C — Hybride : on code extract_table (option A), si l'OCR rate > X%, on bascule auto sur fetch HTTP. Robuste ET visuel.
|
||||
|
||||
Pour la démo qui doit faire effet, C est probablement le bon choix. Mais c'est plus de boulot.
|
||||
|
||||
Mon recommandation : A pour démarrer (~3-4h), test rapide, si OCR donne > 90% de précision sur les 11 lignes c'est gagné. Sinon on bascule B avant la fin de la journée.
|
||||
|
||||
Tu valides A en premier essai ?
|
||||
|
||||
Et pour le chat Léa, tu confirmes que c'est bien rpa-agent-chat (port 5004) qu'on utilise, ou un autre bout d'interface ?
|
||||
|
||||
✻ Baked for 2m 50s
|
||||
|
||||
❯ Ok, il faut que tu me dise pour simplifier l'arbre décisionnel pour moins de "mouvement". On pourrait avoir 1 seul champs texte dans lequel on décompose l'arbre ?
|
||||
|
||||
● Très bonne idée, et je la pousserais même un cran plus loin. Voici ma proposition :
|
||||
|
||||
Maquette simplifiée — passer de 6 anchors à 2
|
||||
|
||||
Avant (actuel)
|
||||
|
||||
- 3 textareas séparées (preuve_critere1/2/3)
|
||||
- 3 checkboxes (validation par critère)
|
||||
- → 6 anchors visuels à enregistrer + 5 actions à mécaniquer
|
||||
|
||||
Après (proposition)
|
||||
|
||||
- 1 grande textarea "Analyse PMSI" avec un texte structuré multi-sections
|
||||
- 1 sélecteur unique de décision : 2 boutons radio [ ] UHCD [ ] Forfait
|
||||
- → 2 anchors visuels + 2 actions
|
||||
|
||||
Format texte unique structuré (rendu par le LLM)
|
||||
|
||||
══════════════════════════════════════════
|
||||
DÉCISION : REQUALIFICATION_HOSPITALISATION (UHCD)
|
||||
Durée passage : 14h | Confiance : élevée
|
||||
|
||||
CRITÈRE 1 — Pathologie potentiellement évolutive : ✓ VALIDÉ
|
||||
« Asthme sévère avec FC 110 bpm, SpO2 92% en air ambiant »
|
||||
Patient instable nécessitant titration salbutamol IV.
|
||||
|
||||
CRITÈRE 2 — Surveillance médicale prolongée : ✓ VALIDÉ
|
||||
« Constantes itératives H+0, H+2, H+4, H+6 »
|
||||
6h de surveillance documentée par IDE.
|
||||
|
||||
CRITÈRE 3 — Examens / actes : ✗ NON VALIDÉ
|
||||
Aucun acte technique au compte-rendu hors aérosols.
|
||||
|
||||
JUSTIFICATION
|
||||
2/3 critères validés → REQUALIFICATION HOSPITALISATION justifiée.
|
||||
══════════════════════════════════════════
|
||||
|
||||
Ce qu'on gagne
|
||||
|
||||
1. Robustesse démo : 2 anchors au lieu de 6 → 3× moins de risques de panne
|
||||
2. Re-enregistrement rapide : ~10 min au lieu de 30
|
||||
3. Workflow plus court : ~20 actions au lieu de 25 (et surtout plus fiable)
|
||||
4. LLM plus simple : 1 sortie narrative + 1 décision booléenne au lieu de 9 champs (3 preuves + 3 booléens + 3 méta)
|
||||
5. Plus lisible pour DG/DIM : un rapport structuré qu'ils peuvent lire et défendre, pas du remplissage de formulaire
|
||||
6. Plus rapide visuellement : 1 frappe + 1 clic au lieu de 3 frappes + 3 clics
|
||||
|
||||
Ce qu'on perd
|
||||
|
||||
1. Distinction "case cochée par critère" : le côté formel "Léa coche chaque case" parle au métier mais c'est aussi un peu bureaucratique. Le rapport unique structuré est plus
|
||||
|
||||
Ce qu'on gagne
|
||||
|
||||
1. Robustesse démo : 2 anchors au lieu de 6 → 3× moins de risques de panne
|
||||
2. Re-enregistrement rapide : ~10 min au lieu de 30
|
||||
3. Workflow plus court : ~20 actions au lieu de 25 (et surtout plus fiable)
|
||||
4. LLM plus simple : 1 sortie narrative + 1 décision booléenne au lieu de 9 champs (3 preuves + 3 booléens + 3 méta)
|
||||
5. Plus lisible pour DG/DIM : un rapport structuré qu'ils peuvent lire et défendre, pas du remplissage de formulaire
|
||||
6. Plus rapide visuellement : 1 frappe + 1 clic au lieu de 3 frappes + 3 clics
|
||||
|
||||
Ce qu'on perd
|
||||
|
||||
1. Distinction "case cochée par critère" : le côté formel "Léa coche chaque case" parle au métier mais c'est aussi un peu bureaucratique. Le rapport unique structuré est plus consultatif.
|
||||
2. Rigueur formelle PMSI : si Easily Assure final exige 3 champs séparés, la maquette diverge — mais c'est un MOCKUP de démo, pas l'outil cible. À argumenter aux DG : "en intégration prod,
|
||||
on remplit les 3 champs métier".
|
||||
|
||||
Ma recommandation : encore mieux ?
|
||||
|
||||
Pour pousser le côté "Léa raisonne et propose" :
|
||||
|
||||
Format affiché en deux parties dans la maquette simplifiée :
|
||||
1. Bloc gauche (auto par Léa) : la grande textarea avec le rapport structuré
|
||||
2. Bloc droit (validation médecin) : les 2 boutons radio UHCD/Forfait
|
||||
|
||||
Léa remplit le bloc gauche (analyse) et coche le bloc droit (décision). Le médecin DIM valide ou corrige. C'est un message démo très fort : "Léa propose, le médecin reste maître". Cela
|
||||
parle aux DG (gain de temps) et au DIM (contrôle métier).
|
||||
|
||||
Décisions à prendre consultatif.
|
||||
2. Rigueur formelle PMSI : si Easily Assure final exige 3 champs séparés, la maquette diverge — mais c'est un MOCKUP de démo, pas l'outil cible. À argumenter aux DG : "en intégration
|
||||
prod, on remplit les 3 champs métier".
|
||||
|
||||
Ma recommandation : encore mieux ?
|
||||
|
||||
Pour pousser le côté "Léa raisonne et propose" :
|
||||
|
||||
Format affiché en deux parties dans la maquette simplifiée :
|
||||
1. Bloc gauche (auto par Léa) : la grande textarea avec le rapport structuré
|
||||
2. Bloc droit (validation médecin) : les 2 boutons radio UHCD/Forfait
|
||||
|
||||
Léa remplit le bloc gauche (analyse) et coche le bloc droit (décision). Le médecin DIM valide ou corrige. C'est un message démo très fort : "Léa propose, le médecin reste maître".
|
||||
Cela parle aux DG (gain de temps) et au DIM (contrôle métier).
|
||||
|
||||
Décisions à prendre
|
||||
|
||||
1. Tu valides la simplification maquette → 1 grande textarea + 2 radio UHCD/Forfait ?
|
||||
2. Tu modifies la maquette toi-même (HTML statique) ou je te propose un patch que tu appliques ?
|
||||
3. Le format texte structuré que j'ai donné en exemple te convient (ASCII frame, sections claires, citations entre « ») ou tu veux autre chose (JSON pretty-print, markdown, tableau)
|
||||
?
|
||||
|
||||
Une fois ça calé, je peux mettre à jour le prompt LLM en conséquence (réécrire t2a_decision.py pour produire 1 rapport narratif + 1 décision au lieu de 9 champs). Et toi tu
|
||||
modifies/me confirmes la maquette → on capture seulement 2 anchors et le workflow devient ultra-stable.
|
||||
|
||||
✻ Crunched for 57s
|
||||
|
||||
※ recap: Objectif : démo Léa "traite N dossiers" jeudi/vendredi en bouclant sur le tableau patients. Tâche actuelle : valider la simplification maquette (1 grande textarea + 2 radios
|
||||
UHCD/Forfait) au lieu de 3 textareas + 3 cases. Prochaine action : ton go/no-go sur cette simplification.
|
||||
|
||||
❯ Pour la simplification de l'interface sur l'arbre de décision et ce ça t'irait ou trop complexe : [Image #3]
|
||||
⎿ [Image #3]
|
||||
|
||||
● OUI excellente idée — cette interface est BEAUCOUP plus forte que ce que je proposais. Et techniquement elle simplifie radicalement la chaîne.
|
||||
|
||||
Ce que ça change positivement
|
||||
|
||||
┌───────────────────────────────┬───────────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────┐
|
||||
│ Aspect │ Avant (3 textareas + 3 checkboxes Easily) │ Après (aiva-vision) │
|
||||
├───────────────────────────────┼───────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Anchors visuels à enregistrer │ 6 fragiles │ 2 robustes (textarea DPI + bouton Analyser) │
|
||||
├───────────────────────────────┼───────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Actions de saisie │ 3 type_text + 3 click conditionnels │ 1 type_text + 1 click │
|
||||
├───────────────────────────────┼───────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Risque de drift UI │ Élevé (formulaire formel) │ Faible (interface stable, contraste fort) │
|
||||
├───────────────────────────────┼───────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Démontrabilité │ "Léa coche des cases" (RPA classique++) │ "Léa lit, analyse, propose une décision" (différenciation forte vs Evanov) │
|
||||
├───────────────────────────────┼───────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Lisibilité pour DG/DIM │ Formulaire administratif │ Synthèse intelligente avec justification + critères + confiance + latence │
|
||||
├───────────────────────────────┼───────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┤
|
||||
│ Crédibilité métier │ "C'est juste de la saisie" │ "C'est une vraie analyse motivée" │
|
||||
└───────────────────────────────┴───────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
Et plus subtil — le bandeau "Vérité-terrain"
|
||||
|
||||
Vérité-terrain : FORFAIT_URGENCE — concordance OK
|
||||
|
||||
→ ÇA, c'est génial pour la démo. Carvella va te demander "comment je sais que Léa ne se trompe pas ?". Tu pointes : "On a une vérité-terrain par dossier, on mesure la concordance.
|
||||
Sur les 11 dossiers qu'on a benchés, on est à X% d'accuracy".
|
||||
|
||||
C'est l'argument anti-FUD parfait.
|
||||
|
||||
Le scénario démo redessiné
|
||||
|
||||
Minute 0 : Dom dans le chat Léa
|
||||
« Léa, traite-moi 3 dossiers urgences »
|
||||
|
||||
Minute 0:10 : Léa se réduit. Chrome s'ouvre sur Easily Assure.
|
||||
|
||||
Minute 0:30 : Léa lit le tableau patients (extract_table)
|
||||
et énumère : « 25003284, 25003362, 25003364 »
|
||||
|
||||
Minute 1 : pour chaque dossier :
|
||||
- Ouvrir le dossier (click)
|
||||
- Naviguer onglets, lire (extract_text × 6)
|
||||
- Bascule sur aiva-vision
|
||||
- Coller le DPI consolidé (1 type_text)
|
||||
- Cliquer "Analyser" (1 click)
|
||||
- Aiva affiche la décision en 3s
|
||||
- Léa capture (screenshot d'évidence) + note la décision
|
||||
|
||||
Minute 4 : retour au chat Léa
|
||||
« Terminé.
|
||||
- Dossier 25003284 (MOREL, asthme) : FORFAIT URGENCES — confiance élevée
|
||||
- Dossier 25003362 (LAFFONT, intoxication) : FORFAIT URGENCES — confiance moyenne
|
||||
- Dossier 25003364 (LEROY, dyspnée) : REQUALIFICATION HOSPITALISATION (UHCD)
|
||||
→ valorisation +1500€ (forfait 50€ → MCO 1k-5k€) »
|
||||
|
||||
C'est propre, démontrable, court, et surtout chaque action est fiable (interface aiva-vision stable).
|
||||
|
||||
Mes questions pour finaliser
|
||||
|
||||
1. Cette interface aiva-vision est-elle déjà déployée et accessible depuis le PC Windows ? Quelle URL ?
|
||||
2. Le bouton "Analyser" déclenche le même backend t2a_decision.py côté serveur ou un autre endpoint ?
|
||||
3. Le DPI à coller : tu attends quel format ? (concaténation brute des t0+t1+t2+t3+t5+t6 que les extract_text produisent ?)
|
||||
4. Vérité-terrain : d'où vient-elle ? Stockée par dossier dans la maquette Easily ? Ou en base à part ?
|
||||
5. Question d'orchestration : après l'analyse aiva, on revient sur Easily pour saisir la décision (geste "Léa boucle la boucle" administrativement) ou on reste sur aiva (Léa propose,
|
||||
le médecin DIM saisira manuellement après) ? Les deux marchent, c'est un choix de narration.
|
||||
|
||||
Et la simplification qui découle
|
||||
|
||||
Avec cette interface, je peux supprimer de mon plan :
|
||||
- ❌ Re-enregistrer 6 anchors → seulement 2 désormais (gain : 30 min vs 1h)
|
||||
- ❌ Étendre templating au by_text (plus crucial puisque l'analyse se fait ailleurs)
|
||||
- ❌ La complexité "3 cases conditionnelles"
|
||||
|
||||
Ce qui reste à faire (revu à la baisse) :
|
||||
|
||||
┌─────┬─────────────────────────────────────────────────────────────────┬─────────────────────────┐
|
||||
│ # │ Brique │ Coût │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 1 │ extract_table côté serveur replay (OCR + parsing) │ 3-4h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 2 │ Boucle sur N IPP (orchestration Python OU mécanisme replay) │ 3h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 3 │ Action launch_chrome_url pour PC Windows │ 1h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 4 │ Variabiliser le step "sélection patient" │ 30 min │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 5 │ NLP commande chat "traite N dossiers" │ 1-2h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 6 │ Action minimiser Léa │ 30 min │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 7 │ Workflow "lecture aiva-vision après analyse" (capture décision) │ 1h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 8 │ Synthèse fin de boucle vers chat │ 1h │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 9 │ Re-enregistrement workflow Urgence simplifié │ 30 min (au lieu de 1h+) │
|
||||
├─────┼─────────────────────────────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 10 │ Tests E2E │ 1 jour │
|
||||
└─────┴─────────────────────────────────────────────────────────────────┴─────────────────────────┘
|
||||
|
||||
Total : ~1.5 jours de dev + 0.5 jour re-enregistrement + 1 jour test. 2 jours de marge sur les 4 pour les imprévus. Bien plus confortable.
|
||||
|
||||
OK pour partir là-dessus ? Réponds aux 5 questions et je peux commencer dès que tu valides.
|
||||
|
||||
✻ Baked for 1m 14s
|
||||
|
||||
❯ Ok, pour moi ! De mon coté, je m'ocuppe de reprendre l'interface. Question, pourquoi un nlp sur léa ? ça ne risque pas d'alourdir et ralentir le traitement ?
|
||||
|
||||
● Excellente question. Tu as raison de challenger.
|
||||
|
||||
"NLP" est un mot un peu fort pour ce qu'on a vraiment besoin
|
||||
|
||||
Pour interpréter « Léa, traite-moi 3 dossiers », on a 3 niveaux de complexité possibles :
|
||||
|
||||
┌──────────────────────────────────────────────┬───────────────────────────────┬───────────────────────────────────────────────────────────────┬─────────────────────────────────┐
|
||||
│ Approche │ Coût │ Robustesse phrasing │ Effet démo │
|
||||
├──────────────────────────────────────────────┼───────────────────────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────┤
|
||||
│ A. Regex simple │ 0 ms, 0 GPU │ Comprend les variations clés (traite N, code N dossiers, │ Suffisant si Dom dit la phrase │
|
||||
│ │ │ etc.) si on les anticipe │ prévue │
|
||||
├──────────────────────────────────────────────┼───────────────────────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────┤
|
||||
│ B. Mini-LLM local (qwen2.5:0.5b ou │ ~500 ms, faible GPU │ Très robuste à toute variation │ Crédible "on parle vraiment à │
|
||||
│ llama3.2:1b, ~500 Mo) │ │ │ Léa" │
|
||||
├──────────────────────────────────────────────┼───────────────────────────────┼───────────────────────────────────────────────────────────────┼─────────────────────────────────┤
|
||||
│ C. Gros LLM (qwen2.5:7b déjà chargé pour │ 1-3 s, conflit GPU avec │ Excellente │ Sur-dimensionné, risque de swap │
|
||||
│ t2a_decision) │ t2a_decision │ │ GPU │
|
||||
└──────────────────────────────────────────────┴───────────────────────────────┴───────────────────────────────────────────────────────────────┴─────────────────────────────────┘
|
||||
|
||||
C est exclu — ça reproduirait le problème de hier soir (t2a_decision LLM + NLP LLM = swap VRAM, ralentissement).
|
||||
|
||||
Ma recommandation : A (regex) pour démo + bouton de secours
|
||||
|
||||
A — Regex :
|
||||
# Patterns reconnus
|
||||
"traite (\d+) dossiers?"
|
||||
"code(?:-moi)? (?:les )?(\d+) (?:premiers )?dossiers?"
|
||||
"(?:peux-tu )?(?:traiter|coder) (\d+) dossiers?"
|
||||
|
||||
Si la regex matche → action lancée immédiatement. Si elle matche pas → Léa répond « Je n'ai pas compris. Tu peux dire par exemple : "traite 3 dossiers" ».
|
||||
|
||||
Coût : ~0 ms, 0 GPU, ultra fiable.
|
||||
|
||||
Bouton de secours dans l'UI chat : à côté du champ texte, un bouton dédié [ Traiter N dossiers ▼ ] (avec un select 1/3/5/tous). Si le jour J Dom est stressé et tape mal, il a
|
||||
toujours le bouton qui marche. Ceinture + bretelles.
|
||||
|
||||
Pour la démo, ça donne
|
||||
|
||||
[Dom dans le chat] : Léa, traite-moi 3 dossiers
|
||||
[Léa] : Compris, je traite 3 dossiers... (commence à bosser)
|
||||
|
||||
Visuellement : pareil que si c'était un gros LLM. Mais 0 latence sur cette étape, 0 risque de mauvais parsing.
|
||||
|
||||
Et si tu veux vraiment l'effet "Léa comprend tout" pour la démo
|
||||
|
||||
Option B (mini-LLM) est viable : qwen2.5:0.5b ou llama3.2:1b font ~500 Mo de VRAM, latence ~500 ms, pas en conflit avec t2a_decision (qui est sur qwen2.5:7b). Mais ça ajoute :
|
||||
- Une dépendance modèle de plus à gérer
|
||||
- Une étape de classification d'intention (parser le naturel en JSON action)
|
||||
- Un risque d'erreur d'interprétation que la regex n'a pas
|
||||
|
||||
Pour la démo, A est largement suffisant et te donne 100% de fiabilité. On garde B en bonus si on a 2h en J-1.
|
||||
|
||||
Et donc
|
||||
|
||||
Tu confirmes A (regex + bouton secours) ? C'est ~30 min de code au lieu de 1-2h, ça allège le plan.
|
||||
|
||||
Une fois que tu reviens avec aiva-vision côté interface, j'ai tout pour démarrer côté code. Réponds-moi en parallèle aux 5 questions techniques de mon précédent message (URL aiva,
|
||||
format DPI, vérité-terrain, etc.) quand tu peux.
|
||||
|
||||
✻ Worked for 51s
|
||||
|
||||
❯ on va essayer B pour mini llm. La question concernant l'interface : "Cette interface aiva-vision est-elle déjà déployée et accessible depuis le PC Windows ? Quelle URL ?" On parle
|
||||
bien de celle-la : [Image #4] ou c'est de celle là : [Image #5] Pour le dpi à coller, je te laisse le choix le plus "facileé. Mais [Image #6] ça serait pas trop mal. Attention, pour
|
||||
qu'il n'y ai pas de confusion, le dpi doit être lu et traiter paendant la démo. On est d'accord ? ça devrait répondre à tes autres questions ?
|
||||
⎿ [Image #4]
|
||||
⎿ [Image #5]
|
||||
⎿ [Image #6]
|
||||
|
||||
● C'est limpide, on tient la chaîne :
|
||||
|
||||
Easily (image 4) ──[Léa lit DPI via extract_text]──▶ aiva-vision (image 5)
|
||||
↑ ↑
|
||||
Source des données Cerveau d'analyse + affichage
|
||||
|
||||
Et oui sur le PENDANT — c'est ce qui fait la valeur démo. La promesse à Carvella & DG :
|
||||
- Léa lit le dossier en direct (extraits OCR du DPI) → reformule → soumet à analyse → décision motivée.
|
||||
- Pas de pré-remplissage caché. Tout est public à l'écran.
|
||||
|
||||
3 questions résiduelles avant de coder
|
||||
|
||||
1. URL de aiva-vision ? (j'imagine aiva.labs.laurinebazin.design ou similaire, mais je veux la vraie pour aller voir le DOM des 2 anchors textarea + bouton)
|
||||
2. Vérité-terrain : sur ton image 5 c'est affiché concordance OK — d'où vient cette info ? Stockée dans aiva-vision (par dossier, étiquettes pré-faites) ou calculée à la volée ?
|
||||
(Important : si la vérité-terrain est cachée dans aiva-vision, Léa peut la voir et un sceptique pourrait crier triche.)
|
||||
3. Une fois l'analyse faite côté aiva : Léa s'arrête là (capture la décision et passe au dossier suivant) ou elle revient sur Easily pour saisir la décision dans le formulaire Codage
|
||||
(boucle administrative complète) ?
|
||||
- Stop à aiva = démo plus courte, message clair "Léa propose"
|
||||
- Retour Easily = démo plus longue, message "Léa va jusqu'au bout"
|
||||
- Mon avis : stop à aiva pour la démo (plus court, plus impactant). On dira "en intégration, Léa pourrait bien sûr remplir Easily aussi".
|
||||
|
||||
Sur le DPI à coller — choix simple et fidèle
|
||||
|
||||
Le format de l'image 6 est exactement ce que la concaténation brute des extract_text produit (Easily a déjà ses sections "Motif", "Constantes", "Examen", "Bio", etc., l'OCR retourne
|
||||
ce texte tel quel). Donc :
|
||||
dpi_complet = f"{t0}\n{t1}\n{t2}\n{t3}\n{t5}\n{t6}"
|
||||
|
||||
Pas besoin de LLM de reformulation, pas d'étape supplémentaire, fidèle à ce que dit le dossier. Si en pratique c'est mal mis en page, on insère un step minimal (regex de nettoyage
|
||||
des doubles sauts de ligne).
|
||||
|
||||
Sur le mini-LLM B
|
||||
|
||||
Bon choix pour la démo. Mes candidats :
|
||||
|
||||
┌──────────────┬────────┬─────────────┬─────────┬──────────────────────────┐
|
||||
│ Modèle │ Taille │ Latence │ VRAM │ Robustesse │
|
||||
├──────────────┼────────┼─────────────┼─────────┼──────────────────────────┤
|
||||
│ llama3.2:1b │ 1.3 GB │ ~300-500 ms │ ~1.5 GB │ Très bonne en français │
|
||||
├──────────────┼────────┼─────────────┼─────────┼──────────────────────────┤
|
||||
│ qwen2.5:0.5b │ 400 MB │ ~200 ms │ ~800 MB │ Bonne, plus léger │
|
||||
├──────────────┼────────┼─────────────┼─────────┼──────────────────────────┤
|
||||
│ gemma3:1b │ 800 MB │ ~400 ms │ ~1.2 GB │ Excellente compréhension │
|
||||
└──────────────┴────────┴─────────────┴─────────┴──────────────────────────┘
|
||||
|
||||
Mon top : llama3.2:1b — meilleur compromis fr / latence / robustesse. ~500 ms pour parser "Léa, traite-moi 3 dossiers" → {action: "process_patients", count: 3, order: "first"}.
|
||||
Imperceptible, et surtout pas en conflit avec qwen2.5:7b (t2a_decision) car charges séparées.
|
||||
|
||||
Tu veux que je parte sur llama3.2:1b pour le NLP, ou tu as une autre préférence ?
|
||||
|
||||
Plan d'action immédiat (dès que tu réponds aux 3 questions)
|
||||
|
||||
1. Je vais voir aiva-vision avec Chrome MCP pour cartographier les 2 anchors
|
||||
2. Je pull llama3.2:1b côté Ollama si pas déjà là
|
||||
3. Je commence par extract_table (3-4h) — la brique la plus risquée à dérisquer en premier
|
||||
|
||||
Toi en parallèle : tu reprends l'interface (modifier la maquette si besoin) et tu me confirmes l'URL aiva.
|
||||
|
||||
✻ Sautéed for 57s
|
||||
|
||||
❯ https://urgence.labs.laurinebazin.design/index.html. Concordance ok est géré comme le reste à la volé, tu le vera lors de l'exploration du dom. Pour l'intégration, je pense que l'on
|
||||
pourrait faire boucle administrative complète. ça montre que l'on sait écrire aussi Pour le modéle, je pense qu'il faut faire des tests non ? tu peux dédier un agent dessus ? Si
|
||||
les modéles ne sont pas présent telecharge les. c'est bon pour toi ? jepeux aller manger ?
|
||||
|
||||
● Vas-y, bon appétit ! Je m'occupe de tout pendant ce temps.
|
||||
|
||||
Mon programme pendant que tu manges :
|
||||
1. Bench NLP via agent dédié (en background) — comparer llama3.2:1b, qwen2.5:0.5b, gemma3:1b sur des commandes types français + rapport comparatif
|
||||
2. Cartographier le DOM aiva-vision (textarea, bouton, zone décision, vérité-terrain)
|
||||
3. Préparer le terrain pour qu'on enchaîne sur le code à ton retour
|
||||
|
||||
● Bash(ollama list 2>&1 | head -30)
|
||||
⎿ Running…
|
||||
|
||||
✻ Hatching… (22s · ↓ 752 tokens)
|
||||
⎿ ◻ Diagnostiquer le pre-click qui ne prend pas le focus textarea
|
||||
✔ Récupérer agent.log Windows pour replay 15:56
|
||||
✔ Trouver le revert type_text x_pct/y_pct dans dag_execute.py
|
||||
✔ Présenter diagnostic complet + recommandation chiffrée
|
||||
✔ Élucider pourquoi 3 dispatch serveur, 1 reçu agent (3ᵉ)
|
||||
… +8 completed
|
||||
|
||||
Reference in New Issue
Block a user