Install#
fastrag is a library, not a platform: pip install it, construct the
pieces your pipeline needs, and call them from your own script. There is no
console command and no daemon to run.
pip install "fastrag-ai[model2vec,milvus,openai]"
Requirements#
Python 3.13 or newer.
A reachable PostgreSQL server, for anything that persists state —
PostgresCache(the step cache) andPostgresChatStore(conversations in the serving layer) need one.asyncpgandsqlalchemyare core dependencies, so nothing extra installs it — you provide the server.A vector store.
MilvusVectorStoresupports dense vectors and optional BM25;OpenSearchVectorStoresupports dense and lexical search through its HTTP API.A chat endpoint for generation — any OpenAI-compatible one (OpenAI, Ollama, vLLM, llama.cpp), via
OpenAIChatModel.
The cache and chat-store schemas are self-managed: PostgresCache and
PostgresChatStore create their own tables on __aenter__, so there is no
migration step for an installed package.
Extras#
The core install stays small; every provider is an extra.
Extra |
Installs |
Unlocks |
|---|---|---|
|
|
Structural BPE counting and Markdown/RST normalization; explicit byte counting and text/HTML normalization work without these dependencies |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Wider |
Reranking needs no extra: CohereReranker
posts JSON with httpx, already a core dependency, rather than importing a
provider SDK — point base_url at any endpoint that speaks the Cohere
rerank protocol.
Importing a class whose extra is not installed raises
ConfigurationError naming the exact
pip install command, never a bare ImportError.
Note
The numbered examples currently use RecursiveCharacterTextSplitter, which
requires chunkers. Structural pipelines instead select normalization for
the default tokenizer and rich textual adapters; see Structure-aware ingestion.
See also#
Quickstart to index something and ask it a question; Configuration for how every service takes its credentials.