Ask it something. Watch the pipeline, not the chat bubble.
A retrieval system over the 80 content chunks that make up this site. It shows what most demos hide: what the guardrail checked, which chunks were retrieved and at what cosine score, how long each stage took, and whether the answer was actually grounded.
How it works, honestly
Retrieval is TF-IDF with cosine similarity, built at request time from the same typed content the rest of the site renders — not dense embeddings. That is a deliberate trade: it needs no vector database and no embedding API, it runs in single-digit milliseconds, and for a corpus this size it is genuinely competitive. On a corpus a hundred times larger it would not be, and I would reach for the hybrid BM25-plus-dense setup used in the SEC RAG system instead.
Because the corpus is built from the site’s own content modules, an answer cannot cite something the site does not say. The scores next to each retrieved chunk are the real cosine values, not decoration — a low top score is a signal the question is out of scope, and the system says so rather than guessing.
Try a prompt injection. The guardrail runs before retrieval, so it costs nothing to reject.