Ask your documents.
Verify every answer.
Upload what you know. Ask in plain language, typed or out loud. Every sentence comes back with a citation you can open and read — grounded in your documents, or not answered at all.
01
Ingest
Paste text or upload a PDF. It is split into overlapping chunks and embedded with text-embedding-3-small.
02
Retrieve
Your question is embedded too, then matched against your chunks by cosine similarity over an HNSW index in pgvector.
03
Ground
Only the top-k passages reach the model, and it must cite them. No supporting passage, no answer.
Voice sits either side of those three steps rather than inside them. A spoken question becomes text before anything is searched, and a finished answer is read back sentence by sentence as it streams — so the pipeline never learns which one you used.