ai-due-diligence-copilot
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.mdRelated 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 ResponseAntwortgenerierungsmodi
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_herekönnen abgerufene Belege an Claude zur Generierung von Antworten in natürlicher Sprache übergeben werden.
Pipeline:
User Query
↓
Retrieval / SQL
↓
Claude
↓
Groundedness Evaluation
↓
Final ResponseClaude 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.mdInstallation
Voraussetzungen
Python 3.11+
PostgreSQL 16+ (getestet mit PostgreSQL 17.11)
Git
1. Repository klonen
git clone <repository-url>
cd diligence-copilot2. Virtuelle Umgebung erstellen
Windows
python -m venv venv
.\venv\Scripts\Activate.ps1Linux / macOS
python -m venv venv
source venv/bin/activate3. Abhängigkeiten installieren
CPU-only PyTorch installieren:
pip install torch --index-url https://download.pytorch.org/whl/cpuProjektanforderungen installieren:
pip install -r requirements.txt4. PostgreSQL konfigurieren
Ausführen:
psql -U postgres -f scripts/setup_postgres.sqlDies erstellt:
Die Datenbank
diligence_copilotDen Benutzer
diligence_appErforderliche Berechtigungen
5. Groundedness-Datensatz erstellen
python -m app.ml.build_dataset6. Groundedness-Klassifikator trainieren
python -m app.ml.groundedness7. Anwendung starten
uvicorn app.main:app --reloadAnwendung:
http://localhost:8000API-Dokumentation:
http://localhost:8000/docsDocker
docker-compose up --buildVerifizierungs-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:
SQLTool:
financial_ratio_calculatorAbruf 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:
RAGEvaluation ausführen
python -m app.eval.run_evalErgebnisse
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
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceMCP server for SEC EDGAR that provides real-time access to filings, financial statements, and full-text search across all EDGAR documents.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceMCP server for analyzing SEC filings (10-K, 10-Q, 8-K) with industry-aware financial extraction and BERT-based NLP.1MIT
- AlicenseNot gradedqualityCmaintenanceAn 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
- AlicenseAqualityBmaintenanceAn 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.8MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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