tobi/qmd

mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local

解决的问题

QMD (Query Markup Documents) 为个人知识库、Markdown 笔记和文档提供完全本地化的端侧搜索引擎。通过结合多种搜索策略和 LLM 驱动的精炼技术,它解决了在碎片化的本地文件中查找特定信息的问题,在无需将数据上传至云端的情况下确保高质量的检索结果。

工作原理

QMD 对本地目录(集合)进行索引,并采用混合搜索流水线:

  1. 查询扩展:LLM 生成用户查询的变体以提高召回率。
  2. 并行检索:通过 node-llama-cpp 使用本地 GGUF 模型,同时执行 BM25 全文搜索(关键词)和向量语义搜索(嵌入)。
  3. 融合:使用带有顶级排名加权的倒数排名融合 (RRF) 来合并结果,以保留精确匹配。
  4. 重排序:本地 LLM 重排序器对顶级候选者进行评分,以优化最终排序。
  5. 上下文构建:用户可以为路径添加描述性元数据,这有助于 LLM 在选择文档时做出更好的上下文决策。

适用对象

  • 知识工作者:拥有大量 Markdown 笔记或会议记录,需要快速、私密搜索方式的人员。
  • AI Agent 开发者:正在构建需要可靠本地上下文检索工具的智能体工作流的开发者(通过 CLI、SDK 和 MCP 服务器支持)。
  • 注重隐私的用户:希望在不使用外部 API 的情况下使用 LLM 驱动的搜索功能的所有人。

亮点

  • 本地优先:所有嵌入、重排序和查询扩展均使用 GGUF 模型在设备端完成。
  • 混合搜索:结合关键词 (BM25) 和语义 (向量) 搜索,实现精度与召回率的平衡。
  • 面向智能体:包含 Model Context Protocol (MCP) 服务器和 Node.js/Bun SDK,便于集成到 AI Agent 中。
  • 上下文元数据:允许为集合添加基于树的上下文,以提高检索准确性。
  • 灵活检索:支持通过路径、docid 或带有行范围控制的 glob 模式检索文档。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目