← All work

SovrenAI

Claim verification on the founder's own ontology, where the language model only suggests

The founder of SovrenAI had a prototype of TITO, the Truth Token Ontology, that classified claims against his own ontology of truth tokens, but nothing could be measured, scaled or audited. We rebuilt everything around his logic: rules anchor each result, the model only suggests, and every answer carries its metrics.

B2B SoftwareTITO, an AI claim verification engineBuilt from zero

Each TITO report shows the verdict, processing time, difficulty, resistance pattern, behavior metrics and token and energy figures.

The challenge

The founder's prototype had no database, cache, API or audit history, its verification ran synchronously, its metrics fell back to stubs, and no labeled data existed to measure accuracy.

What we did

A FastAPI and React engine that keeps his rule tiers as the anchor, adds embeddings and suggestion-only model calls through tunable weights, and measures every answer.

The outcome

After a move to Azure OpenAI with fallback, responses were stable and classification consistent, tiers T0 to T9 worked end to end, and the founder made our engine his source of truth.

Truth tiers
T0 to T9 working end to end
Ontology
The founder's own truth tokens, each with examples
Model role
Suggestions with confidence, never the final word
Runs on
Azure OpenAI with primary and fallback routing

The starting point

SovrenAI builds TITO, its truth verification technology: claims are broken into atomic units, classified against the founder's tiered ontology of truth tokens, scored and recorded for use in AI models, research and fact checking. The founder is deeply involved and keeps adding ideas and code of his own.

What had to change

The prototype proved the idea but had no database, cache, API or audit history, its verification ran synchronously and its metrics fell back to stubs. Without a labeled dataset, no one could say how accurate it was.

What could not break

  • The founder's ontology and scoring logic stay intact
  • The language model suggests; it never makes the final classification
  • Every answer carries its own metrics
  • Exports redact personal data by default

The calls we made

We treated the founder's ontology and scoring logic as the fixed core and made everything around it measurable, traceable and testable.

  1. 01

    Gap analysis before code

    We audited the founder's developer packet before writing code and found no labeled validation data, no working semantic layer, no database, cache or API, scrapers with hardcoded selectors and no check for missing tokens, so the plan fixed what was actually missing.

    Ruled out

    Building on top of the prototype as it was.

  2. 02

    Rules anchor, the model suggests

    With no labeled ground truth and a real risk of hallucination, regex stays the fast, explainable anchor, SBERT adds meaning, and the model only suggests tokens with a confidence, merged through calibrated weights.

    Ruled out

    Letting the language model decide the classification.

  3. 03

    Net and gross effort on every answer

    The founder wanted proof that truth validated AI uses less compute than a plain model, so each answer reports tokens in the final answer apart from all tokens spent, including discarded paths, next to energy and latency.

    Ruled out

    One token total per answer, which hides the effort spent on discarded paths.

  4. 04

    Keep the tested pipeline

    When the founder shared a single file engine for the next version, we kept our tested pipeline under it, so core scoring and agent logic stayed unchanged while new capability arrived.

    Ruled out

    Replacing tested logic with an untested rewrite.

  5. 05

    Merge into the engine, not the reverse

    The founder's separate chat codebase arrived with hard-coded models and partial monitoring, so we agreed to audit it and move its useful logic into the engine, which stays the source of truth.

    Ruled out

    Moving the engine into the larger, less structured codebase.

How the system fits together

claimsrequestsatomic claimsevery answertoken hintsmeaningvector searchresultsmetrics, tracestier and metricsUsersSubmit claims in thechatVerification chatReact, Google signin, streamingFastAPI backendAtomic claims,tiers, SwaggerClassificationpipelineLangGraph agents,regex anchorTelemetry andtracesTokens, effort,energy, latencyAzure OpenAISuggestions only,with fallbackSBERT embeddingsMeaning beyondkeywordsQdrantVector searchPostgreSQLand RedisResults, auditrecords, cache
PeopleBuilt by DaticsAI modelData storeThe founder's regex tiers stay the anchor, and the model sits behind the pipeline as a suggestion layer whose every call is counted in the answer's metrics.

What we built

Verification chat

A React front end on a FastAPI backend with Google sign in, streamed answers, light and dark modes, and token discovery and voting tested with multiple users.

The verification chat shows each step of the agent process before the answer.

A report behind every verdict

A report view with the verdict, processing time, difficulty, resistance pattern and uncertainty type, behavior metrics such as epistemic humility and doubt immunity, and token, effort and energy figures.

From Google Drive: TITO.jpg
03

Hybrid classifier on the founder's ontology

The founder's truth tokens, each with positive and negative example sentences, classified by regex anchors, SBERT embeddings and model suggestions merged through calibrated weights.

04

Telemetry and audit controls

Token usage, an energy estimate and latency on every answer and an audit pipeline, with reasoning traces, a baseline model comparison and exports that redact personal data specified for the second version.

How it works

Submit a claim

A user asks or submits a claim in the verification chat.

Break it down

The engine splits the text into atomic claims.

Classify

Regex anchors the tier, and embeddings and model suggestions add weighted confidence.

Measure

Tokens, effort, energy and latency are recorded for that answer.

Answer

The reply streams back with its truth tier and its metrics.

A closer look

What changed

After moving to Azure OpenAI with primary and fallback routing, responses were stable, token usage was correct and classification was consistent, with tiers T0 to T9 working end to end. The founder agreed that the engine we built is the source of truth for his platform.

Under the hood

Datics role
Product built by Datics
Models
Azure OpenAI with primary and fallback routing, SBERT sentence embeddings and Qdrant vector search, with the model limited to suggestions.
Data and audit
PostgreSQL for results and the audit pipeline and Redis for caching, with a ledger designed to sign each claim's id, text, classification and timestamp with SHA-256.
Deployment
Azure hosting with Docker, CI/CD from the first sprint and Swagger documented APIs.
Privacy
Exports were specified to redact personal data by default, with input scrubbing, masking and retention rules in the risk plan.

AI and models

Azure OpenAI

Data and retrieval

PostgreSQLRedisQdrant

Apps and APIs

PythonFastAPIReact

Also in the stack

SBERT

How it shipped

  1. Gap analysis

    We reviewed the founder's developer packet and wrote a detailed gap analysis with a target architecture, a risk table and four milestones.

  2. Core engine

    FastAPI, React, PostgreSQL, Redis, Qdrant and CI/CD in the first sprint, then the hybrid classifier on the founder's final token file and a backend with live Swagger docs.

  3. Telemetry and audit

    The measurement and audit controls the founder asked for, shown in a demo of Google sign in, chat and per answer metrics, then token discovery and voting tested with multiple users.

  4. Stable on Azure

    After a local merge broke the chat stream, we rolled back by commit hash and moved from local models with cold starts to Azure OpenAI with primary and fallback routing.

  5. One source of truth

    The founder agreed that our engine is the source of truth, with his separate chat codebase to be audited and merged into it.

Founder code, assessed first

Each optimizer, classifier update and feature package the founder sent went to our analyst and CTO for review, and only what fit the tested pipeline was merged.

Nothing on assumptions

Unclear requirements were written down and confirmed with the founder before work started, and meeting minutes recorded the calls, from the tier structure to the source of truth.

Working state in GitHub

Work lived in repositories with CI/CD from the first sprint, and after one bad local merge we agreed to push only working state and roll back by commit hash.

What this unlocked

The founder now builds new apps as self contained modules, and we act as the line that audits, refines, deploys and launches them; a public analysis endpoint on the same pipeline was also proposed.

Have a product with the same kind of constraints?

Tell us what already exists and what you want it to do. We will tell you what it takes.

Book a 30-minute Product Review