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パイプライン – tesseract、ocrmypdf、unoconv を統合し、スキャン画像を検索可能なPDFに変換。
- 全文検索 – 抽出されたテキストで駆動。
- REST/HTTP API – すべての機能がプログラムからアクセス可能。
- Web UI – ElmとTailwind CSSで構築されたモバイル対応のシングルページアプリ。
- Androidクライアント – スマートフォンやタブレットから迅速にアップロード。
- CLIツール(
dsc) – パワーユーザー向けのコマンドラインアクセス。 - Docker、Debianパッケージ、Nix、Helm – 複数の簡単インストールオプション。
動作方法(概要)
- インジェスト – Web UI、Androidアプリ、CLI、またはAPI経由でファイル(スキャン、PDF、メール添付)をシステムに投入。
- 処理 – 必要に応じてOCRを実行し、テキストをStanford CoreNLPに渡す。
- メタデータ推論 – NLPステップでエンティティ(人物、組織、日付)を抽出し、タグを提案。
- 保存とインデックス – ドキュメントとそのメタデータはPostgreSQLデータベースに保存され、全文インデックスにより高速検索を可能に。
- 検索 – タグや送信者でフィルタリング、または自由テキストで検索可能。
技術スタック
- バックエンド – Scala(関数型スタイル)でTypelevelエコシステム(Cats、FS2、Doobie、Http4s、Circe、Pureconfig)を使用。ML/NLPは外部のStanford-NLPライブラリに委ねる。OCRは tesseract、ocrmypdf、unoconv に依存。
- フロントエンド – 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
- プロジェクト