eikek/docspell

Assist in organizing your piles of documents, resulting from scanners, e-mails and other sources with miminal effort.

Docspell – パーソナルドキュメント管理システム

何であるか

  • 家族や小規模チーム向けのオープンソースDMS。スキャンした紙、電子メール、その他のデジタルドキュメントを保存・整理・検索するのに役立ちます。

なぜ重要か

  • パーソナルDMSの最大の課題は、有用なメタデータ(誰から来たか、日付、タグなど)を手動で追加することです。DocspellはStanford CoreNLPを使用して、送信者、日付の抽出、タグの推測、全文検索を自動的に提案することで、その手作業を軽減します。言い換えれば、家庭やオフィスのワークフローに軽量な自然言語処理をもたらします。

主な機能

  • 自動メタデータ抽出 – NLP駆動のタグ、日付、送信者に関する提案。
  • OCRパイプラインtesseractocrmypdfunoconv を統合し、スキャン画像を検索可能なPDFに変換。
  • 全文検索 – 抽出されたテキストで駆動。
  • REST/HTTP API – すべての機能がプログラムからアクセス可能。
  • Web UI – ElmとTailwind CSSで構築されたモバイル対応のシングルページアプリ。
  • Androidクライアント – スマートフォンやタブレットから迅速にアップロード。
  • CLIツール(dsc – パワーユーザー向けのコマンドラインアクセス。
  • Docker、Debianパッケージ、Nix、Helm – 複数の簡単インストールオプション。

動作方法(概要)

  1. インジェスト – Web UI、Androidアプリ、CLI、またはAPI経由でファイル(スキャン、PDF、メール添付)をシステムに投入。
  2. 処理 – 必要に応じてOCRを実行し、テキストをStanford CoreNLPに渡す。
  3. メタデータ推論 – NLPステップでエンティティ(人物、組織、日付)を抽出し、タグを提案。
  4. 保存とインデックス – ドキュメントとそのメタデータはPostgreSQLデータベースに保存され、全文インデックスにより高速検索を可能に。
  5. 検索 – タグや送信者でフィルタリング、または自由テキストで検索可能。

技術スタック

  • バックエンド – Scala(関数型スタイル)でTypelevelエコシステム(Cats、FS2、Doobie、Http4s、Circe、Pureconfig)を使用。ML/NLPは外部のStanford-NLPライブラリに委ねる。OCRは tesseractocrmypdfunoconv に依存。
  • フロントエンド – Elm SPA、Tailwind CSSでスタイリング。
  • デプロイ – Dockerイメージ(RESTサーバ、UI、ワーカー)、Debian .deb、Nixパッケージ、Kubernetes用Helmチャート。

導入方法

# Dockerによる素早い開始(3コマンド)
git clone https://github.com/docspell/docker docspell-docker
 cd docspell-docker/docker-compose
docker-compose up -d

その後、http://localhost:7880 を開き、コレクティブ/ユーザーを作成(最初の実行では同じ名前で可)して、ドキュメントのアップロードを開始してください。

ライセンス

  • AGPL-v3(またはそれ以降)なので、サービスとして提供されてもソフトウェアは自由でソース公開が維持されます。

誰が使うべきか

  • 請求書、契約書、手紙などを検索可能なアーカイブとして保持したい家庭ユーザー。
  • 低コストで自己ホスト可能なDMSを必要とする小規模オフィスやNGO。
  • ScalaベースのNLP/MLをプロダクションサービスに統合する例を探している開発者。

上記のすべての情報はプロジェクトのREADMEから直接引用されています。

関連

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