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 模式檢索文件。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案