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

  • к извлеченным доказательствам из документов через конвейер генерации с дополненной выборкой (RAG)

  • к комбинации обоих подходов

Для повышения достоверности сгенерированные ответы могут быть оценены с помощью классификатора обоснованности на основе PyTorch, который проверяет, подтверждаются ли утверждения извлеченными доказательствами.


Зачем этот проект?

Финансовым аналитикам часто нужны ответы, которые:

  • Фактически точны

  • Объяснимы

  • Прослеживаются до исходных документов

Традиционные ассистенты на основе LLM могут галлюцинировать цифры или предоставлять неподтвержденные утверждения.

Этот проект решает эту проблему следующим образом:

  • Использование SQL для количественных рассуждений

  • Использование RAG для качественного понимания документов

  • Использование оценки обоснованности для проверки поддержки доказательствами

  • Поддержка необязательного синтеза ответов на основе Claude, при этом система полностью функциональна без каких-либо платных API

Для более детального описания реализации и проектных решений см.:

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 оценивает, подтверждаются ли сгенерированные утверждения извлеченными доказательствами.

Выходные данные включают:

  • Оценки обоснованности

  • Классификацию поддержки на уровне утверждений

  • Индикаторы уверенности

Тестовый стенд для оценки

Встроенная система оценки, измеряющая:

  • Точность маршрутизации

  • Релевантность поиска

  • Обоснованность

  • Задержку

Интерактивная панель управления

Веб-интерфейс для:

  • Загрузки отчетов

  • Ответов на вопросы

  • Просмотра решений о маршрутизации

  • Просмотра использования инструментов

  • Просмотра оценок обоснованности


Архитектура системы

                    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 (необязательно)

Если предоставлен ключ API Anthropic:

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 Tools

Структурированный доступ к инструментам

Query Router

Выбор маршрута

Groundedness Evaluator

Проверка доказательств


Структура проекта

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. Установка зависимостей

Установите PyTorch только для CPU:

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