Skip to content

kate1234567/LLM-Code-Analysis-Agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLM-агент для анализа программного кода

Интеллектуальная система анализа качества программного кода с использованием больших языковых моделей (LLM).

Проект предназначен для анализа программного проекта на уровне всего репозитория, а не отдельных файлов. Система строит структуру проекта, определяет зависимости между файлами, формирует контекст для языковой модели и выполняет анализ с учетом архитектуры приложения. При недоступности LLM автоматически используется резервный механизм анализа, что обеспечивает непрерывную работу системы.

Проект разработан в рамках магистерской выпускной квалификационной работы по образовательной программе «Программирование и интернет-технологии» Университета ИТМО.


Возможности

  • анализ программного проекта на уровне всего репозитория;
  • построение структуры проекта и графа зависимостей;
  • формирование контекста для анализа кода;
  • анализ изменений Git;
  • распределённая обработка проекта несколькими агентами;
  • резервный анализ при недоступности языковой модели;
  • хранение результатов проверки в PostgreSQL;
  • генерация отчётов в форматах HTML, JSON, TXT и SARIF.

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


Используемые технологии

Языки программирования

  • C++
  • Python

База данных

  • PostgreSQL

Инструменты

  • Git
  • Docker
  • Clang AST
  • GitHub Actions

Форматы отчётов

  • HTML
  • JSON
  • TXT
  • SARIF

Как работает система

  1. Анализируется структура проекта.
  2. Строится граф зависимостей между файлами.
  3. Формируется контекст для анализа.
  4. Запускается распределённый анализ программного кода.
  5. При необходимости используется резервный анализ без LLM.
  6. Результаты сохраняются в базе данных.
  7. Формируется итоговый отчёт.


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

LLM/                Основной модуль анализа
python/             Оркестрация и работа с языковой моделью
database/           Схема базы данных PostgreSQL
tests/              Модульные тесты
.github/            GitHub Actions

База данных


Пример работы системы

---

Особенности проекта

В отличие от традиционных статических анализаторов система:

  • анализирует весь проект, а не отдельные файлы;
  • учитывает взаимосвязи между модулями;
  • использует историю изменений Git;
  • поддерживает распределённую обработку;
  • продолжает работу даже при недоступности языковой модели.

Возможные направления развития

  • поддержка дополнительных языков программирования;
  • интеграция с CI/CD;
  • автоматическая проверка Pull Request;
  • разработка плагина для IDE;
  • поддержка дополнительных LLM.

About

LLM-агент для анализа программного кода с учётом структуры проекта, Git-изменений и межфайловых зависимостей.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages