haiku.rag/haiku_rag_slim
Yiorgis Gozadinos cab510d0d5
Give the evidence capabilities one typed state
RAGState and AnalysisState each declared the same five fields, so the generic
base could not name them: StateT was bound to BaseModel, and every access
went through cast(Any, state), a getattr by string, or a loop clearing fields
by name so it could skip the one only AnalysisState has.

EvidenceState declares them once. RAGState adds nothing, AnalysisState adds
executions and overrides begin_invocation to clear them. StateT binds to
EvidenceState, which removes all ten casts and both state-shape getattrs; the
three getattr(ctx.deps, "state") probes stay, since those check a
host-supplied object rather than our own state.

discover_evidence reached into capability.state for two fields. It now asks
through evidence_record() and citation_index(), alongside the
evidence_tool_names() and cite_available accessors it already used. The eval
runner's _RagLikeState protocol and the chat app's getattr reads described
this shape from outside and are gone.

Compatibility is semantic JSON-object equivalence, not bytes: field names and
nesting are unchanged, so a dict stored by 0.75.0 loads and re-dumps equal,
but deriving from a shared base reorders AnalysisState's keys. Nothing
serializes, hashes or string-compares this state — every carry point
re-validates by key.
2026-08-19 17:08:44 +03:00
..
haiku/rag Give the evidence capabilities one typed state 2026-08-19 17:08:44 +03:00
LICENSE Restructure into uv workspace to support minimal and full installations 2025-11-04 17:59:12 +02:00
pyproject.toml Fix the MCP registry entry and fill in package and docs metadata 2026-08-18 14:37:05 +03:00
README.md Remove the mxbai reranking provider 2026-07-14 11:09:55 +03:00

haiku.rag-slim

Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling - Core package with minimal dependencies.

haiku.rag-slim is the core package for users who want to install only the dependencies they need. Document processing (docling), and reranker support are all optional extras.

For most users, we recommend installing haiku.rag instead, which includes all features out of the box.

Installation

Python 3.12 or newer required

Minimal Installation

uv pip install haiku.rag-slim

Core functionality with OpenAI/Ollama support, MCP server, and Logfire observability. Document processing (docling) is optional.

With Document Processing

uv pip install haiku.rag-slim[docling]

Adds support for 40+ file formats including PDF, DOCX, HTML, and more.

Available Extras

Document Processing:

  • docling - PDF, DOCX, HTML, and 40+ file formats

Embedding Providers:

  • voyageai - VoyageAI embeddings

Rerankers:

  • cross-encoder - Local reranking via sentence-transformers
  • cohere - Cohere
  • zeroentropy - Zero Entropy

Model Providers:

  • OpenAI/Ollama - included in core (OpenAI-compatible APIs)
  • anthropic - Anthropic Claude
  • groq - Groq
  • google - Google Gemini
  • mistral - Mistral AI
  • bedrock - AWS Bedrock
  • vertexai - Google Vertex AI
# Common combinations
uv pip install haiku.rag-slim[docling,anthropic,cross-encoder]
uv pip install haiku.rag-slim[docling,groq]

Usage

See the main haiku.rag repository for:

  • Quick start guide
  • CLI examples
  • Python API usage
  • MCP server setup

Documentation

Full documentation: https://ggozad.github.io/haiku.rag/