返回 MCP 目录
public公开dns本地运行

haiku.rag

Haiku RAG是一个基于LanceDB、Pydantic AI和Docling构建的智能检索增强生成系统,支持混合搜索、重排序、问答代理、多代理研究流程,并提供本地优先的文档处理和MCP服务器集成。

article

README

🚀 俳句检索增强生成(Haiku RAG)

俳句检索增强生成(Haiku RAG)是一个基于 LanceDBPydantic AIDocling 构建的智能检索增强生成系统。它具备多种强大功能,能有效处理文档、实现高效搜索和问答,为研究和信息处理提供有力支持。

✨ 主要特性

  • 混合搜索 — 结合向量搜索与全文搜索,并采用互反排名融合算法。
  • 重排序 — 支持 MxBAI、Cohere、零熵或 vLLM 等重排序方法。
  • 问答功能 — 问答代理可提供引用信息(页码、章节标题)。
  • 研究代理 — 通过 pydantic - graph 实现多代理工作流:规划、搜索、评估、合成。
  • 文档结构处理 — 存储完整的 DoclingDocument,支持基于结构的上下文扩展。
  • 视觉定位 — 在原始页面图像上高亮显示文本块。
  • 时间回溯 — 使用 --before 参数可查询数据库在任意历史时间点的状态。
  • 多供应商支持 — 嵌入模型:Ollama、OpenAI、VoyageAI、LM Studio、vLLM。问答/研究:支持 Pydantic AI 所支持的任何模型。
  • 本地优先 — 嵌入 LanceDB,无需服务器。也支持 S3、GCS、Azure 和 LanceDB Cloud。
  • MCP 服务器 — 可作为工具供 AI 助手(如 Claude Desktop)使用。
  • 文件监控 — 监控目录,文件变更时自动索引。
  • 检查器 — 提供文本用户界面(TUI),用于浏览文档、文本块和搜索结果。
  • 命令行界面(CLI)与 Python API — 可通过命令行或代码实现全部功能。

📦 安装指南

需要 Python 3.12 或更高版本

完整包(推荐)

uv pip install haiku.rag

包含所有功能:文档处理、所有嵌入模型供应商和重排序器。

精简包(最小依赖)

uv pip install haiku.rag - slim

仅安装所需的扩展。可用选项请参阅 安装文档

🚀 快速开始

# 索引 PDF 文件
haiku - rag add - src paper.pdf

# 搜索
haiku - rag search "attention mechanism"

# 带引用的问答
haiku - rag ask "What datasets were used for evaluation?" --cite

# 深度问答 — 将复杂问题分解为子查询
haiku - rag ask "How does the proposed method compare to the baseline on MMLU?" --deep

# 研究模式 — 迭代规划和搜索
haiku - rag research "What are the limitations of the approach?" --verbose

# 交互式研究 — 人工介入决策点
haiku - rag research "Compare the approaches discussed" --interactive

# 监控目录变更
haiku - rag serve --monitor

自定义选项请参阅 配置文档

💻 使用示例

基础用法

from haiku.rag.client import HaikuRAG

async with HaikuRAG("research.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]}")

关于研究代理和使用 AG - UI 进行流式处理,请参阅 代理文档

MCP 服务器

可与 Claude Desktop 等 AI 助手配合使用:

haiku - rag serve --mcp --stdio

添加到你的 Claude Desktop 配置中:

{
  "mcpServers": {
    "haiku - rag": {
      "command": "haiku - rag",
      "args": ["serve", "--mcp", "--stdio"]
    }
  }
}

可直接在 AI 助手中提供文档管理、搜索、问答和研究工具。

🔍 示例

工作示例请参阅 示例目录

  • [交互式研究助手](examples/ag - ui - research/) - 基于 Pydantic AI 和 AG - UI 的全栈研究助手,支持人工介入审批和实时状态同步。
  • Docker 部署 - 完整的 Docker 部署方案,包含文件监控和 MCP 服务器。
  • [A2A 服务器](examples/a2a - server/) - 自包含的 A2A 协议服务器包,带有对话代理界面。

📚 详细文档

完整文档请访问:https://ggozad.github.io/haiku.rag/

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

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端