fix: garde-fous qualité Phase 1 — codes invalides et raisonnements vides

- Ajout R33, R33.0, R33.8, R33.9, F17.1, F17.2 au dictionnaire supplémentaire
- Rejet des codes CIM-10 avec raisonnement ET justification vides (corrélation hallucinations)
- Validation du code contre le dictionnaire CIM-10 avant copie suggestion → final

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
dom
2026-02-20 07:53:43 +01:00
parent 5cf7d74fa3
commit 6c036ed7f1
3 changed files with 30 additions and 2 deletions

View File

@@ -494,6 +494,15 @@ def _apply_llm_result_diagnostic(diagnostic: Diagnostic, llm_result: dict) -> No
if code:
code = normalize_code(code)
# Garde-fou : rejeter un code sans raisonnement ni justification
# (corrélation forte avec les hallucinations LLM)
if not raisonnement and not justification:
logger.warning(
"RAG : code %s rejeté pour « %s » — raisonnement et justification vides",
code, diagnostic.texte,
)
code = None
if code:
is_valid, _ = cim10_validate(code)
if is_valid:
diagnostic.cim10_suggestion = code