Use-Case Lab · Data / AI

Evidence-Grounded RAG Evaluator

This is not a demo of a separate system -- it's a walkthrough of the same evaluator that grounds the chat on this site.

Problem

An LLM will answer a question whether or not it actually knows the answer. Before a chat response reaches a visitor, something needs to check that every factual claim is backed by approved evidence, that the tone and content are appropriate for a public page, and that a claim's verb doesn't overstate what the evidence supports.

Data boundary

The evidence manifest is this portfolio's own public, generated evidence (backend/evidence/manifest.json). No resume text, contact PII, or internal notes are ever included in it or sent to a provider.

Pipeline

Question → two providers answer in parallel with structured JSON output → adjudicator parses and checks each candidate against the evidence manifest, safety policy, PII screen, and claim-boundary policy → highest-ranked admissible answer wins → validated response.

Validation rules

Gates a candidate answer must clear before it can be shown
Gate Checks Rejects
EvidenceEvery cited evidence_id exists in the manifestFabricated or unsupported claims
SafetyBanned-phrase screen (tone, injection markers, internal notes)Prompt injection, desperation language, layoff narrative
PIIPhone/email/street-address/rate pattern screen on the answer textHallucinated contact details
Claim boundaryClaim verb rank vs. evidence's own verb rank"validated" upgraded to "owned"
ConfidenceSelf-reported confidence meets policy minimumLow-confidence guesses

Output

A response containing only answer, coverage, and citations -- no provider name, model id, or raw evidence id ever reaches a client.

Failure modes

What this proves

A working policy-plus-evidence gate in front of an LLM, with deterministic, testable rejection behavior -- not just a prompt asking the model to "be careful."

What it does not claim

This does not claim the underlying LLMs are incapable of producing unsupported content -- it claims the adjudicator, not provider refusal, is what blocks it from reaching you.

Suggested questions

Ask the evidence-backed chat →