clusterzx/paperless-ai
An automated document analyzer for Paperless-ngx using OpenAI API, Ollama, Deepseek-r1, Azure and all OpenAI API compatible Services to automatically analyze and tag your documents.
📄 Paperless‑AI – Paperless‑ngx 用の AI 拡張機能
何であるか – 自己ホスト型ドキュメントアーカイブ Paperless‑ngx に接続するオープンソースのアドオン。新しくアップロードされたファイルを監視し、テキストを LLM(OpenAI互換サービス、Ollama、Gemini など)に送信して自動的に:
- タイトルの生成とタグ/ドキュメントタイプの選択
- LLM から得たメタデータを Paperless‑ngx に保存
- ベクトルインデックスを構築し、アーカイブ全体に対して自然言語で質問できる(RAGチャット)
なぜ重要か – 手動ラベル付けなしで静的な PDF リポジトリを検索可能な知識ベースに変える。重い処理(埋め込み、分類、チャット)は、指定した互換 LLM が担当するため、オンプレミス(Ollama)でデータを保持したり、クラウド API を利用したりできます。
コア機能
| 機能 | 得られるもの |
|---|---|
| 自動処理 | 新規ドキュメントを検出、テキストを抽出、選択した LLM を呼び出し、タイトル、タグ、連絡先などを書き戻す。 |
| マルチモデル対応 | Ollama(Mistral、Llama、Phi‑3、Gemma‑2 …)、OpenAI、DeepSeek、OpenRouter、Perplexity、Together、LiteLLM、VLLM、FastChat、Gemini および任意の OpenAI 互換エンドポイントに対応。 |
| RAG ベースのチャット | ドキュメントから構築された意味的ベクトルストア;「私はいつ賃貸契約を署名しましたか?」 といった自然言語での質問に、出典付きの自然言語回答を得られる。 |
| 手動 UI | /manual ページで単一のドキュメントに対して AI を実行可能。機密性の高いファイルを保存前に確認したい場合に便利。 |
| スマートタグ付けとルール | 処理対象のドキュメントを制限するフィルタ、プロンプトのオン/オフ、LLM 出力をカスタムタグにマッピングする設定が可能。 |
| Docker 対応 | 公式イメージにはヘルスチェック、永続ボリューム、自動再起動機能付き。ワンクリックで簡単にデプロイ可能。 |
| Web インターフェース | Paperless‑ngx に統合されたレスポンシブ UI で、モデル設定、API キー、RAG チャットの閲覧が可能。 |
クイックスタート(Docker)
- コンテナの作成 –
clusterzx/paperless-aiをプルし、Paperless‑ngx で使用しているのと同じボリュームをマウントして、PDF を読み取れるようにする。 - 設定 – UI を開き、LLM の API キー(OpenAI、Ollama エンドポイントなど)を追加し、必要に応じてタグルールを設定する。
- 初回実行 – 設定を保存後、コンテナを再起動。既存のドキュメントをスキャンし、埋め込みを生成、RAG インデックスを構築する。
- 利用 – 新規ファイルは自動的に処理される。チャットページにアクセスして、アーカイブ全体にわたる自然言語クエリを実行する。
詳細手順は インストール Wiki を参照。
開発と貢献
- リポジトリをクローンし、
npm installしてからnpm run testを実行してローカル開発サーバーを起動。 - PR を歓迎。README に通常のフォーク・ブランチ・PR ワークフローが記載されている。
- コミュニティサポートは GitHub Issues と Discord サーバーで行っている。
ライセンスとサポート
- MIT ライセンス – 無料で使用・変更・再配布可能。
- 作者は貢献者を募集中。任意の寄付は Patreon/PayPal/Ko‑fi ページで受け付けている。
結論 – Paperless‑AI は自己ホスト型ドキュメントアーカイブに LLM による分類、タグ付け、意味的検索機能を追加し、Plain English で質問することで PDF から情報を取得できるようにしつつ、データはあなたの完全な制御下に保つことができる。
関連
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト
- プロジェクト