Installation
Choose Your Package
haiku.rag is available in two packages:
Full Package (Recommended)
The full package pulls the docling, voyageai, cohere, zeroentropy,
cross-encoder, jina and tui extras. It does not include s3 or ingester:
uv pip install 'haiku.rag[ingester]' # the haiku-ingester service
uv pip install 'haiku.rag[s3]' # S3 and object storage
Slim Package (Minimal Dependencies)
uv pip install haiku.rag-slim
uv pip install 'haiku.rag-slim[docling]'
uv pip install 'haiku.rag-slim[docling,voyageai,cross-encoder]'
Extras
Every extra haiku.rag-slim defines. The right-hand column marks the ones the
full haiku.rag package already includes.
| Extra | Provides | In haiku.rag |
|---|---|---|
docling |
PDF, DOCX, PPTX, images and 40+ formats, converted locally | yes |
tui |
Terminal UI for chat and inspect |
yes |
voyageai |
VoyageAI embeddings | yes |
cohere |
Cohere embeddings and reranking | yes |
zeroentropy |
Zero Entropy reranking | yes |
cross-encoder |
Local reranking via sentence-transformers | yes |
jina |
Local Jina reranking (provider: jina-local) |
yes |
s3 |
S3 and object-storage access | no |
ingester |
The haiku-ingester service (also pulls s3) |
no |
anthropic |
Anthropic Claude models | no |
google |
Google Gemini models | no |
groq |
Groq models | no |
mistral |
Mistral models | no |
bedrock |
AWS Bedrock models | no |
vertexai |
Google Vertex AI models | no |
Ollama and any OpenAI-compatible endpoint work with no extra at all.
Built-in providers (no extras needed):
- Ollama (default embedding provider)
- OpenAI (GPT models for QA and embeddings)
- vLLM and other OpenAI-compatible endpoints (embeddings, QA, reranking)
- Jina reranking via provider: jina, which calls the Jina HTTP API
Other providers come from the extras above, which pull the matching Pydantic AI extra. For Claude models, uv pip install 'haiku.rag-slim[anthropic]'.
See Configuration for configuring providers including advanced options like vLLM.
Requirements
- Python 3.12+
- Ollama (for default embeddings and QA)
Pre-download Models (Optional)
You can prefetch all required runtime models before first use:
This will download: - Docling models for document processing - HuggingFace tokenizer models for chunking - Any Ollama models referenced by your current configuration
Remote Processing (Optional)
When using haiku.rag-slim, you can skip installing the docling extra and instead use docling-serve for remote document processing. This is useful for:
- Keeping dependencies minimal
- Offloading heavy document processing to a dedicated service
- Production deployments with separate processing infrastructure
See Remote processing for setup instructions and Document Processing for configuration options.
Docker
Only the slim image is published. Build the full image yourself:
Slim Image (Minimal)
Pre-built slim image with minimal dependencies - use with external docling-serve for document processing:
See examples/docker/docker-compose.yml for a complete setup with docling-serve.
Full Image (Self-contained)
Build locally to include all features and document processing without docling-serve:
docker build -f docker/Dockerfile -t haiku-rag .
docker run -p 8001:8001 \
-v /path/to/haiku.rag.yaml:/app/haiku.rag.yaml \
-v /path/to/data:/data \
haiku-rag
See docker/README.md for complete build and configuration instructions, including how to run the ingester service for continuous document ingestion.