Об этом проекте

Этот проект представляет собой интеллектуального агента финансового анализа. Его ключевая идея — позволить большой языковой модели (DeepSeek) через вызов инструментов (Function Calling) самостоятельно определять шаги анализа и в итоге выдавать структурированный отчёт финансового анализа с обоснованием. С точки зрения архитектуры основной цикл находится в app/agent/loop.py: системный промпт вместе с набором инструментов отправляется в интерфейс chat(tools) DeepSeek; после того как модель возвращает tool_calls, dispatch выполняет соответствующий инструмент, результат возвращается обратно в виде сообщения tool, и итерации продолжаются до получения ответа. Набор инструментов включает четыре типа возможностей: - query_db(sql): выполнение read-only SQL-запросов к финансовой базе SQLite; разрешены только SELECT / WITH / PRAGMA, запись запрещена. - calc_financial_model(model, ...): расчёт финансовых показателей, включая валовую маржу, чистую маржу, коэффициент текущей ликвидности, коэффициент быстрой ликвидности, коэффициент отношения обязательств к активам, ROE, ROA, оборачиваемость, WACC, DCF, IRR, ожидаемые кредитные убытки и другие; реализация на чистом Python, формулы стандартные и допускают модульное тестирование. - rag_search(q): лёгкий поиск на основе TF-IDF, охватывающий стандарты бухгалтерского учёта, аудит, оценку, а также знания по машинному обучению/NLP; корпус хранится в app/knowledge/corpus.json и не зависит от векторной базы данных. - run_python(code): запуск скриптов финансовых расчётов в виде подпроцесса с тайм-аутом и усечением вывода. Сервисный слой использует FastAPI и предоставляет интерфейсы GET / (веб-интерфейс), POST /api/agent/analyze, GET /api/rag/search, GET /tools, GET /health и другие. web/index.html предоставляет браузерный интерфейс: после ввода вопроса отображаются аналитический отчёт и процесс вызова tool_trace. Проект также включает Dockerfile, рабочий процесс GitHub Actions CI и тесты pytest. Быстрый старт: установить зависимости из requirements-dev.txt, скопировать .env.example в .env и указать DeepSeek API Key, запустить скрипт для генерации примера финансовой базы, затем запустить сервис через uvicorn. README содержит примеры curl для проверки работоспособности, списка инструментов, RAG-поиска и запроса финансового анализа. В части инженерных стандартов подчёркиваются: обязательный режим только для чтения при запросах к базе данных, изоляция выполнения кода в подпроцессе и тайм-аут, структурированное журналирование tool_trace с фиксацией имени, параметров, результата и времени каждого вызова инструмента, а также контейнеризованное развёртывание и автоматическое тестирование в CI. Проект позиционируется как практический проект в области финансовой информатизации и AI Agent, ориентированный на демонстрацию при трудоустройстве.