feat: architecture multi-modèles LLM + quality engine + benchmark
- Multi-modèles : 4 rôles LLM (coding=gemma3:27b-cloud, cpam=gemma3:27b-cloud, validation=deepseek-v3.2:cloud, qc=gemma3:12b) avec get_model(role) - Prompts externalisés : 7 templates dans src/prompts/templates.py - Cache Ollama : modèle stocké par entrée (migration auto ancien format) - call_ollama() : paramètre role= (priorité: model > role > global) - Quality engine : veto_engine + decision_engine + rules_router (YAML) - Benchmark qualité : scripts/benchmark_quality.py (A/B, métriques CIM-10) - Fix biologie : valeurs qualitatives (troponine négative) non filtrées - Fix CPAM : gemma3:27b-cloud au lieu de deepseek (JSON tronqué par thinking) - CPAM max_tokens 4000→6000, viewer admin multi-modèles - Benchmark 10 dossiers : 100% DAS valides, 10/10 CPAM, 243s/dossier Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
30
config/reference_ranges.yaml
Normal file
30
config/reference_ranges.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Références biologiques (fallback) pour règles de qualité (VETO-09 / ruled_out)
|
||||
# Ordre de priorité recommandé:
|
||||
# 1) Normes du document (ex: "[N: 135-145]")
|
||||
# 2) Fallback ci-dessous (par bande d'âge)
|
||||
# 3) Safe zones conservatrices si âge inconnu (évite les faux "barrés")
|
||||
|
||||
version: 1
|
||||
|
||||
age_bands:
|
||||
adult_min_years: 18
|
||||
|
||||
fallback_ranges:
|
||||
adult:
|
||||
platelets: { low: 150, high: 450, unit: "G/L" }
|
||||
sodium: { low: 135, high: 145, unit: "mmol/L" }
|
||||
potassium: { low: 3.5, high: 5.0, unit: "mmol/L" }
|
||||
|
||||
# Pédiatrie: à affiner par tranches d'âge si besoin.
|
||||
# NB: pour les décisions "ruled_out" avec âge inconnu, on applique plutôt les safe zones.
|
||||
child:
|
||||
platelets: { low: 150, high: 450, unit: "G/L" }
|
||||
sodium: { low: 135, high: 145, unit: "mmol/L" }
|
||||
potassium: { low: 3.5, high: 5.0, unit: "mmol/L" }
|
||||
|
||||
# Seuils "safe" quand l'âge n'est pas connu (plus conservateurs que les bornes normales)
|
||||
safe_zones_unknown_age:
|
||||
platelets_ruled_out_low: 170 # si PLT >= 170 -> thrombopénie ruled_out
|
||||
sodium_ruled_out_low: 138 # si Na >= 138 -> hyponatrémie ruled_out
|
||||
potassium_ruled_out_high: 4.9 # si K <= 4.9 -> hyperkaliémie ruled_out
|
||||
potassium_ruled_out_low: 3.7 # si K >= 3.7 -> hypokaliémie ruled_out
|
||||
Reference in New Issue
Block a user