Skip to main content
Glama
jaskarn09

ai-due-diligence-copilot

by jaskarn09

AI Due Diligence Copilot

AI Due Diligence Copilot ist ein End-to-End-System zur Analyse von Finanzdokumenten, das Unternehmenseinreichungen (10-K / 10-Q) aufnimmt, strukturierte Finanzinformationen extrahiert, unterstützende Belege abruft und Analystenfragen mithilfe der zuverlässigsten verfügbaren Quelle beantwortet.

Im Gegensatz zu vielen KI-Anwendungen, die sich vollständig auf ein LLM verlassen, leitet dieses System jede Frage intelligent an eine der folgenden Stellen weiter:

  • Strukturierte Finanzdaten in PostgreSQL

  • Abgerufene Einreichungsbelege über eine Retrieval-Augmented-Generation-Pipeline (RAG)

  • Eine Kombination aus beidem

Um die Vertrauenswürdigkeit zu verbessern, können generierte Antworten mithilfe eines auf PyTorch basierenden Groundedness-Klassifikators bewertet werden, der prüft, ob Behauptungen durch abgerufene Belege gestützt werden.


Warum dieses Projekt?

Finanzanalysten benötigen häufig Antworten, die:

  • Faktisch korrekt sind

  • Erklärbar sind

  • Auf Quelldokumente zurückführbar sind

Traditionelle LLM-basierte Assistenten können Zahlen halluzinieren oder unbelegte Behauptungen aufstellen.

Dieses Projekt adressiert dieses Problem, indem es:

  • SQL für quantitative Schlussfolgerungen verwendet

  • RAG für qualitatives Dokumentverständnis verwendet

  • Groundedness-Bewertung zur Beurteilung der Belegunterstützung einsetzt

  • Optionale Claude-basierte Antwortgenerierung unterstützt, dabei aber ohne kostenpflichtige API voll funktionsfähig bleibt

Für tiefere Implementierungsdetails und Designentscheidungen siehe:

ARCHITECTURE.md

Related MCP server: SEC-MCP

Funktionen

Dokumentaufnahme

  • Hochladen von Finanzeinreichungen (.txt, .pdf, .md)

  • Automatische Dokumentbereinigung und -aufteilung in Chunks

  • Verfolgung von Einreichungsmetadaten

  • Persistente PostgreSQL-Speicherung

Strukturierte Extraktion von Finanzkennzahlen

Extrahiert und speichert derzeit:

  • Umsatz

  • Betriebsmarge

  • Nettogewinn

  • F&E-Aufwendungen

  • Zahlungsmittel und Zahlungsmitteläquivalente

Diese Kennzahlen werden in PostgreSQL gespeichert und können direkt für quantitative Analysen abgefragt werden.

Intelligentes Query-Routing

Das System bestimmt automatisch, ob eine Frage über Folgendes beantwortet werden soll:

  • Strukturierten SQL-Abruf

  • Dokumentabruf (RAG)

  • SQL + RAG

Beispiele:

Frage

Route

Wie hat sich die Betriebsmarge verändert?

SQL

Welchen Lieferantenrisiken ist das Unternehmen ausgesetzt?

RAG

Wie haben sich die Margen verändert und warum?

SQL + RAG

MCP-Tool-Integration

Implementiert Model-Context-Protocol-Tools (MCP):

  • Unternehmenssuche

  • Finanzkennzahlen-Rechner

  • Dokumentsuche

Groundedness-Bewertung

Ein leichtgewichtiger PyTorch-Klassifikator bewertet, ob generierte Behauptungen durch abgerufene Belege gestützt werden.

Die Ausgaben umfassen:

  • Groundedness-Werte

  • Behauptungsbezogene Unterstützungsklassifikation

  • Konfidenzindikatoren

Evaluations-Harness

Integriertes Bewertungsframework, das Folgendes misst:

  • Routing-Genauigkeit

  • Abrufrelevanz

  • Groundedness

  • Latenz

Interaktives Dashboard

Weboberfläche für:

  • Einreichungs-Uploads

  • Fragenbeantwortung

  • Anzeige von Routing-Entscheidungen

  • Anzeige der Tool-Nutzung

  • Anzeige von Groundedness-Werten


Systemarchitektur

                    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

Antwortgenerierungsmodi

1. Offline-/Lokaler Modus (Standard)

Keine API-Schlüssel erforderlich.

Das System beantwortet Fragen mithilfe von:

  • PostgreSQL-Finanzdaten

  • RAG-Abruf

  • Extraktiver Antwortgenerierung

  • PyTorch-Groundedness-Bewertung

Dieser Modus wurde während der Entwicklung und des Testens verwendet.


2. Claude-unterstützter Modus (Optional)

Wenn ein Anthropic-API-Schlüssel bereitgestellt wird:

ANTHROPIC_API_KEY=your_api_key_here

können abgerufene Belege an Claude zur Generierung von Antworten in natürlicher Sprache übergeben werden.

Pipeline:

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

Claude wird nur für die Antwortsynthese verwendet.

Das System ist nicht auf Claude angewiesen für:

  • Abruf

  • Query-Routing

  • Finanzberechnungen

  • Groundedness-Bewertung

Wenn kein API-Schlüssel vorhanden ist, fällt die Anwendung automatisch auf die lokale extraktive Pipeline zurück.


Technologie-Stack

Backend

Technologie

Zweck

FastAPI

API-Framework

Uvicorn

ASGI-Server

Pydantic

Datenvalidierung

Datenbank

Technologie

Zweck

PostgreSQL

Primäre Datenbank

SQLAlchemy

ORM

Maschinelles Lernen

Technologie

Zweck

PyTorch

Groundedness-Klassifikator

Scikit-Learn

Abruf-Pipeline

NumPy

Numerische Operationen

Abruf

Komponente

Zweck

TF-IDF

Dokumentvektorisierung

Truncated SVD

Dichte semantische Repräsentation

Kosinus-Ähnlichkeit

Abruf-Ranking

KI-Tooling

Komponente

Zweck

MCP-Tools

Strukturierter Tool-Zugriff

Query-Router

Routenauswahl

Groundedness-Evaluator

Belegvalidierung


Projektstruktur

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

Installation

Voraussetzungen

  • Python 3.11+

  • PostgreSQL 16+ (getestet mit PostgreSQL 17.11)

  • Git


1. Repository klonen

git clone <repository-url>
cd diligence-copilot

2. Virtuelle Umgebung erstellen

Windows

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

Linux / macOS

python -m venv venv
source venv/bin/activate

3. Abhängigkeiten installieren

CPU-only PyTorch installieren:

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

Projektanforderungen installieren:

pip install -r requirements.txt

4. PostgreSQL konfigurieren

Ausführen:

psql -U postgres -f scripts/setup_postgres.sql

Dies erstellt:

  • Die Datenbank diligence_copilot

  • Den Benutzer diligence_app

  • Erforderliche Berechtigungen


5. Groundedness-Datensatz erstellen

python -m app.ml.build_dataset

6. Groundedness-Klassifikator trainieren

python -m app.ml.groundedness

7. Anwendung starten

uvicorn app.main:app --reload

Anwendung:

http://localhost:8000

API-Dokumentation:

http://localhost:8000/docs

Docker

docker-compose up --build

Verifizierungs-Walkthrough

Testeinreichung erstellen

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.

Einreichung hochladen

Verwenden:

  • Ticker: TEST

  • Unternehmen: Test Company

  • Geschäftsjahr: FY2024

Beispielausgabe:

Done: 1 chunks, 3 financial metrics extracted.

Finanzlogik testen

Frage:

What was the change in operating margin?

Beispielausgabe:

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

Route:

SQL

Tool:

financial_ratio_calculator

Abruf testen

Frage:

What supplier risks does the company face?

Beispielausgabe:

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

Hinweis: Bei sehr kleinen Einreichungen, die in einen einzelnen Chunk passen, kann der Abruf den gesamten Chunk zurückgeben, anstatt eines einzelnen Satzes.

Route:

RAG

Evaluation ausführen

python -m app.eval.run_eval

Ergebnisse

End-to-End validiert für:

  • Dokumentaufnahme

  • Extraktion von Finanzkennzahlen

  • PostgreSQL-Persistenz

  • Query-Routing

  • SQL-basierte Finanzlogik

  • Abrufbasierte Risikoanalyse

  • Groundedness-Bewertung

  • FastAPI-Bereitstellung

Beispielhafte Evaluationsergebnisse

Metrik

Wert

Routen-Genauigkeit

1.00

Durchschnittliche Abrufrelevanz

0.67

Durchschnittliche Latenz

~30ms

Groundedness-Klassifikator

Metrik

Wert

Genauigkeit

0.70 – 0.90

Recall

0.75 – 1.00

Die Ergebnisse variieren leicht, da der Evaluationsdatensatz absichtlich klein gehalten ist.


Einschränkungen

  • Groundedness-Klassifikator trainiert mit 38 beschrifteten Beispielen

  • Die Extraktion von Finanzkennzahlen verwendet derzeit regelbasierte Muster

  • Der Abruf verwendet TF-IDF + SVD anstelle von Transformer-Embeddings

  • Der Vektorindex ist im Speicher und für Demonstrationsumfänge optimiert

  • Die Claude-Integration ist optional und für die Kernfunktionalität nicht erforderlich


Zukünftige Verbesserungen

  • Transformer-basierte Embeddings

  • Hybride Suche (Schlüsselwort + Vektor)

  • Größere Groundedness-Datensätze

  • LLM-basierte Extraktions-Fallback-Lösung

  • Mehrstufige Agenten-Workflows

  • pgvector-Integration

  • Multi-Dokumenten-Vergleich

  • Automatisierte Erstellung von Analystenberichten

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