feat: évaluation force probante dossier + seuils qualité relaxés pour dossiers faibles
Score 0-10 basé sur les preuves objectives (bio/img/trt/actes). Dossier faible (score < 3) : prompt LLM adapté + seuil adversarial abaissé (score 2-3 → Tier B au lieu de C). Les éléments contextuels (âge, IMC, urgence) restent dans le prompt mais hors du scoring car ils ne constituent pas des preuves opposables à un contrôleur CPAM. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,7 @@ from ..prompts import CPAM_EXTRACTION
|
||||
# --- Imports depuis les sous-modules ---
|
||||
from .cpam_rag import _search_rag_for_control
|
||||
from .cpam_context import (
|
||||
_assess_dossier_strength,
|
||||
_build_cpam_prompt,
|
||||
_build_tagged_context,
|
||||
)
|
||||
@@ -37,6 +38,7 @@ from .cpam_context import ( # noqa: F401
|
||||
_get_code_label,
|
||||
_get_cim10_definitions,
|
||||
_BIO_INTERPRETATION,
|
||||
_assess_dossier_strength,
|
||||
_build_bio_summary,
|
||||
_check_das_bio_coherence,
|
||||
)
|
||||
@@ -229,9 +231,16 @@ def generate_cpam_response(
|
||||
|
||||
all_warnings = ref_warnings + grounding_warnings + code_warnings + adversarial_warnings
|
||||
|
||||
# 8c. Classification qualité (A/B/C)
|
||||
# 8c. Évaluation force probante du dossier
|
||||
strength = _assess_dossier_strength(dossier)
|
||||
if strength["is_weak"]:
|
||||
logger.info(" Dossier à preuves limitées (score %d/10) : %s",
|
||||
strength["score"], ", ".join(strength["missing"]))
|
||||
|
||||
# 8d. Classification qualité (A/B/C) — seuils relaxés si dossier faible
|
||||
tier, needs_review, cat_warnings = _assess_quality_tier(
|
||||
result, ref_warnings, grounding_warnings, code_warnings, validation,
|
||||
is_weak_dossier=strength["is_weak"],
|
||||
)
|
||||
controle.quality_tier = tier
|
||||
controle.requires_review = needs_review
|
||||
|
||||
Reference in New Issue
Block a user