Knowledge Base
Upload documents, let ByteChef chunk and embed them, and give your workflows and AI agents semantic search over your own content.
A knowledge base is a collection of documents that ByteChef ingests, splits into chunks, and embeds into vectors so they can be searched by meaning rather than by exact keywords. It is the retrieval layer behind Retrieval-Augmented Generation (RAG): a workflow or AI agent asks a question, the knowledge base returns the most relevant chunks, and the model answers grounded in your own content.
Knowledge bases live under Automation → Knowledge Base. Each one is scoped to a
workspace and an environment, so the documents an agent retrieves in DEVELOPMENT are
isolated from PRODUCTION.
Availability
The Knowledge Base is enabled through configuration
(bytechef.ai.knowledge-base.enabled). If you don't see Knowledge Base in the
Automation navigation, ask your administrator to enable it. The vector store is backed by
Postgres with the pgvector extension — there is no separate vector database to operate.
What you can do
Create a knowledge base
Name a knowledge base and tune how documents are chunked.
Add documents
Upload files and watch them move through the processing pipeline.
Search
Run semantic queries and inspect the matching chunks and scores.
Use it in workflows & agents
Retrieve chunks from a workflow step or wire it into an AI agent as RAG.
How it works
- Ingest — You upload a file (or a source syncs records in). ByteChef extracts text, running OCR first for scanned PDFs and images.
- Chunk — The text is split into overlapping chunks sized by the knowledge base's chunking settings.
- Embed — Each chunk is turned into a vector by the configured embedding model and stored alongside the chunk text and metadata.
- Retrieve — A query is embedded the same way, and the nearest chunks are returned with a similarity score, optionally filtered by metadata or tags.
Where the vectors live
There is no separate vector database to provision, back up, or patch. Chunks and their embedding
vectors are stored in Postgres through the pgvector
extension, so the knowledge base is covered by whatever backup and monitoring you already run for
the ByteChef database. Because the vectors are ordinary columns, one query can filter on chunk
metadata and rank by vector similarity in the same round trip.
pgvector can point at a database separate from the main one — useful when you want the vector workload on its own instance:
| Variable | Purpose | Default |
|---|---|---|
BYTECHEF_AI_VECTORSTORE_PROVIDER | Vector store backend. | PGVECTOR |
BYTECHEF_AI_VECTORSTORE_PGVECTOR_URL | JDBC URL of the pgvector database. Leave unset to use the main database. | — |
BYTECHEF_AI_VECTORSTORE_PGVECTOR_USERNAME / _PASSWORD | Credentials for that database. | — |
The index itself is configured through the Spring AI pgvector properties, which ship with an
HNSW index, cosine distance, and 1536 dimensions — the size of the default OpenAI
embedding model. Changing to an embedding model with a different vector width means changing
spring.ai.vectorstore.pgvector.dimensions to match; see
AI Providers → Embedding models.
See the AI Vectorstore configuration reference for the full list.
OCR for scanned documents
Text extraction handles digital PDFs on its own. Scanned pages and images need OCR, which is a deployment-level choice:
| Variable | Purpose | Default |
|---|---|---|
BYTECHEF_AI_KNOWLEDGE_BASE_ENABLED | Master switch for the Knowledge Base. | false |
BYTECHEF_AI_KNOWLEDGE_BASE_OCR_PROVIDER | NONE, AZURE, or MISTRAL. | NONE |
BYTECHEF_AI_KNOWLEDGE_BASE_OCR_MISTRAL_API_KEY | Mistral OCR API key. | — |
MISTRAL is the only provider with an OCR implementation wired in today. AZURE is accepted by
the configuration but currently behaves like NONE.
OCR runs during ingestion, before chunking — the extracted text then follows the same chunk, embed, and index path as any other document.
Isolation
A knowledge base is scoped to a workspace and an environment, and on multi-tenant deployments each tenant's documents and vectors live in that tenant's own database or schema. There is no query path that spans tenants.
How is this guide?
Last updated on