| """Simulate final worry levels from modal_artifacts/ml_probe.json raw dumps |
| (dev tooling — runs the same triage path as the pipeline, no GPU needed).""" |
|
|
| from __future__ import annotations |
|
|
| import json |
| import os |
| import sys |
|
|
| sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "src")) |
|
|
| if hasattr(sys.stdout, "reconfigure"): |
| sys.stdout.reconfigure(encoding="utf-8") |
|
|
| from guardian import triage |
|
|
|
|
| def main() -> None: |
| with open("modal_artifacts/ml_probe.json", encoding="utf-8") as f: |
| data = json.load(f) |
| for p in data: |
| parsed = triage.parse_model_json(p["raw"]) |
| if parsed is None: |
| print(f"{p['name']} ({p['degradation']}): PARSE FAIL") |
| continue |
| ex = triage.validate_extraction(parsed) |
| text = " | ".join(filter(None, [ |
| ex.sender, ex.what_they_want, ex.requested_action, ex.what_this_is, |
| *ex.key_facts, *ex.worry_reasons, |
| *[s.evidence for s in ex.scam_signals]])) |
| signals = triage.merge_signals(ex.scam_signals, triage.run_heuristics(text)) |
| level = triage.worry_level(ex.document_type, signals) |
| print(f"{p['name']} ({p['degradation']}): level={level} " |
| f"signals={[s.id for s in signals]}") |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|