> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gildea.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify claims

> Confirm every sentence is evidence-backed.

**Verify** a claim before you act on it. Knowing it's real and backed by a source today means chasing it down by hand, or trusting that an LLM hasn't fabricated a citation. Gildea does that work up front: every sentence it serves is tied to one or more verbatim evidence snippets from the cited source, and rigorously audited for hallucinated entities, numbers, and dates, as well as epistemic drift. That's a different bar from LLM-as-a-judge: entailment against the source, deterministic checks, and human review where flagged. [See how it works](/concepts/verification).

## The recipe

<Steps>
  <Step title="Trust the served set">
    Every unit (a single sentence) returned by search or signal detail has passed verification (`verdict = pass`). Gildea never serves unverified text, so there's no "filter the hallucinations" step. See [Verification](/concepts/verification).
  </Step>

  <Step title="Read the evidence">
    Each unit carries `evidence.snippets`, verbatim text from the source that supports it. The snippet is a short preview (about the first 100 characters): a locator into the source, not the full passage. `citation.url` is the full audit path, and `verification.human_reviewed` appears when a human signed off.
  </Step>

  <Step title="Verify it yourself">
    You don't have to take the verdict on faith. Point your agent at `citation.url`, have it find the passage the snippet locates, and confirm the source entails the sentence. This is "verify us," not "trust us."
  </Step>
</Steps>

Install `gildea` and `anthropic`, set `GILDEA_API_KEY` and `ANTHROPIC_API_KEY`, then:

```python theme={null}
import re
import httpx
import anthropic
from pydantic import BaseModel
from gildea import Gildea

claude = anthropic.Anthropic()   # reads ANTHROPIC_API_KEY
gildea = Gildea()                # reads GILDEA_API_KEY

# 1. Grab a served unit, its evidence snippet, and its citation
hits = gildea.search("AI data center power and compute constraints", limit=20)["results"]
hit = next(h for h in hits if "substack.com" in (h["citation"].get("url") or ""))
unit, citation = hit["unit"], hit["citation"]
snippet = unit["evidence"]["snippets"][0]["text"]   # ~100-char locator, not the full passage

# 2. Fetch the cited source yourself and strip it to text
html = httpx.get(citation["url"], timeout=20, follow_redirects=True,
                 headers={"User-Agent": "Mozilla/5.0"}).text
source = re.sub(r"\s+", " ", re.sub(r"<[^>]+>", " ", html))[:20000]

# 3. Confirm independently: is the snippet really in the source, and does the source entail the sentence?
class Check(BaseModel):
    snippet_in_source: bool   # the 100-char snippet is genuinely a substring of the source
    entailed: bool            # the source supports the served sentence
    supporting_quote: str     # the full passage the snippet was a preview of

result = claude.messages.parse(
    model="claude-opus-4-8",
    max_tokens=2000,
    system=("You are independently verifying a sentence an API served. Given the source text, the "
            "evidence snippet, and the sentence: confirm whether the snippet appears in the source, "
            "quote the supporting passage, and judge whether the source entails the sentence."),
    messages=[{"role": "user", "content":
        f"SOURCE:\n{source}\n\nEVIDENCE SNIPPET: {snippet}\n\nSERVED SENTENCE: {unit['text']}"}],
    output_format=Check,
).parsed_output

print(f"served sentence: {unit['text']}")
print(f"snippet genuinely in source: {result.snippet_in_source} | source entails sentence: {result.entailed}")
print(f"full passage: {result.supporting_quote[:160]}")
```

## What you get

A working set you can stand behind: free of the fabricated and mis-cited claims that plague the LLM + web search path. The trust is the **evidence**, with every sentence traceable to one or more verbatim evidence snippets.

<Card title="How verification works" icon="shield-check" href="/concepts/verification" />
