- 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>
63 lines
1.3 KiB
YAML
63 lines
1.3 KiB
YAML
# Garde-fous de parsing des valeurs biologiques
|
|
# ------------------------------------------------
|
|
# Objectif: éviter des faux positifs dus à des artefacts PDF/OCR
|
|
# (ex: "8" au lieu de "4.8" pour le potassium).
|
|
#
|
|
# IMPORTANT:
|
|
# - Ce fichier ne définit PAS des "normes biologiques" (ça c'est reference_ranges.yaml)
|
|
# - Ici on définit des bornes *plausibles* très larges + quelques heuristiques "anti-OCR".
|
|
#
|
|
# Clés des tests: minuscules, sans accents, ex: potassium, sodium, plaquettes, hemoglobine...
|
|
version: 1
|
|
|
|
policy:
|
|
drop_out_of_range: true # écarte les valeurs hors bornes plausibles du dossier
|
|
keep_suspect: true # conserve les valeurs suspectes (audit) mais les règles privilégient les valeurs ok
|
|
|
|
tests:
|
|
potassium:
|
|
hard_min: 0.5
|
|
hard_max: 9.0
|
|
suspect:
|
|
single_digit_over: 6.0 # "8" seul est souvent une décimale perdue (4,8 -> 8)
|
|
|
|
sodium:
|
|
hard_min: 90
|
|
hard_max: 200
|
|
|
|
plaquettes:
|
|
hard_min: 5
|
|
hard_max: 2000
|
|
|
|
hemoglobine:
|
|
hard_min: 3
|
|
hard_max: 25
|
|
|
|
creatinine:
|
|
hard_min: 1
|
|
hard_max: 5000
|
|
|
|
crp:
|
|
hard_min: 0
|
|
hard_max: 1000
|
|
|
|
alat:
|
|
hard_min: 0
|
|
hard_max: 5000
|
|
|
|
asat:
|
|
hard_min: 0
|
|
hard_max: 5000
|
|
|
|
ggt:
|
|
hard_min: 0
|
|
hard_max: 5000
|
|
|
|
pal:
|
|
hard_min: 0
|
|
hard_max: 5000
|
|
|
|
bilirubine totale:
|
|
hard_min: 0
|
|
hard_max: 2000
|