| """plausibility_node — flag unusual values as warnings.""" | |
| from __future__ import annotations | |
| from graph.states.pipeline_state import Risk | |
| from nodes.risk.basic_risk_node import _normalize_severity | |
| from validation.plausibility import validate_plausibility | |
| async def plausibility_node(state: dict) -> dict: | |
| extracted = state.get("extracted") or {} | |
| file_name = state.get("doc_file_name", "") | |
| if not extracted: | |
| return {} | |
| warnings = validate_plausibility(extracted) | |
| risks = [ | |
| Risk( | |
| description=w.get("message", ""), | |
| severity=_normalize_severity(w.get("severity", "low")), | |
| rationale="Plausibility check — unusual value, verify against the source.", | |
| kind="plausibility", | |
| affected_document=file_name, | |
| source_check_id=f"plausibility_{w.get('type', 'unknown')}", | |
| ) | |
| for w in warnings | |
| ] | |
| return {"risks": risks} if risks else {} | |