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はローカルディレクトリ(コレクション)をインデックス化し、以下のハイブリッド検索パイプラインを採用しています:
- クエリ拡張: LLMがユーザーのクエリのバリエーションを生成し、再現率(recall)を向上させます。
- 並列検索:
node-llama-cppを介してローカルのGGUFモデルを使用し、BM25全文検索(キーワード)とベクトルセマンティック検索(埋め込み)を同時に実行します。 - 融合: 結果は、完全一致を保持するためのトップランクボーナスを伴う相互ランキング融合(RRF)を使用して結合されます。
- リランキング: ローカルLLMリランカーが上位の候補をスコアリングし、最終的な順序を精査します。
- コンテキスト化: ユーザーはパスに説明的なメタデータを追加でき、これによりLLMがドキュメントを選択する際のコンテキスト判断が向上します。
対象ユーザー
- ナレッジワーカー: 大量のMarkdownノートや会議のトランスクリプトを保有しており、高速かつプライベートな検索方法を必要とする方。
- AIエージェント開発者: ローカルコンテキストを検索するための信頼できるツールを必要とする、エージェント的ワークフローを構築している開発者(CLI、SDK、およびMCPサーバーを通じてサポート)。
- プライバシー重視のユーザー: 外部APIを使用せずにLLMによる検索機能を利用したいと考えているすべての方。
ハイライト
- ローカルファースト: すべての埋め込み、リランキング、クエリ拡張は、GGUFモデルを使用してデバイス上で行われます。
- ハイブリッド検索: キーワード(BM25)検索とセマンティック(ベクトル)検索を組み合わせ、精度と再現率のバランスを最適化します。
- エージェント対応: AIエージェントへの容易な統合のために、Model Context Protocol (MCP) サーバーとNode.js/Bun SDKが含まれています。
- コンテキスト・メタデータ: コレクションにツリーベースのコンテキストを追加でき、検索精度を向上させます。
- 柔軟な検索: パス、docid、または行範囲制御を備えたglobパターンによるドキュメント検索をサポートしています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト