- 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>
1.9 KiB
1.9 KiB
Règles (vetos + décisions)
Ce dossier contient la configuration "métier" pour piloter le moteur qualité.
Fichiers
base.yaml: socle commun (règles activées par défaut).enabled.yaml: choisit les overlays à activer (site/spécialité).specialties/*.yaml: overrides par spécialité.sites/*.yaml: overrides par établissement.
Principe
- Une règle non listée est considérée activée.
- Ça évite de casser le comportement historique lors d'une montée de version.
- Une règle listée peut être :
enabled: false→ désactivée- (VETO)
force_severity: "HARD"|"MEDIUM"|"LOW"→ force la sévérité
Exemple d'override
Créer config/rules/sites/chu_poitiers.yaml :
version: 1
rules:
VETO-12:
enabled: false
VETO-09:
force_severity: "HARD"
Puis activer dans enabled.yaml :
active:
site: "chu_poitiers"
specialty: ""
extra: []
Routage automatique (router.yaml)
Le fichier router.yaml permet d’activer automatiquement des packs de règles en fonction des signaux du dossier (codes, biologie, extraits). Concrètement :
- Par défaut, seuls les packs listés dans
defaults.enabled_packssont actifs. - Quand un trigger match, on ajoute ses
enable_packs. - Le routage est appliqué par dossier (et re-appliqué sur la version fusionnée).
Mode strict
Quand mode: strict, une règle non listée dans base.yaml est considérée désactivée dès que le routage runtime est actif.
Ça force une approche “catalogue explicite” : tout ce qui tourne en prod est visible et gouvernable.
Exemple
Activer les règles ionogramme uniquement si un code E87.* est détecté ou si la biologie mentionne Sodium/Potassium :
triggers:
- id: TRG-ELECTROLYTES
enable_packs: [bio_electrolytes]
when_any:
codes_prefix: ["E87."]
lab_tests: ["sodium", "potassium"]