Files
rpa_vision_v3/demo/facturation_urgences/run_apollo2.py
Dom 5ea4960e65
Some checks failed
tests / Lint (ruff + black) (push) Successful in 1m50s
tests / Tests unitaires (sans GPU) (push) Failing after 1m50s
tests / Tests sécurité (critique) (push) Has been skipped
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>
2026-05-19 14:55:06 +02:00

36 lines
1.3 KiB
Python

#!/usr/bin/env python3
"""Test Apollo2-9B (Q4_K_S, médical multilingue avec FR explicite)."""
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent))
from run_simulation_v2 import run_one_model, stats_for_results # noqa: E402
MODEL = "hf.co/mradermacher/Apollo2-9B-GGUF:Q4_K_S"
results = run_one_model(MODEL)
s = stats_for_results(results)
print(f"\n>>> {s['correct']}/{s['n']} ({100*s['accuracy']:.0f}%)")
print(f" S={s['by_type'].get('simple', (0,0))} C={s['by_type'].get('complexe', (0,0))} B={s['by_type'].get('borderline', (0,0))}")
print(f" latence={s['avg_latency_s']:.1f}s parse_err={s['parse_errors']} conf={s['confiance_distribution']}")
results_path = Path(__file__).parent / "resultats_v2.json"
all_data = json.loads(results_path.read_text(encoding="utf-8"))
all_data[MODEL] = [
{
"id": r["cas"]["id"],
"titre": r["cas"]["titre"],
"type": r["cas"]["type"],
"verite_terrain": r["cas"]["verite_terrain"],
"criteres_attendus": r["cas"]["criteres_cles"],
"prediction": r["out"],
"decision": r["decision"],
"match": r["match"],
}
for r in results
]
results_path.write_text(json.dumps(all_data, ensure_ascii=False, indent=2), encoding="utf-8")
print(f" → mergé dans {results_path.name}")