Add production condition retrieval smoke test
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
from rag.condition_evaluation import (
|
||||
ConditionEvaluationOutcome,
|
||||
summarize_condition_outcomes,
|
||||
)
|
||||
|
||||
|
||||
def test_condition_metrics_are_separate_and_unsupported_drugs_are_counted():
|
||||
rows = [
|
||||
ConditionEvaluationOutcome(
|
||||
case_id="hta",
|
||||
expected_intent="condition_to_drug",
|
||||
actual_intent="condition_to_drug",
|
||||
expected_condition="tăng huyết áp",
|
||||
actual_condition="tăng huyết áp",
|
||||
expected_clarification=False,
|
||||
actual_clarification=False,
|
||||
expected_relation="indication",
|
||||
actual_relation="indication",
|
||||
expected_drug_ids=("a", "b"),
|
||||
retrieved_drug_ids=("a", "b"),
|
||||
generated_drug_ids=("a", "d"),
|
||||
retrieved_section_keys=("chi_dinh", "chi_dinh"),
|
||||
citation_validity=(True, False),
|
||||
grounded_claims=(True, False),
|
||||
expected_patient_fields=(("renal.stage", "G4"),),
|
||||
actual_patient_fields=(("renal.stage", "G4"),),
|
||||
expected_safety_facets=("renal", "interaction"),
|
||||
retrieved_safety_facets=("renal",),
|
||||
)
|
||||
]
|
||||
|
||||
metrics = summarize_condition_outcomes(rows)
|
||||
|
||||
assert metrics["intent_accuracy"] == 1.0
|
||||
assert metrics["section_correctness"] == 1.0
|
||||
assert metrics["unsupported_drug_rate"] == 0.5
|
||||
assert metrics["citation_correctness"] == 0.5
|
||||
assert metrics["patient_context_extraction_accuracy"] == 1.0
|
||||
assert metrics["safety_evidence_retrieval_accuracy"] == 0.5
|
||||
Reference in New Issue
Block a user