Knowledge base
Verified with Cortex on October 2, 2026
The knowledge base lets employees ground an answer on your organization's internal documents. The AI engine extracts the text, which is split into chunks and vectorized; the chunks closest to the question are added to the message. Every excerpt goes through DLP filtering before it leaves the gateway. It is managed in the admin console, under "Knowledge base", by the "Administrator" and "Knowledge manager" roles.
Requirements
It needs the AI engine enabled and an embedding backend, that is an OpenAI-compatible server that serves /v1/embeddings (Ollama, vLLM…). These variables are read by the AI engine process:
RAG_EMBEDDING_BACKEND_URL=http://ollama:11434/v1
RAG_EMBEDDING_MODEL=exact-model-name
The URL includes the /v1 prefix, and the two variables go together. The model must produce vectors of the width of RAG_EMBEDDING_DIM (1024 by default), fixed for each schema at migration. This backend receives document text and questions in clear: choose one you control.
The "Knowledge-base posture" card shows the state as "Active" or "Not active", with the reason:
| Reason shown | Effect |
|---|---|
| "The node is disabled in the deployment configuration." | Uploads refused |
| "The node is not answering — uploads wait in the queue." | Uploads queued |
| "No embedding model is declared — uploads wait in the queue." | Uploads queued |
| "The declared model does not match the schema width — uploads are refused." | Uploads refused |
| "The declared model does not match the pinned model — uploads are refused." | Uploads refused |
When uploads are refused, "Upload a document" is greyed out. As long as the posture is not "Active", employees are not offered the knowledge base in the chat. The card also shows the settings in force: "Excerpts per answer" (5), "Minimum similarity" (0.3), "Accepted formats", "Maximum document size" (10 MiB) and "Documents" (1000 at most). They are set with RAG_TOP_K, RAG_MIN_SIMILARITY, RAG_MAX_DOCUMENT_BYTES and RAG_MAX_DOCUMENTS, then recreate the gateway container (docker compose up -d gateway).
Collections
Every document belongs to a collection, and access is set per collection. The "Collections" tab lists their "Access", "Documents" and "State". A "General" collection, open to "All departments", exists from installation.
Only an "Administrator" manages collections. "New collection" asks for a "Name" (unique regardless of case), a "Description", "Enabled" and the "Access": "All departments" or "Selected departments". An employee reads a collection if it is enabled and open to all departments or to their own; with no department, they see only the collections open to all. A restricted collection with no department ticked is "Readable by nobody".
The actions menu offers "Edit", "Disable" (or "Enable") and "Delete". Disabling removes the collection from search and from the employee pages, but keeps its documents and still accepts uploads. "Delete" is only possible when it is empty ("Remove its documents first"). A "Knowledge manager" sees the collections read-only; the console shows them this one entry only.
Add documents
- At the top of the page, click "Upload a document".
- Choose the "Destination collection".
- Drag a file onto the area "Drop a file here or browse", or click it to choose one. The dialog repeats the limits, for example "PDF, DOCX, XLSX, text · 10 MiB max".
- Click "Upload". The document enters the list.
- Follow its "Status": "Uploaded", "Processing", then "Indexed" or "Rejected". The list refreshes on its own.
The formats are PDF, DOCX, XLSX and text (the picker offers .txt, .md and .csv). The AI engine recognizes the type from the content, not the extension; a text file must be UTF-8, and an encrypted PDF is rejected. Above the allowed size, the console answers "The file is larger than the deployment allows."; above the quota, "The document quota is reached — remove documents before uploading."
For a "Rejected" document, click its status: the reason appears (unsupported type, text not found or not extractable, content that looks encoded, node not answering after three attempts…), with "Remove". "Delete" removes any document; past answers that cited it show it as unavailable.
In the chat
The "Knowledge base" page in the employees' sidebar lists "Your collections" (those open to their department or to everyone) and the "Documents you can query", with search and a way to open the indexed text.
In the input area, the "Knowledge base" button offers "Off" (the default), "All my collections" or one collection. It only appears when the posture is "Active" and the chosen destination is available, and it goes back to "Off" when the employee switches destination. With no readable collection, the button is inactive.
Under the answer, the "2 knowledge-base sources" card (the number varies) lists the file, the collection, the chunk and the relevance. Clicking a source opens the cited chunk in a panel; it comes from the local index and is displayed on the employee's device. When no passage is close enough, the answer carries "Knowledge base consulted — no relevant passage". When the knowledge base cannot be used, for example because the excerpts could not be checked by the DLP filter, it states "Knowledge base not applied" with the reason. If the employee turns off "Show sources under replies" in "Settings" (on by default), the card and these notes disappear; the transparency panel always lists the sources.