linuxrebel/DocuBrowser

A local AI powered Document search engine. That turns that pile of documents on your system into a manageable searchable info store.

DocuBrowse – ローカルAI駆動のドキュメント検索

何であるか

  • PDF、Word、電子書籍、コードなど、さまざまなファイル形式をインデックス化し、キーワードと意味的意味の両方で検索できるデスクトップ/ウェブアプリ。すべてローカルで実行されるAIモデル(Ollama)を使用。
  • すべての処理はあなたのマシン上で行われる。クラウドサービスもAPIキーも、1回のクエリごとのコストも不要。

主な機能

  • 二重検索モード – 高速なSQLite FTS5キーワード検索、AI生成の埋め込みによる意味検索、両方を組み合わせたハイブリッドモード。
  • ディープリンク – 検索結果が見つかった後、再インデックス化せずに文書内の正確な場所(ページ/行/セクション)にジャンプ可能。
  • AI要約 – 必要に応じてAIが生成する要約(初回生成後キャッシュ)。
  • 広範なフォーマット対応 – PDF、DOCX、PPTX、XLSX、ODT/ODS/ODP、Visio、draw.io、PlantUML、Mermaid、HTML/Markdown、電子書籍(EPUB、MOBI、AZW3)、DjVu、メール、RTF、CSV/TSV、設定ファイル、多数のマークアップ言語。
  • PII保護 – 新規インデックス化されたファイルから一般的な個人情報パターンをスキャンし、一致する文書を削除。
  • クロスプラットフォーム – Linux(RPM/DEB/tar)、Windows(zip)、macOS(dmg)用パッケージあり。Docker実験用ブランチも存在するが、本番環境には推奨しない。

動作方法

  1. インデックス化 – pdfplumber、python-docx、openpyxl、ebooklibなど、サポートされるファイルからテキストとメタデータを抽出し、全文検索テーブルを備えたSQLiteデータベースに保存。
  2. 埋め込み – Ollama経由で nomic-embed-text:latest モデルを実行し、各文書のベクトル埋め込みを作成。
  3. 検索 – キーワードクエリはFTS5インデックスにヒット;意味検索クエリはクエリの埋め込みを計算し、保存されたベクトルとのコサイン類似度検索を実行。ハイブリッドモードでは両方のスコアを統合。
  4. 結果UI – 関連性スコア、ディープリンクボタン、および「AI要約」ボタンを表示。結果をクリックすると、システムのデフォルトビューアでファイルが開かれる。

一般的なワークフロー

# インストール(Ubuntu例)
sudo apt install python3-pip calibre libvisio-tools djvulibre
pip install -r requirements.txt   # pdfplumber、python-docxなど含む
# サーバー起動(デフォルトポート8000)
python -m docubrowse
# ブラウザで http://localhost:8000 を開き、インデックス化するディレクトリを追加して検索を開始。

制限事項と既知の問題

  • 最低8GBのRAMが必要。GPUアクセラレーションはオプションだが、要約生成を高速化。
  • 32ビットCPUは非対応(Ollamaが32ビットビルドを提供していないため)。
  • 一部のレガシー形式(例:古いVisioの.vsdや画像のみのPDF/DjVu)は、オプションの外部ツールがインストールされていない限り、メタデータのみインデックス化。
  • 実験的なDockerビルドは、コンテナのサンドボックスブラウザからファイルを開けない。

ロードマップのハイライト

  • デスクトップ統合を備えた完全なDockerサポート。
  • より高速なインクリメンタルインデックス化とバックグラウンド再埋め込み。
  • 多言語要約用の追加言語モデル。

ライセンス

  • オープンソース。詳細はリポジトリのLICENSEファイルを参照。

DocuBrowse は本物のローカル実行AIアプリであり、個人文書コレクションに意味検索とAI生成要約をもたらし、AI/LLMツールキットの領域にしっかり位置づけられている。

関連

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