File size: 958 Bytes
7ff7119 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | """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 {}
|