Интеллектуальная система анализа качества программного кода с использованием больших языковых моделей (LLM).
Проект предназначен для анализа программного проекта на уровне всего репозитория, а не отдельных файлов. Система строит структуру проекта, определяет зависимости между файлами, формирует контекст для языковой модели и выполняет анализ с учетом архитектуры приложения. При недоступности LLM автоматически используется резервный механизм анализа, что обеспечивает непрерывную работу системы.
Проект разработан в рамках магистерской выпускной квалификационной работы по образовательной программе «Программирование и интернет-технологии» Университета ИТМО.
- анализ программного проекта на уровне всего репозитория;
- построение структуры проекта и графа зависимостей;
- формирование контекста для анализа кода;
- анализ изменений Git;
- распределённая обработка проекта несколькими агентами;
- резервный анализ при недоступности языковой модели;
- хранение результатов проверки в PostgreSQL;
- генерация отчётов в форматах HTML, JSON, TXT и SARIF.
- C++
- Python
- PostgreSQL
- Git
- Docker
- Clang AST
- GitHub Actions
- HTML
- JSON
- TXT
- SARIF
- Анализируется структура проекта.
- Строится граф зависимостей между файлами.
- Формируется контекст для анализа.
- Запускается распределённый анализ программного кода.
- При необходимости используется резервный анализ без LLM.
- Результаты сохраняются в базе данных.
- Формируется итоговый отчёт.
LLM/ Основной модуль анализа
python/ Оркестрация и работа с языковой моделью
database/ Схема базы данных PostgreSQL
tests/ Модульные тесты
.github/ GitHub Actions
---
В отличие от традиционных статических анализаторов система:
- анализирует весь проект, а не отдельные файлы;
- учитывает взаимосвязи между модулями;
- использует историю изменений Git;
- поддерживает распределённую обработку;
- продолжает работу даже при недоступности языковой модели.
- поддержка дополнительных языков программирования;
- интеграция с CI/CD;
- автоматическая проверка Pull Request;
- разработка плагина для IDE;
- поддержка дополнительных LLM.



