io.github.ggozad/haiku-rag
AI 与智能体by ggozad
基于 LanceDB 的 Agentic Retrieval Augmented Generation(RAG)方案,支持更主动的检索与生成。
想把传统 RAG 做得更聪明,haiku-rag 借助 LanceDB 实现更主动的检索与生成,让知识问答更准也更灵活。
什么是 io.github.ggozad/haiku-rag?
基于 LanceDB 的 Agentic Retrieval Augmented Generation(RAG)方案,支持更主动的检索与生成。
README
haiku.rag
Agentic RAG that answers questions about your own documents with citations to page numbers and section headings. Runs locally on an embedded database, no server required.
Built on LanceDB, Pydantic AI, and Docling. Full documentation at ggozad.github.io/haiku.rag.
New: vision and multimodal search. Picture-aware ingestion captures embedded figure bytes; vision-capable QA models receive them alongside text. Multimodal embedders put picture vectors in the same space as text, enabling text-as-query → figure hits and image-as-query retrieval.
Features
- Hybrid search — Vector + full-text with Reciprocal Rank Fusion
- Multimodal & cross-modal search — Multimodal embedders (vLLM, VoyageAI, Cohere) put picture vectors in the same space as text; supports text-as-query → figure hits and image-as-query
- Question answering — RAG capability with citations (page numbers, section headings)
- Vision QA — Vision-capable models receive figure bytes alongside chunk text; attach your own images to questions in
ask,analyze, MCP, and the chat TUI - Reranking — local cross-encoders, Cohere, Zero Entropy, or vLLM
- Analysis capability — Complex analytical tasks via sandboxed Python code execution (aggregation, computation, multi-document analysis)
- Evidence compaction — Optional capability that replaces earlier questions' search results on the request with the evidence they cited, so long conversations stop resending everything they retrieved
- Citation policy — Optional capability that requires every answer to declare what grounds it, including declaring that nothing does
- Conversational RAG — Chat TUI and web application for multi-turn conversations with session memory
- Document structure — Stores full DoclingDocument, enabling structure-aware context expansion
- Multiple providers — Embeddings: Ollama, OpenAI, VoyageAI, Cohere, LM Studio, vLLM (multimodal via
multimodal: trueon vLLM/VoyageAI/Cohere). QA: any model supported by Pydantic AI - Local-first — Embedded LanceDB, no servers required. Also supports S3, GCS, Azure, and LanceDB Cloud
- CLI & Python API — Full functionality from command line or code
- MCP server — Expose as tools for AI assistants (Claude Desktop, etc.)
- Visual grounding — View chunks highlighted on original page images
- Production ingester — Long-lived
haiku-ingesterservice with persistent SQLite queue, async worker pool with retries and a dead-letter queue, FS / HTTP / S3 / WebDAV source adapters, FastAPI control plane, and a browser dashboard for operators. See docs/ingester.md. - Tags — Name database states with
haiku-rag tagand roll back to them - Inspector — TUI for browsing documents, chunks, and search results
Installation
Python 3.12 or newer required
Full Package (Recommended)
pip install haiku.rag
Includes all features: document processing, all embedding providers, and rerankers.
Using uv? uv pip install haiku.rag
Slim Package (Minimal Dependencies)
pip install haiku.rag-slim
Install only the extras you need. See the Installation documentation for available options.
Quick Start
Note: Requires an embedding provider (Ollama, OpenAI, etc.). See the Tutorial for setup instructions.
# Index a PDF
haiku-rag add-src paper.pdf
# Search
haiku-rag search "attention mechanism"
# Ask questions with citations
haiku-rag ask "What datasets were used for evaluation?"
# Ask about an image (vision-capable model)
haiku-rag ask "Does this figure match the spec in the design doc?" --image figure.png
# Analyze — complex analytical tasks via code execution
haiku-rag analyze "How many documents mention transformers?"
# Interactive chat — multi-turn conversations with memory
haiku-rag chat
# Continuously ingest from configured sources (FS, HTTP, S3, WebDAV)
haiku-ingester serve
See Configuration for customization options.
Python API
from haiku.rag.client import HaikuRAG
async with HaikuRAG("knowledge.lancedb", create=True) as rag:
# Index documents
await rag.create_document_from_source("paper.pdf")
await rag.create_document_from_source("https://arxiv.org/pdf/1706.03762")
# Search — returns chunks with provenance
results = await rag.search("self-attention")
for result in results:
print(f"{result.score:.2f} | p.{result.page_numbers} | {result.content[:100]}")
# QA with citations
answer, citations = await rag.ask("What is the complexity of self-attention?")
print(answer)
for cite in citations:
print(f" [{cite.chunk_id}] p.{cite.page_numbers}: {cite.content[:80]}")
For direct agent composition, see the capabilities documentation.
MCP Server
Use with AI assistants like Claude Desktop:
haiku-rag mcp --stdio
Add to your Claude Desktop configuration:
{
"mcpServers": {
"haiku-rag": {
"command": "haiku-rag",
"args": ["mcp", "--stdio"]
}
}
}
Provides tools for document management, search, QA, and analysis directly in your AI assistant.
Examples
See the examples directory for working examples:
- Docker Setup - Complete Docker deployment with continuous ingestion (
haiku-ingester) and MCP server - Web Application - Full-stack conversational RAG with CopilotKit frontend
Documentation
Full documentation at: https://ggozad.github.io/haiku.rag/
- Quickstart - Provider setup and first ingestion
- Installation - Packages and extras
- Configuration - YAML reference
- CLI - Command reference
- Python API - Complete API docs
- Capabilities - Native Pydantic AI RAG and analysis capabilities
- Tuning - Retrieval and answer-quality tuning
- Ingester - Production ingester for continuous indexing from FS, HTTP, S3, and WebDAV
- MCP - Model Context Protocol integration
- Remote processing - Offload conversion to docling-serve
- Applications - Chat TUI, web app, and inspector
- Benchmarks - Performance benchmarks
- Changelog - Version history
License
This project is licensed under the MIT License.
<!-- mcp-name is used by the MCP registry to identify this server -->mcp-name: io.github.ggozad/haiku-rag
常见问题
io.github.ggozad/haiku-rag 是什么?
基于 LanceDB 的 Agentic Retrieval Augmented Generation(RAG)方案,支持更主动的检索与生成。
相关 Skills
Claude接口
by anthropics
面向接入 Claude API、Anthropic SDK 或 Agent SDK 的开发场景,自动识别项目语言并给出对应示例与默认配置,快速搭建 LLM 应用。
✎ 想把Claude能力接进应用或智能体,用claude-api上手快、兼容Anthropic与Agent SDK,集成路径清晰又省心
RAG架构师
by alirezarezvani
聚焦生产级RAG系统设计与优化,覆盖文档切块、检索链路、索引构建、召回评估等关键环节,适合搭建可扩展、高准确率的知识库问答与检索增强应用。
✎ 面向RAG落地,把知识库、向量检索和生成链路系统串联起来,做架构设计时更清晰,也更少踩坑。
多智能体架构
by alirezarezvani
聚焦多智能体系统架构设计,梳理 Supervisor、Swarm、分层和 Pipeline 等模式,覆盖角色定义、通信协作与性能评估,适合规划稳健可扩展的 AI agent 编排方案。
✎ 帮你系统解决多智能体应用的架构设计与协同编排难题,适合构建复杂 AI 工作流,成熟度高、社区认可也很亮眼。
相关 MCP Server
知识图谱记忆
编辑精选by Anthropic
Memory 是一个基于本地知识图谱的持久化记忆系统,让 AI 记住长期上下文。
✎ 帮 AI 和智能体补上“记不住”的短板,用本地知识图谱沉淀长期上下文,连续对话更聪明,数据也更可控。
顺序思维
编辑精选by Anthropic
Sequential Thinking 是让 AI 通过动态思维链解决复杂问题的参考服务器。
✎ 这个服务器展示了如何让 Claude 像人类一样逐步推理,适合开发者学习 MCP 的思维链实现。但注意它只是个参考示例,别指望直接用在生产环境里。
by deusdata
持久化的代码库知识图谱,可跨会话保留上下文,在 session 重启或上下文压缩后仍能继续使用。
✎ 专治 AI 编程助手“会话失忆”,把代码库沉淀为持久知识图谱,重启或压缩上下文后也能无缝续上开发状态。