Guide
Answers from your own documents
A knowledge base from your documents, attached to an assistant, with hybrid retrieval.
15 minutes 5 steps
An assistant that answers from your documents, and that can be stopped from inventing when it finds nothing.
- A published assistant.
- A valid OpenAI credential, because embeddings go through it.
- Documents as text, markdown, CSV, HTML, JSON, XML, .docx or .xlsx.
Create the knowledge base
The default provider is pgvector, which is the same Postgres everything else sits in. Qdrant, Pinecone and Weaviate appear in the list but are disabled: they are not implemented. The embedding model locks the moment the first chunk exists, because otherwise half your index is embedded with one model and half with another.
Build → Knowledge bases → Create → Provider: PostgreSQL pgvector
Leave the chunking parameters alone the first time
Chunks of 800 tokens with 120 of overlap, six passages retrieved, a 0.25 threshold, and a 0.65 weight on vectors against 0.35 on lexical search. These are sensible starting values. Adjust them once you have seen what retrieves badly, not before.
Embeddings: 800 / 120 · Retrieval: Top K 6, threshold 0.25, vector 0.65 / lexical 0.35
Upload the documents
The knowledge base page has a documents tab. You can upload files, give a URL, or paste text. Upload queues an extraction, chunking and embedding pipeline; the table refreshes itself every five seconds and shows progress and the chunk count.
Source: File / URL / Text. Accepted: txt, md, csv, tsv, html, json, xml, docx, xlsx.
Test retrieval before you attach anything
The test action runs a real query against the real index and shows you the passages with their scores. If the obvious customer question does not pull the obvious passage, the problem is in the documents or the chunking, not in the prompt.
Knowledge base page → “Test retrieval” → Question + Top K → Search
Attach it, then decide how strict it is
On the assistant, the knowledge tab takes the base. If you want the assistant not to fill gaps from the model weights, turn on knowledge-only mode on the base and set a minimum number of passages and a minimum score. Note that an assistant with that mode on and no base attached will not pass the validator.
Assistant → Knowledge → pick the base. On the base: the knowledge-only section.
How to tell it worked
- Documents reach the ready state with a chunk count above zero.
- The retrieval test returns the right passage for a question a real customer would ask.
- A test call emits knowledge.queried, and knowledge.insufficient when nothing useful came back.
What does not work yet
Every guide has this section. If it were missing, it would mean we had not looked hard enough.
- PDFs cannot be uploaded. Neither can legacy .doc, .xls or .ppt. They are rejected at upload rather than ingested empty — but it still means you convert them yourself first.
- Reranking is there as an interface and is not implemented. Retrieval stays vector plus full-text search.
- Embeddings only go through OpenAI. The provider interface exists; there is one implementation behind it.