ドキュメントの山を、検索可能な実用的なナレッジベースに変える

2026/07/09 5:37

ドキュメントの山を、検索可能な実用的なナレッジベースに変える

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

DocuBrowse v0.9.0 は、インターネット接続、クラウドストレージ、または API サブスクリプションを必要とせずに個人ファイルを索引化するように設計された堅牢なローカルフーストドキュメント管理ツールです。これは、ユーザーのマシン上で完全に動作し、

nomic-embed-text
および
dolphin3
という特定のローカル AI モデルを使用して、従来のキーワードエンジン(SQLite FTS5)に重み付けの 70% と併せて语义検索を提供することでこれを達成します。システムは PDF、電子書籍(AZW、EPUB)、Office ドキュメントなど幅広い形式をサポートしています。プライバシーに関わる重要な点として、インデックス化前以降のスキャンを行い、機密 PII(SSN またはクレジットカード号など)を検出し、影響を受けたドキュメントを自動的にブラックリストに追加して索引化を防ぎます。このソフトウェアは典型的な検索遅延が 150ms を下回る高速なパフォーマンスを提供し、ダーク/ライトテーマの対応、関連付けスコアリング、文字順インデックスを含む安定したインターフェースを備えています。Linux、Windows、macOS でクロスプラットフォームに対応し、
/settings
または CLI コマンドで構成可能であり、CSRF 保護や XSS 防止といった包括的なセキュリティ対策も含まれています。

本文

DocuBrowse バージョン 0.9.0 リリースノート

📦 概要

対応プラットフォーム: Linux (RPM, DEB, tarball)、Windows (zip)、macOS (dmg)。インターフェースは安定しており、破壊的な変更を可能な限り回避しています。

DocuBrowse は、雑然としたドキュメントの山を、実際に検索できる状態に変換します。PDF、電子書籍、Word ドキュメント、ノートなど、あらゆるファイルを指し示すだけで、キーワードだけでなく「意味」を理解するスマートなインデックスを作成します。「リース更新に関する契約書」といった指示を出しても、その言葉がファイルに現れていなくても見つけることができます。結果をクリックすると、ファイルを開く前に即席で AI がサマリー(概要)を表示します。また、個人識別情報 (PII) への対応ができ、複数のドキュメントディレクトリを処理することも可能です。

DocuBrowse は完全にあなたのローカルマシン上で動作し、ローカル AI モデルを使用するため、インターネット接続や API キーの心配は一切ありません。あなたのデータ。あなたの AI。

仕組み: SQLite FTS5 キーワード検索に加え、Ollama (nomic-embed-text + dolphin3) を活用した AI による意味的類似度検出とサマリー生成機能を搭載しています。


🗺️ ナビゲーション


🚀 機能

🔍 二重検索モード

  • キーワード検索: SQLite FTS5 を通じた高速フルテキスト検索(タイトル、著者、サブジェクト、タグ、スニペット)。
  • 意味的検索: Ollama エンベッディング(nomic-embed-text:latest)を活用した AI による類似度検出。
  • ハイブリッドモード (デフォルト): 70% の意味的スコアと 30% のキーワードスコアを合成し、再ランク付けされます。

📖 AI サマリー

  • ドキュメントタイトルのいずれかをクリックすると、Ollama (dolphin3:latest) を使用してオンデマンド生成される Kindle 風の本表紙のようなサマリーが表示されます。
  • 初回生成後: データベースにキャッシュされるため、高速化されます。
  • 役割分担: 意味的検索用エンベッディングは別のローカルモデル (nomic-embed-text:latest) が担当します。

📚 ドキュメントインデックス化

  • 形式: PDF, DOCX, PPTX, XLSX, EPUB, MOBI, AZW3, AZW, HTML, TXT, Markdown
  • PDF の高度な解析:
    • 優先的に
      pdfplumber
      を使用 (
      bloated-object
      ファイルには
      pypdf
      でフォールバック)。
    • 複雑なレイアウトに対して
      layout=False
      で再試行。
    • スキャン済み(画像のみ)PDF は検出され
      ocr_list_pdfs.txt
      へルーティングされます。
  • Word/プレゼン/スプレッドシート:
    • Word (
      python-docx
      ): パラグラフ、テーブル、主要な属性(タイトル、著者、サブジェクト)の抽出。
    • プレゼン (
      python-pptx
      ): スライドテキスト、ノート、および主要な属性の抽出。
    • スプレッドシート (
      openpyxl
      ): セル値とシート名の抽出。
  • 電子書籍:
    • EPUB:
      ebooklib
      / MOBI/AZW3:
      mobi package
      +
      Calibre
      フォールバック。
    • DRM 暗号化 AZW: メタデータのみインデックス化(タイトル/著者は表示可能、本文は検索不可)。
  • PII 保護: スキャナーが SSN クレジットカード情報、銀行振込元/口座番号、生年月日、MRN、免許証、パスポートのパターンを検出し、該当するドキュメントを削除し、永続的にブラックリストに載せます。

🎨 ユーザーインターフェース

  • ダークモード/ライトモードテーマ切り替え
  • ページネーションされた結果(1 ページ 50 ドキュメント)とナビゲーション
  • 文字順インデックスバー (A–Z, 0–9): クイックナビゲーションが可能で、ページ読み込み間で状態が保持されます。
  • トピックによるフィルタリング用のタグクラウド
  • 各結果カード上の関連度スコアバッジ(0-100%)
  • 「開く」ボタン:
    xdg-open
    を介してデフォルトアプリでファイルを起動。
  • アクション: クリックすると AI サマリーを表示; 📋 クリップボードにパスをコピー; 🗑 ファイルをディスクとインデックスから削除(確認が必要)。

⚙️ 設定 (
/settings
)

  • 全般パネル: ドキュメントディレクトリ(ライブブラウザ付き)、追加のスキャンディレクトリの管理、ワーキングディレクトリ、ポート設定。
  • 無視ディレクトリパネル:
    ignore_dirs.txt
    をブラウザから管理可能。削除前に確認プロンプトが表示されます。

⚡ パフォーマンス

  • 検索レイテンシ: 通常で <150ms
  • 並列処理: プロセスプールエグゼキューターを使用した並列 PDF 抽出(物理コア数の感知されたワーカー数)。
  • メモリ安全: カーネル強制 RLIMIT_AS (6 GB/ワーカー) + フリー RAM しきい値でのポーズ/再開。

📸 スクリーンショット

  • ダークモード
  • ライトモード

縮小画像をクリックしてフルサイズを表示します。


⚡ クイックスタート

必須要件

  • Python 3.9+
  • Ollama (起動時不足の場合は自動インストール)
    • モデル:
      nomic-embed-text:latest
      (エンベッディング),
      dolphin3:latest
      (サマリー生成)
  • ブラウザ (Chrome, Firefox, Safari, Edge)
  • Calibre (電子書籍用): Linux では
    sudo apt install calibre
    など

詳細な手順については INSTALL.md を参照してください。

インストール(推奨)

Releases ページから適切なパッケージをダウンロードしてください。

Fedora / RHEL

sudo dnf install ./docubrowser-foss-0.9.0-7.noarch.rpm

Debian / Ubuntu / Mint

sudo apt install ./docubrowser-foss_0.9.0-7_all.deb

任意の Linux (tarball)

tar xzf docubrowser-foss-0.9.0-7.tar.gz
cd docubrowser-foss-0.9.0-7
sudo ./install.sh

Windows

  1. zip ファイルを解凍します。
  2. Install.bat
    をダブルクリックしてください。
    • 事前インストール:Python 3.9+Ollamaが必要です。
    • インストール先:
      %USERPROFILE%\DocuBrowse

macOS

  1. dmg を開きます。
  2. Install.command
    をダブルクリック(初回の場合は右クリック→「開く」が必要)します。
    • 事前インストール:**Python 3.9+**が必要です。
    • インストール先:
      ~/Applications/DocuBrowse/

コマンドの使用

インストール後、CLI は

docubrowser
コマンドになります(例)。

docubrowser rescan      # ドキュメントのスキャンおよびインデックス化
docubrowser start       # サーバーの起動
docubrowser open        # UI の表示

注意: 開発環境やクローンしたリポジトリでは

./docubrowser.py <コマンド>
と記述する必要があります。

アンインストール

  • RPM:
    sudo dnf remove docubrowser-foss
  • DEB:
    sudo apt remove docubrowser-foss
  • Tarball:
    sudo ./uninstall.sh
  • Windows:
    Uninstall.bat
    をダブルクリック
  • macOS:
    Uninstall.command
    をダブルクリック

🔧 設定ファイル

設定は

/settings
という独立したページとして存在します。

デフォルト値と優先順位

設定は以下の順序で読み取ります:

  1. /etc/docubrowse.config
    (システム全体)
  2. ./docubrowse.config
    (docubrowser.py の隣に)
  3. Web UI の設定ギアアイコン

インストール後

  • CLI コマンド (
    rescan
    ,
    report
    ) はドキュメントディレクトリが設定されるまでエラーになります。
  • Web UI でもドキュメントディレクトリの構成が必要です(ギアアイコンまたは
    docubrowse.config
    経由)。

docubrowse.config
の例:

doc_dir      = /mnt/data/Documents
db_path      = /home/user/DocuBrowse/du-docs.db
port         = 8643
work_dir     = /home/user/DocuBrowse

⌨️ CLI リファレンス

使用方法:

docubrowser.py <command> [options]

コマンド説明
start
検索サーバーを起動 (Ollama チェックを実行)
stop
/
restart
サーバーの停止/再起動
status
サーバー状態、ドキュメント数などを表示
scan [TYPE ...]
ドキュメントのスキャンおよびインデックス化(エンベッディングなし)
rescan [TYPE ...]
スキャン + エンベッディング生成 (推奨)
scan-file --file PATH
単一ファイルの抽出、インデックス化、エンベッディング
embed
エンベッディング未処理ドキュメントへの処理更新
open
デフォルトブラウザで UI を開く
purge
インデックスを PII でスキャンして該当するドキュメントを削除
ignore add|remove|list DIR
スキャン除外ディレクトリの管理
report
ファイルタイプの詳細表示(DB 変更なし)
scan-missing [--dry-run]
オプトインのクリーンアップ:未発見/マウント不能ファイル処理
duplist
/
dupclean
重複ドキュメントの検出およびクリーンアップ TUI

グローバルオプション

  • --db PATH
    : SQLite データベースパス(設定を上書き)
  • --port PORT
    : サーバーポート(設定を上書き)
  • --config FILE
    : 設定ファイルパス

コマンド例

サーバー管理

docubrowser start --port 9000
docubrowser status
docubrowser stopall

スキャン (Type フィルター)

./docubrowser.py scan              # すべてのサポートされたタイプ
./docubrowser.py rescan pdf        # PDF のみ
./docubrowser.py rescan --no-embed # エンベッディングステップなし

単一ファイルインデックス化 (ブラックリスト解除用)

docubrowser scan-file --file /path/to/problem.pdf

重複検出

docubrowser duplist                # 正確な SHA256 の duplicates
docubrowser dupclean               # インタラクティブ TUI (Keep A/B)

🏗️ アーキテクチャ

DocuBrowse は以下のスクリプトから構成されます。

スクリプトロール
docubrowser.py
CLI ランチャー
ensure_ollama.py
Ollama バイナリ/モデルのチェック/インストール
doc_search.py
HTTP サーバー (API + UI)
scan_docs.py
ドキュメント発見、抽出、DB 書き込み
pdf_extractor.py
PDF 抽出 (
pdfplumber
+
pypdf
)
embed_docs.py
テキストを Ollama に送信;ベクトル格納
purge_pii.py
PII スキャンと削除
dup_detect.py
重複検出
du-docs.db
SQLite データベース (FTS5 + Embeddings)

ブラックリストファイル

  • scan_blacklist.txt
    : 抽出失敗したファイル(再試行時に除外)。
  • pii_blacklist.txt
    : PII を含むため削除されたファイル(永続的)。
  • ocr_list_pdfs.txt
    : OCR が必要な画像のみ PDF。
  • ignore_dirs.txt
    : スキャンから除外されるディレクトリ。

🌐 API エンドポイント

ベース URL:

http://localhost:8643

メソッドパス説明
GET
/
UI (CSRF トークン注入)
GET
/settings
設定画面
GET
/api/stats
ドキュメント数、埋め込み数など
GET
/api/search
ページネーション付き検索
GET
/api/synopsis
AI サマリー生成/取得
🔒 POST
/api/open
xdg-open
/ ファイル起動 (検証あり)
🔒 POST
/api/delete
削除 (DB/ディスク)
🔒 POST
/api/config
サーバー設定保存

検索レスポンス例:

{
  "documents": [
    {
      "id": 1,
      "name": "doc.pdf",
      "score": 0.95,
      "sem_score": 0.98,
      "fts_score": 0.8
    }
  ],
  "total": 312,
  "count": 50
}

CSRF セキュリティ:

/api/open
,
/api/delete
などの変化系エンドポイントは、プロセス固有の
X-CSRF-Token
とループバック Origin を必要とします。UI から呼び出す限り安全です。


🧠 検索アルゴリズム

スコアリングは以下の通りです: $$ \text{final_score} = 0.3 \times \text{keyword_score} + 0.7 \times \text{semantic_score} $$

  • キーワード (FTS5 BM25):
    • SQLite FTS5 インデックスを使用(単純なサブstring スキャンではない)。
    • タイトル・著者などフィールド優先度に基づく正規化スコア。
  • 意味的:
    • クエリとドキュメントの余弦類似度 (768 次元ベクトル)。
    • ミニマスしきい値:
      SEM_FLOOR=0.30
      (これ未満は無視)。

🔒 セキュリティ

DocuBrowse はローカル使用を前提に強化されています。

  • ホストヘッダー許可リスト: すべてリクエストは
    localhost/127.0.0.1/[::1]
    のみ受理され、DNS リバインディング対策が行われます。
  • CSRF 保護:
    /api/delete
    ,
    /api/open
    X-CSRF-Token
    とループバック Origin を必須としています(UI からしかアクセスできない)。
  • XSS 防御: HTML エスケープとデータ属性ベースのイベントリスナーを使用。
  • PII 検証: SSN、クレジットカードなどは規則やチェックサムで厳密に検証してから削除します。

📂 ファイル構造

DocuBrowse/
├── docubrowser.py            # CLI エントリポイント
├── doc_search.py             # HTTP サーバー
├── du-docs.db                # データベース (gitignored)
├── scan_blacklist.txt        # 抽出失敗リスト
├── pii_blacklist.txt         # PII 削除リスト (永続的)
├── ignore_dirs.txt           # 除外ディレクトリ
└── index.html                # フロントエンド UI

⚠️ トラブルシューティング

inotify watch limit exceeded

大規模ドキュメントコレクションでエラーが起きた場合、

/etc/sysctl.conf
fs.inotify.max_user_instances
を上げてください (例:
256
)。その後
sudo sysctl -p

PDF がフリーズする (Hang)

  • pdfinfo
    でオブジェクト数が 8000 を超えている場合、ExifTool メタデータ更新起因の可能性があります。自動的に
    pypdf
    で処理されますが、必要であれば
    scan-file --file ...
    で再試行してください。
  • スキャン済み PDF (OCR 必要) は検索には一致しません(OCR が必要か
    ocr_list_pdfs.txt
    を確認)。

Ollama が起動しない

ollama serve
ollama list                    # モデルがあるか確認
ollama pull nomic-embed-text:latest
ollama pull dolphin3:latest

📝 既知の制限事項

制限事項ステータス/対応策
DRM AZW検索不可。メタデータのみインデックス。
移動されたファイルインデックス更新されない(
scan-missing
または次の
rescan
で対応)。
認証なしローカル利用に限定されています(セキュリティ機能により公開へのアクセス防止)。
英語専用検索プロンプトやタグ生成は英語向けです。

🔄 最近の変更点 (Changelog)

v0.9.0 (2026-07-05)

  • ネイティブパッケージング: Linux (RPM/DEB/tarball), Windows (zip), macOS (dmg) を対応。
  • Windows 完全サポート:
    Install.bat
    /
    install.ps1
    による簡易インストール、レジストリショートカット作成。
  • クロスプラットフォーム: 新しい
    platform_paths.py
    で OS 固有の処理を一元管理。
  • UI/UX 改良: ダークモードパレット刷新、ダッシュボードレイアウト最適化。

v0.8.x (2026-06-13 ~ 2026-07-02)

  • v0.8.4: コードベースクリーンアップ(不使用機能削除)、サーバーコード約 300 ライン削減。
  • v0.8.3: 「Show 🙈」トグルによる非表示ドキュメント管理、UI パレット完全リデザイン。
  • v0.8.2: Open ボタンがファイルパスリンクを置き換え、
    xdg-open
    連携強化。
  • v0.8.1: DB スキーマミグレーションのバグ修正。

🚀 ロードマップ

フェーズ内容ステータス
Phase 2bフォーマット展開 (EPUB, MOBI)✅ 完了
Phase 2コード整理、設定 UI の導入✅ 完了
Phase 3ポリッシュ(高度なフィルター、エクスポート)🔄 開発中
Phase 3+API キー認証、Docker 化⏳ 予定

👨‍💻 AI 支援開発

DocuBrowse は Claude をコーディングパートナーとして利用しています。プロジェクトの状態を知るには以下のファイルを参照してください。

  • .claude/CLAUDE.md
    (ルールと学習)
  • status_docs/project_status.md
    (進捗状況)
  • status_docs/DECISIONS.md
    (意思決定ログ)

全状況を AI に投与するには:

cat .claude/CLAUDE.md status_docs/project_status.md status_docs/DECISIONS.md

⚖️ ライセンス

GNU General Public License v3.0 以降 (GPL-3.0-or-later)

Copyright (C) 2026 James Sparenberg。詳細は LICENSE を参照してください。

同じ日のほかのニュース

一覧に戻る →

2026/07/09 5:05

FAANGシミュレーター

## Japanese Translation: 「FAANG™ Life Simulator featuring MILTON」は、エントリーレベルのテックワーカーが直面する激しいプレッシャーを批判的に検証する風刺モバイルゲームです。このシミュレーションでは、**1 回のタップは人生の 1 四半期を表し**、**1 つのグリッドマスは 1 ヶ年を表す**ことで、プレイヤーには急速な加齢と変動するメトリクスを管理させながら、過酷な現実を目撃させる仕組みとなっています。初期状態として Milton は 22 歳(Q1)、パフォーマンススコアが 50、バーンアウトが 10 の状態で始まり、高給与(年額 19 万ドル)と金銭的自由の欠如(退職永久資金 0%)、そして資産総額 0 が同時に存在する厳しい現実を描き出します。プレイヤーがこれらの制約の中で動き回りながら、企業が 0% のトラクションを示す中で、特定のアクションによって定義された明確な複数のエンディングへと至ります:その行為とは、**「Form HR-1099-RAT」の記入**、**「Exit Interview」への参加**、そして**「GO HOME」画面の表示**です。シミュレーション終了後、プレイヤーはその結果を 𝕏(X)に投稿し、自らの架空のキャリアの終焉をデジタル記録として残すことができます。最終的に、このプロジェクトは業界全体の課題である従業員の福祉、定着率の難しさ、一流テクノロジー企業で働く際の隠れたコストなどについて鋭い評論を行い、官方的な提携はないまま、現状の高い成長を志向する専門職モデルの持続可能性に疑問を投げかける魅力的な体験へと抽象的な企業データを転換します。

2026/07/09 0:19

Chatto はオープンソースになりました

## Japanese Translation: Chatto は、セルフホスト用に設計された新たにリリースされたオープンソースのグループチャットおよびチームチャットアプリケーションです。ユーザーは、`brew install chattocorp/tap/chatto` で Homebrew を使用して Linux (x86_64/ARM64)、macOS、Windows 上ですぐに試すことができます。その後、`chatto init` と `chatto run` を実行します。その核心的な強みは、コンパクトなパフォーマンス、堅牢なプライバシー、完全なデータ保護です:すべてのデータは静態で暗号化され、アカウント削除時にユーザー固有の鍵が完全に「破棄」され、データ痕跡は残りません。連邦システムとは異なり、Chatto はサードパーティの追跡がない単一サーバーのコミュニティモデルを運用し、クライアントは同時に複数のサーバーに直接接続できます。内蔵された音声通話、ビデオ通話、画面共有はすべてエンドツーエンドで暗号化され、インフラストラクチャのキャパシティに応じてスケーリングします。現在、production 使用のためにバージョン 0.4 が安定しており、Chatto は広告やベンダーロックインを回避しています。有料の「Chatto Cloud」サービスが間もなくヨーロッパ所有のインフラ上で開始され、広告なしでロックインなく安全なホスティングを提供し、自動スケーリング、夜間のバックアップ、ダウンタイムなしのアップグレード、セルフホストされたサーバーとの完全互換性を提供します。追加のリージョンは 2027 年初頭に予定されています。バージョン 0.5 は安全性機能、コンテンツモデレーション、クライアントの改良に焦点を当て、予想される 1.0.0 リリースに向けて進みます(注:新しいバージョンがロールアウトするにつれて破壊的変更が発生する可能性があります)。コミュニティサポートは Chatto HQ の専用の #self-hosting チャンネルで利用でき、リリースおよび早期 Cloud ベータへのアクセスに関する更新のために低ボリュームのニュースレター(〜1 封/月)を購読することもできます。この安全かつ広告なしのプラットフォームは、現代のマルチメディア機能を損なうことなくユーザーの主権を優先します。 ## Text to translate: Chatto is a newly released open-source group and team chat application designed for self-hosting. Users can immediately try it on Linux (x86_64/ARM64), macOS, or Windows via Homebrew with `brew install chattocorp/tap/chatto`, then run `chatto init` and `chatto run`. Its core strengths are compact performance, robust privacy, and full data protection: all data is encrypted at rest and per-user keys are completely "shredded" upon account deletion, leaving no data trails. Unlike federated systems, Chatto operates on a single-server community model with no third-party tracking; clients can connect directly to multiple servers simultaneously. Built-in voice, video calls, and screen-sharing are fully end-to-end encrypted and scale with infrastructure capacity. Currently stable at version 0.4 for production use, Chatto avoids ads and vendor lock-in. A paid "Chatto Cloud" service is launching soon on European-owned infrastructure, offering secure hosting without ads or lock-in, automatic scaling, nightly backups, zero-downtime upgrades, and full compatibility with self-hosted servers; additional regions are expected in early 2027. Version 0.5 will focus on safety features, content moderation, and client polishing, leading to the anticipated 1.0.0 release within 6–12 months (note: breaking changes may occur as new versions roll out). Community support is available at Chatto HQ via a dedicated #self-hosting channel, and users can subscribe to a low-volume newsletter (~1 email/month) for updates on releases and early Cloud beta access. This secure, ad-free platform prioritizes user sovereignty without compromising modern multimedia capabilities.

2026/07/09 3:00

Grok 4.5

## Japanese Translation: SpaceXAI は、コーディング、エージェンタスク、複雑な知識業務に特化して Cursor と共同開発された、現時点で最も高度なモデルである Grok 4.5 を発売しました。本モデルは、単一のプロンプトからエンドツーエンドのアプリケーションを構築する(太陽系など細部の模擬を含む)などの強力な能力を示していますが、主要なベンチマークでは 3 位にランクインしています:DeepSWE 1.0 で 62.0%、Terminal Bench 2.1 で 83.3%、SWE Bench Pro では解決率が 64.7% と、GPT-5.5 xhigh および Fable に及ばない結果となっています。本モデルは、数万台の NVIDIA GB300 GPU を使用し、高度なデータ選別技術と、トークンごとの知能に焦点を当てた強化学習戦略を採用することで、同等モデルと比較して約 4.2 倍のトークン効率を達成しています。 Grok 4.5 は、入出力トークンあたりそれぞれ 100 万トークンで 2 米ドルおよび 6 米ドルという高速サービスを提供しており、限定期間中の無料利用オファーも用意されています。現在、Excel リサーチや PowerPoint の図表作成を強化する目的で Grok Build、Cursor、SpaceXAI コンソールに統合されていますが、ヨーロッパ連合では 7 月中旬のローンチまでの間利用できません。

ドキュメントの山を、検索可能な実用的なナレッジベースに変える | そっか~ニュース