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

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    C
    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

View all related MCP servers

Related MCP Connectors

  • Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.

  • MCP server for nonprofit financials via ProPublica — IRS Form 990 data for 1.8M+ nonprofits.

  • Remote MCP server to enrich company profiles with structured B2B data and confidence scores.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jaskarn09/ai-due-diligence-copilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server