Oqura-ai/deepdoc

Deep research tool for local knowledge base.

deepdoc – ローカルで実行される深層リサーチレポート生成ツール

機能概要

  • ローカルのドキュメントフォルダ(PDF、DOCX、PPTX、画像、TXT、Markdown)を入力として受け取り、Qdrantで検索可能なベクトルインデックスを作成します。
  • レポートのトピックとアウトラインを指定できます。プランナー用のLLMがセクション構造を作成し、編集可能です。
  • 各セクションに対して リサーチエージェント が以下の手順を実行します:
    1. 集中的なクエリを生成します。
    2. Qdrantから候補となるチャンクを取得します。
    3. TypeSafeのJevモデルを使用して、関連性、証拠の質、矛盾、およびプロンプトインジェクションの可能性をスコアリングします。
    4. チャンクをフィルタリング・再ランクし、各サブセクションに十分な証拠があるか確認。不足している場合は、設定可能なリフレクション制限まで新しいクエリを発行します。
    5. 検証済みの証拠をライティングLLMに渡し、そのセクションの最終的なMarkdownを生成します。
  • すべてのセクションが統合され、output_folderに1つのMarkdownレポートとして保存されます。

主なコンポーネント

  • Qdrant – 高速な類似性検索を実現するローカルのベクトルデータベース。
  • Jev (TypeSafe) – タイプ付き確率を返す分類器。高品質な証拠のみがライターに届くようにするゲートキーパーとして機能します。
  • LLM – デフォルトはOpenAI gpt-4o-miniですが、設定で交換可能(例:Mistral、Anthropic)。
  • Python 3.10+ – パイプラインをオーケストレーション。設定はconfiguration.pyに保存されます。
  • uv – 軽量な仮想環境および依存関係管理ツール。

なぜ重要なのか

  • すべてのデータをローカルに保持するため、機密文書が自分のマシンから外に出ることはありません。
  • ベクトル検索の結果にJevによる検証レイヤーを追加することで、幻覚を低減し、引用の質を向上させます。
  • 完全にカスタマイズ可能:取得サイズ、並列処理数、Jevの閾値、再試行制限などを、ハードウェアやAPIクォータに合わせて調整できます。

一般的なワークフロー

  1. uvをインストールし、リポジトリをクローンして仮想環境を作成・有効化します。
  2. .env.example → .envにコピーし、OpenAIおよびTypeSafeのAPIキーを追加します。
  3. DockerでQdrantを起動(docker-compose up --build)。
  4. python main.pyを実行し、CLIのプロンプト(トピック、アウトライン、ドキュメントフォルダ)に回答します。
  5. 生成されたアウトラインを確認し、承認または編集後、エージェントにリサーチと執筆を依頼します。
  6. output_folderから完成したMarkdownレポートを取得します。

誰に向けているか

  • プライベートなドキュメントコレクションの迅速かつ構造化された要約が必要な研究者やアナリスト。
  • 引用を意識した生成を必要とする社内知識ベースの構築チーム。
  • リトリーバー増強生成(RAG)パイプラインを実験中で、追加の証拠フィルタリングステップが必要な人。

ライセンス

  • MIT License(LICENSEを参照)。

貢献について

  • 問題報告やプルリクエストを歓迎します。リポジトリ内のCONTRIBUTINGガイドラインをご覧ください。

関連

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