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がユーザーのクエリのバリエーションを生成し、再現率(recall)を向上させます。
  2. 並列検索: node-llama-cpp を介してローカルのGGUFモデルを使用し、BM25全文検索(キーワード)とベクトルセマンティック検索(埋め込み)を同時に実行します。
  3. 融合: 結果は、完全一致を保持するためのトップランクボーナスを伴う相互ランキング融合(RRF)を使用して結合されます。
  4. リランキング: ローカルLLMリランカーが上位の候補をスコアリングし、最終的な順序を精査します。
  5. コンテキスト化: ユーザーはパスに説明的なメタデータを追加でき、これによりLLMがドキュメントを選択する際のコンテキスト判断が向上します。

対象ユーザー

  • ナレッジワーカー: 大量のMarkdownノートや会議のトランスクリプトを保有しており、高速かつプライベートな検索方法を必要とする方。
  • AIエージェント開発者: ローカルコンテキストを検索するための信頼できるツールを必要とする、エージェント的ワークフローを構築している開発者(CLI、SDK、およびMCPサーバーを通じてサポート)。
  • プライバシー重視のユーザー: 外部APIを使用せずにLLMによる検索機能を利用したいと考えているすべての方。

ハイライト

  • ローカルファースト: すべての埋め込み、リランキング、クエリ拡張は、GGUFモデルを使用してデバイス上で行われます。
  • ハイブリッド検索: キーワード(BM25)検索とセマンティック(ベクトル)検索を組み合わせ、精度と再現率のバランスを最適化します。
  • エージェント対応: AIエージェントへの容易な統合のために、Model Context Protocol (MCP) サーバーとNode.js/Bun SDKが含まれています。
  • コンテキスト・メタデータ: コレクションにツリーベースのコンテキストを追加でき、検索精度を向上させます。
  • 柔軟な検索: パス、docid、または行範囲制御を備えたglobパターンによるドキュメント検索をサポートしています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト