mcpField
H
haiku.rag

haiku.rag

本地服务
ggozad.github.io记忆与知识642今天更新

关于 haiku.rag

haiku.rag 是面向个人文档的本地优先 RAG 系统,可生成带页码和章节引用的回答。它默认使用嵌入式 LanceDB 和 Ollama,也支持多种模型提供方及云端数据库存储。

主要功能

  1. 01导入多种文档与图像
  2. 02混合向量和全文检索
  3. 03可选重排序与图像检索
  4. 04生成带页码和章节引用的回答
  5. 05提供 CLI、Python API 和终端聊天

适用场景

  1. 01检索并总结个人文档
  2. 02核对回答引用对应的页面
  3. 03对文档内容进行计数和聚合
  4. 04通过 MCP 向助手提供文档检索

MCP 相关

提供 MCP 服务,向客户端开放文档搜索、文档读取和 Python 沙盒能力。可通过 `haiku-rag mcp --stdio` 启动。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ggozad-haiku-rag": {
"command": "uvx",
"args": [
"haiku-rag"
]
}
}
}
启动命令uvx haiku-rag

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypihaiku-rag0.102.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

haiku.rag

PyPI Python Downloads Docs Tests codecov

面向 Agent 的 RAG,可通过页码和章节标题引用来源,回答关于您自己文档的问题。默认通过 Ollama 使用开放模型,并基于嵌入式 LanceDB 数据库运行,因此无需服务端或 API 密钥。Pydantic AI 支持的任何提供方都可以替代它们,同一个数据库也可以存放在 S3、GCS、Azure 或 LanceDB Cloud 上。

基于 LanceDB、Pydantic AI 和 Docling 构建。文档:ggozad.github.io/haiku.rag。

功能

  • 摄取 PDF、办公文档、HTML、Markdown 和图像,可使用 Docling 在进程内处理,也可使用 docling-serve。存储的 DoclingDocument 会保留标题、表格、图片和页面来源信息。
  • 搜索支持向量与全文混合检索、可选的重排(cross-encoder、Jina、Cohere、Zero Entropy、vLLM、OpenRouter)、基于章节的上下文扩展,以及使用多模态嵌入器进行图像搜索(vLLM、OpenRouter、VoyageAI、Cohere)。可同时搜索多个命名数据库。
  • 回答具备 RAG 能力:搜索文档、运行沙盒化 Python 进行计数和聚合,并引用页码和标题。视觉模型可接收图表。可选能力可在长对话中压缩先前证据,并要求每个回答声明其依据。
  • 核验引用:在页面图像上绘制对应片段,可通过命令行、聊天 TUI 或 Python 操作。
  • 集成提供 Python API、原生 Pydantic AI 能力、可观察文档写入和转换搜索的插件钩子、供 Claude Code、Codex 和 Claude Desktop 使用的 MCP 服务,以及参考 Web 应用。
  • 运维支持 haiku-ingester 服务(文件系统、HTTP、S3 和 WebDAV 来源;带重试功能的 SQLite 或 Postgres 作业队列;控制平面和仪表板)、标签与回滚、清理,以及 haiku-rag doctor 健康检查。

安装

需要 Python 3.12 或更高版本。

pip install haiku.rag        # Docling, the VoyageAI and Cohere embedders, every reranker, the TUI
pip install haiku.rag-slim   # the core, with extras chosen by you

ingester、S3 访问,以及 Ollama 和 OpenAI 兼容端点以外的模型提供方均为额外组件。请参阅安装。

快速入门

默认配置使用 Ollama 进行嵌入和回答。快速入门指南介绍了需要拉取的模型以及如何改用 OpenAI。

haiku-rag init                                  # create the database
haiku-rag add-src paper.pdf                     # index a file, URL or directory
haiku-rag search "attention mechanism"
haiku-rag ask "What datasets were used for evaluation?"
haiku-rag ask "How many documents mention transformers?"
haiku-rag ask "Does this figure match the spec?" --image figure.png
haiku-rag chat                                  # multi-turn chat in the terminal

使用已配置来源进行持续摄取时,需要单独运行服务,并安装 ingester extra(pip install 'haiku.rag[ingester]'):

haiku-ingester serve

Python API

from haiku.rag.client import HaikuRAG

async with HaikuRAG("knowledge.lancedb", create=True) as rag:
    await rag.create_document_from_source("paper.pdf")
    await rag.create_document_from_source("https://arxiv.org/pdf/1706.03762")

    results = await rag.search("self-attention")
    for result in results:
        print(f"{result.score:.2f} | p.{result.page_numbers} | {result.content[:100]}")

    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]}")

如需组合自己的 Agent,请参阅能力。

MCP 服务

haiku-rag mcp --stdio

该服务为助手提供文档搜索、阅读和 Python 沙盒功能。在 Claude Code 中,插件会通过一项技能注册该服务:

claude plugin marketplace add ggozad/haiku.rag
claude plugin install haiku-rag

Codex 和 Claude Desktop 的配置说明见 MCP 文档。

示例

  • Docker 配置:docling-serve、ingester 和 MCP 服务
  • Web 应用:在浏览器中使用聊天、摄取、检查器和 doctor

文档

许可证

MIT。

mcp-name: io.github.ggozad/haiku-rag

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。