Viavitna
How it works

How Viavitna rejects unsupported claims

Most AI assistants are asked to be truthful. Viavitna is built so that untruthful output has no path to the user. Here is the pipeline, honestly explained.

The pipeline

Five stages, one contract

GuardrailsUnsafe requests, credential fishing, and account-lookup attempts are refused before anything else runs.
RetrievalThe question is matched against your ingested content — keyword ranking plus semantic (embedding) routing.
Grounded draftA local model writes 1–4 short claims, each citing the numbered passage it came from. Deterministic: temperature 0, fixed seed.
VerificationStructural checks enforce citation, number, date, and URL provenance; a separate semantic verifier checks entailment and responsiveness.
Answer or floorSurviving claims become the answer, with citations. Nothing survives? The verbatim passage — or an honest "I don't know."
The core idea

The model proposes. The validator disposes.

The drafting model in Viavitna is never the final authority on what gets said. After it drafts an answer, structural checks and a separate fail-closed semantic pass re-evaluate whether each claim is supported and actually answers the question:

If semantic verification is unavailable, malformed, or incomplete, no generated claim is accepted. Viavitna returns source text or abstains, and its decision receipt binds the evidence and validation state.

Failure behavior

Everything fails toward honesty

Model down?

Answers come from the extractive floor: a relevant passage from your content, quoted and cited, or a clear abstention. It is a safe degradation, not a generated guess.

Content doesn't cover it?

Viavitna abstains, in plain language. An off-topic question that accidentally matches a stray word is caught by a coverage check and politely declined.

Question phrased oddly?

A recall-rescue pass rewrites the search using your pages' own vocabulary and semantic routing — and a retry is accepted only if it produces a fully verified answer.

Prompt injection in your docs?

Content is treated as untrusted reference text, never as instructions — and even an obeyed injection couldn't survive verification, because its output would be uncited.

Under the hood

Deterministic and auditable

Generation runs at temperature 0 with a fixed seed and schema-constrained decoding — the same question against the same content yields the same answer, so behavior is testable and reviewable rather than a slot machine. Models are open-weight (Apache-2.0) and run on hardware you or we control; there is no third-party AI API anywhere in the loop.

Your content is versioned: uploads create a draft you can interrogate in the review console, and nothing reaches visitors until you publish it. Re-uploading updates the draft; publishing is always a deliberate human act.