Проект выполнен как полнофункциональный AI-помощник для анализа данных на естественном языке.
Система предназначена для пользователей, которым нужно анализировать данные без ручного написания SQL-запросов и Python-кода. Пользователь загружает CSV-файлы, задаёт вопрос в чате, а агент сам определяет нужные действия: обращается к базе данных, выполняет read-only SQL-запросы, строит визуализации и формирует итоговый ответ.
В основе проекта — агент на LangGraph с инструментами для SQL-аналитики и генерации Python-кода. Реализована динамическая схема БД: агент видит новые CSV-файлы без перезапуска сервиса. Чтобы не перегружать контекст LLM, результаты SQL сохраняются в CSV, а модель получает только путь к файлу и превью первых строк.
Добавлена суммаризация длинных диалогов для сохранения контекста при превышении лимита сообщений. Также реализованы cookie-based аутентификация, изоляция данных между пользователями и Docker-песочница для безопасного выполнения Python-кода.
Проект развёрнут через Docker Compose: PostgreSQL, FastAPI backend, nginx + React frontend и отдельный Python sandbox.
Результат: готовый full-stack прототип AI-аналитика, который позволяет работать с данными через обычный чат.
Технологии: Python, FastAPI, LangGraph, LangChain, PostgreSQL, SQLAlchemy, React, Docker, nginx.
https://github.com/ChernyackovEugeny/LLM_Data_Analyst_Agent