Skip to main content
Glama
jaskarn09

ai-due-diligence-copilot

by jaskarn09

AI Due Diligence Copilot

AI Due Diligence Copilot は、企業の提出書類(10-K / 10-Q)を取り込み、構造化された財務情報を抽出し、裏付けとなるエビデンスを取得し、利用可能な最も信頼性の高い情報源を用いてアナリストの質問に回答する、エンドツーエンドの財務文書分析システムです。

多くのAIアプリケーションが完全にLLMに依存しているのとは異なり、このシステムは各質問をインテリジェントに以下のいずれかにルーティングします:

  • PostgreSQLに保存された構造化財務データ

  • Retrieval-Augmented Generation(RAG)パイプラインを通じて取得された提出書類エビデンス

  • 両方の組み合わせ

信頼性を向上させるため、生成された回答は、主張が取得されたエビデンスによって裏付けられているかどうかをチェックする、PyTorchベースのグラウンディッドネス分類器を使用して評価できます。


このプロジェクトの目的

財務アナリストは、以下のような回答を頻繁に必要とします:

  • 事実的に正確

  • 説明可能

  • ソース文書にトレース可能

従来のLLMベースのアシスタントは、数値のハルシネーションを起こしたり、裏付けのない主張をしたりする可能性があります。

このプロジェクトは、以下の方法でこの問題に対処します:

  • 定量的推論にSQLを使用

  • 定性的な文書理解にRAGを使用

  • エビデンスの裏付けを評価するためのグラウンディッドネス評価を使用

  • 有料APIなしでも完全に機能しつつ、オプションのClaudeベースの回答合成をサポート

より詳細な実装内容と設計上の決定については、以下を参照してください:

ARCHITECTURE.md

Related MCP server: SEC-MCP

機能

文書取り込み

  • 財務提出書類(.txt、.pdf、.md)のアップロード

  • 自動文書クリーニングとチャンキング

  • 提出書類メタデータの追跡

  • 永続的なPostgreSQLストレージ

構造化財務メトリクス抽出

現在、以下を抽出して保存します:

  • 収益

  • 営業利益率

  • 純利益

  • 研究開発費

  • 現金及び現金同等物

これらのメトリクスはPostgreSQLに保存され、定量的分析のために直接クエリできます。

インテリジェントクエリルーティング

システムは、質問が以下のいずれかを通じて回答されるべきかを自動的に判断します:

  • 構造化SQL検索

  • 文書検索(RAG)

  • SQL + RAG

質問

ルート

営業利益率の変化はどうでしたか?

SQL

同社が直面するサプライヤーリスクは何ですか?

RAG

利益率はどのように変化し、その理由は?

SQL + RAG

MCPツール統合

Model Context Protocol(MCP)ツールを実装します:

  • 会社検索

  • 財務比率計算ツール

  • 文書検索

グラウンディッドネス評価

軽量なPyTorch分類器が、生成された主張が取得されたエビデンスによって裏付けられているかどうかを評価します。

出力には以下が含まれます:

  • グラウンディッドネススコア

  • 主張レベルのサポート分類

  • 信頼度インジケーター

評価ハーネス

以下を測定する組み込みの評価フレームワーク:

  • ルーティング精度

  • 検索関連性

  • グラウンディッドネス

  • レイテンシ

インタラクティブダッシュボード

以下のためのWebインターフェース:

  • 提出書類のアップロード

  • 質問応答

  • ルーティング決定の表示

  • ツール使用状況の表示

  • グラウンディッドネススコアの表示


システムアーキテクチャ

                    Financial Filing
                           │
                           ▼
                  Document Ingestion
                           │
                           ▼
                      Chunking
                           │
                           ▼
       Metric Extraction + Vectorization
                 (TF-IDF + SVD)
                 │              │
                 ▼              ▼
          PostgreSQL      Vector Store
                 ▲              ▲
                 │              │
User Query ───► Query Router ───┘
                 │
      ┌──────────┴──────────┐
      ▼                     ▼

 SQL Financial Route     RAG Retrieval

      ▼                     ▼

 Financial Metrics     Evidence Search

      └──────────┬──────────┘
                 ▼

         Answer Generation

                 ▼

      Groundedness Evaluation

                 ▼

          Final Response

回答生成モード

1. オフライン / ローカルモード(デフォルト)

APIキーは不要です。

システムは以下を使用して質問に回答します:

  • PostgreSQL財務データ

  • RAG検索

  • 抽出型回答生成

  • PyTorchグラウンディッドネス評価

このモードは開発およびテスト中に使用されました。


2. Claudeアシストモード(オプション)

Anthropic APIキーが提供されている場合:

ANTHROPIC_API_KEY=your_api_key_here

取得されたエビデンスをClaudeに渡して、自然言語での回答生成を行うことができます。

パイプライン:

User Query
    ↓
Retrieval / SQL
    ↓
Claude
    ↓
Groundedness Evaluation
    ↓
Final Response

Claudeは回答合成にのみ使用されます。

システムは以下についてはClaudeに依存しません:

  • 検索

  • クエリルーティング

  • 財務計算

  • グラウンディッドネススコアリング

APIキーがない場合、アプリケーションは自動的にローカルの抽出型パイプラインにフォールバックします。


技術スタック

バックエンド

技術

目的

FastAPI

APIフレームワーク

Uvicorn

ASGIサーバー

Pydantic

データ検証

データベース

技術

目的

PostgreSQL

プライマリデータベース

SQLAlchemy

ORM

機械学習

技術

目的

PyTorch

グラウンディッドネス分類器

Scikit-Learn

検索パイプライン

NumPy

数値演算

検索

コンポーネント

目的

TF-IDF

文書ベクトル化

Truncated SVD

密な意味表現

Cosine Similarity

検索ランキング

AIツール

コンポーネント

目的

MCPツール

構造化ツールアクセス

クエリルーター

ルート選択

グラウンディッドネス評価器

エビデンス検証


プロジェクト構造

diligence-copilot/
│
├── app/
│   ├── db/
│   ├── ingestion/
│   ├── ml/
│   ├── rag/
│   ├── mcp_tools/
│   └── main.py
│
├── data/
│
├── scripts/
│   └── setup_postgres.sql
│
├── tests/
│
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── ARCHITECTURE.md
└── README.md

インストール

前提条件

  • Python 3.11+

  • PostgreSQL 16+(PostgreSQL 17.11でテスト済み)

  • Git


1. リポジトリのクローン

git clone <repository-url>
cd diligence-copilot

2. 仮想環境の作成

Windows

python -m venv venv
.\venv\Scripts\Activate.ps1

Linux / macOS

python -m venv venv
source venv/bin/activate

3. 依存関係のインストール

CPU専用のPyTorchをインストール:

pip install torch --index-url https://download.pytorch.org/whl/cpu

プロジェクトの要件をインストール:

pip install -r requirements.txt

4. PostgreSQLの設定

実行:

psql -U postgres -f scripts/setup_postgres.sql

これにより以下が作成されます:

  • diligence_copilot データベース

  • diligence_app ユーザー

  • 必要な権限


5. グラウンディッドネスデータセットの構築

python -m app.ml.build_dataset

6. グラウンディッドネス分類器のトレーニング

python -m app.ml.groundedness

7. アプリケーションの起動

uvicorn app.main:app --reload

アプリケーション:

http://localhost:8000

APIドキュメント:

http://localhost:8000/docs

Docker

docker-compose up --build

検証ウォークスルー

テスト提出書類の作成

Total revenue for fiscal year 2024 was $500 million.

Operating margin for fiscal year 2024 was 12.5%, compared to 10.1% in fiscal year 2023.

The company faces significant risk from a single supplier located in Vietnam.

提出書類のアップロード

以下を使用:

  • ティッカー:TEST

  • 会社名:Test Company

  • 会計期間:FY2024

出力例:

Done: 1 chunks, 3 financial metrics extracted.

財務推論のテスト

質問:

What was the change in operating margin?

出力例:

operating_margin moved from 10.1 (FY2023)
to 12.5 (FY2024), a change of 23.76%.

ルート:

SQL

ツール:

financial_ratio_calculator

検索のテスト

質問:

What supplier risks does the company face?

出力例:

The company faces significant risk from a single supplier located in Vietnam.

注:単一のチャンクに収まる非常に小さな提出書類の場合、検索は単一の文ではなくチャンク全体を返すことがあります。

ルート:

RAG

評価の実行

python -m app.eval.run_eval

結果

以下についてエンドツーエンドで検証済み:

  • 文書取り込み

  • 財務メトリクス抽出

  • PostgreSQL永続化

  • クエリルーティング

  • SQLベースの財務推論

  • 検索ベースのリスク分析

  • グラウンディッドネス評価

  • FastAPIデプロイ

サンプル評価結果

メトリクス

値

ルート精度

1.00

平均検索関連性

0.67

平均レイテンシ

~30ms

グラウンディッドネス分類器

メトリクス

値

精度

0.70 – 0.90

再現率

0.75 – 1.00

結果は、評価データセットが意図的に小さいため、わずかに変動します。


制限事項

  • 38件のラベル付きサンプルでトレーニングされたグラウンディッドネス分類器

  • 財務メトリクス抽出は現在ルールベースのパターンを使用

  • 検索はトランスフォーマー埋め込みの代わりにTF-IDF + SVDを使用

  • ベクターインデックスはインメモリであり、デモ規模のワークロード向けに最適化

  • Claude統合はオプションであり、コア機能には不要


今後の改善点

  • トランスフォーマーベースの埋め込み

  • ハイブリッド検索(キーワード + ベクター)

  • より大規模なグラウンディッドネスデータセット

  • LLMベースの抽出フォールバック

  • マルチステップエージェントワークフロー

  • pgvector統合

  • 複数文書の比較

  • アナリストレポートの自動生成

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for SEC EDGAR that provides real-time access to filings, financial statements, and full-text search across all EDGAR documents.
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for analyzing SEC filings (10-K, 10-Q, 8-K) with industry-aware financial extraction and BERT-based NLP.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides deterministic finance tools for SEC filing analysis, enabling LLMs to compute financial ratios, fetch filings, and perform equity research without hallucinated numbers.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that wraps SEC EDGAR APIs to provide company financial data, screening metrics, and disclosure signals for investment diligence, with every figure traced to its source filing.
    8
    MIT