ai-due-diligence-copilot
AI Due Diligence Copilot
AI Due Diligence Copilot — это комплексная система анализа финансовых документов, которая обрабатывает корпоративные отчеты (10-K / 10-Q), извлекает структурированную финансовую информацию, находит подтверждающие доказательства и отвечает на вопросы аналитиков, используя наиболее надежный доступный источник.
В отличие от многих AI-приложений, полностью полагающихся на LLM, эта система интеллектуально направляет каждый вопрос либо:
к структурированным финансовым данным, хранящимся в PostgreSQL
к извлеченным доказательствам из документов через конвейер генерации с дополненной выборкой (RAG)
к комбинации обоих подходов
Для повышения достоверности сгенерированные ответы могут быть оценены с помощью классификатора обоснованности на основе PyTorch, который проверяет, подтверждаются ли утверждения извлеченными доказательствами.
Зачем этот проект?
Финансовым аналитикам часто нужны ответы, которые:
Фактически точны
Объяснимы
Прослеживаются до исходных документов
Традиционные ассистенты на основе LLM могут галлюцинировать цифры или предоставлять неподтвержденные утверждения.
Этот проект решает эту проблему следующим образом:
Использование SQL для количественных рассуждений
Использование RAG для качественного понимания документов
Использование оценки обоснованности для проверки поддержки доказательствами
Поддержка необязательного синтеза ответов на основе Claude, при этом система полностью функциональна без каких-либо платных API
Для более детального описания реализации и проектных решений см.:
ARCHITECTURE.mdRelated 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 ResponseClaude используется только для синтеза ответов.
Система не зависит от 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-copilot2. Создание виртуального окружения
Windows
python -m venv venv
.\venv\Scripts\Activate.ps1Linux / macOS
python -m venv venv
source venv/bin/activate3. Установка зависимостей
Установите PyTorch только для CPU:
pip install torch --index-url https://download.pytorch.org/whl/cpuУстановите требования проекта:
pip install -r requirements.txt4. Настройка PostgreSQL
Выполните:
psql -U postgres -f scripts/setup_postgres.sqlЭто создаст:
базу данных
diligence_copilotпользователя
diligence_appнеобходимые разрешения
5. Создание набора данных для обоснованности
python -m app.ml.build_dataset6. Обучение классификатора обоснованности
python -m app.ml.groundedness7. Запуск приложения
uvicorn app.main:app --reloadПриложение:
http://localhost:8000Документация API:
http://localhost:8000/docsDocker
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
Сравнение нескольких документов
Автоматическая генерация аналитических отчетов
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