Интеллектуальный помощник разработчика «Василиса»
- Заказчик:
- Ростелеком
- Руководитель проекта со стороны заказчика
- Поставщик
- Ростелеком Информационные Технологии
- Год завершения проекта
- 2024
- Сроки выполнения проекта
- сентябрь, 2023 — октябрь, 2024
- Масштаб проекта
- 2000 автоматизированных рабочих мест
- Цели
Разработка инструмента на основе ИИ для решения различных прикладных задач, позволяющих обеспечить:
-
Использование ИИ на всем цикле разработки программного обеспечения для повышения производительности, эффективности и обеспечения интеллектуальной автоматизации;
-
Ускорение процесса разработки, автоматизация рутинных, повторяющихся задач, снижение вероятности человеческой ошибки;
-
Повышение качества принимаемых разработчиками решений, определяемых автоматическими системами проверки кода и с привлечением экспертов, ускорение вывода продуктов на рынок.
-
- Результаты
Разработано тиражируемое решение в виде конвейера моделей на основе пула LLM и промпт-агентов.
В решении реализовано API для следующих сервисов:
-
Генерация ответов на вопросы разработчика (ассистент-разработчика);
-
Генерация кода;
-
Генерация unit-тестов;
-
Генерация CI/CD скриптов;
-
Генерация результата анализа дефектов/багов и рекомендаций для устранения дефектов/багов (код-ревью);
-
Генерация описания алгоритмов по коду;
-
Генерация суммаризации кода и описания архитектуры по коду, построения диаграммы классов и диаграммы по суммаризации.
API Системы имеет подробную документацию, описывающую все доступные методы, параметры и возвращаемые значения. Система поддерживает возможность увеличения нагрузки без значительного снижения производительности.
-
Разработаны расширения с средам разработки VSCode и Jetbrains Idea для упрощения доступа разработчиков к интеллектуальному помощнику.
-
Решение выведено для использования в разработке ПАО Ростелеком.
-
Уникальность проекта
Уникальность решения заключается в реализации продукта не в качестве облачного сервиса, а в качестве тиражируемого продукта для развертывания в локальной инфраструктуре заказчика.
Также уникальность продукту придает наличие в продукте специализированных функций, использующих алгоритмы ИИ, которые упрощают процесс разработки, таких как:
-
Генерация кода по описанию на естественном языке;
-
Написание unit-тестов к коду;
-
Написание скриптов сборки и тестирования, описывающих этапы процесса развертывания и автоматизации на основе описания процесса на естественном языке;
-
Написание анализа исходного кода (код-ревью) и рекомендаций по его улучшению;
-
Генерация суммаризации кода и ее визуализации в виде mind-map диаграмм.
В продукте реализован автоматизированный конвейер повышения качества генерации программного кода, путем проверки генераций на семантику и синтаксис, с целью снижения нагрузки на имплементацию сгенерированного кода разработчиками, с последующим обучением модели ИИ на результатах анализа.
- Проект решает задачи импортозамещения
- Да
- Использованное ПО
Программное решение реализовано на языке Python, используются внешние библиотеки, в т.ч. transformers, torch, fastapi и др, а также инструменты (линтеры) pylint, flake8, cppcheck, eslint, rubocop и др.
Система включает в себя функциональные модули (компоненты), предназначенные для решения соответствующих комплексов задач. Выделяются следующие функциональные модули:
-
Хранилище СУБД информации о сервисах и связанных с ними данные;
-
Модуль планирования и постановки в очередь задач для обработки алгоритмами ИИ;
-
Модуль классификации пользовательских запросов;
-
REST API интерфейс;
-
Модуль управления очередью задач;
-
Модуль исполнения алгоритмов ИИ;
-
Модуль предоставления обратной связи от статических анализаторов кода (линтеров);
-
Графический интерфейс пользователя.
-
- Сложность реализации
Реализация проекта предполагала разработку алгоритмов для сервисов Системы c использованием различных технологий, в т.ч.:
-
Технологии промпт-инжиниринга (zero-shot prompting, few-shot prompting, few-shot CoT, дерево рассуждений (ToT), цепочка мыслей (CoT), prompt chaining, generated knowledge prompting);
-
Технологии автоматизации промпт-инжиниринга, в т.ч. automatic prompt engineering (APE) и обучение промпт-агентов;
-
Подбор оптимальной модели для каждой из типов задач, исходя из метрик качества;
-
Дообучение модели для повышения качества генерации.
-
- Описание проекта
Интеллектуальный помощник разработчика «Василиса» представляет собой мультисервисное решение, которое получает на вход информацию в неструктурированном виде, содержащую данные с описанием задачи с дополнительными уточняющими комментариями. Полученная информация в рамках решения задачи анализируется с помощью технологии обработки естественного языка. Производится подготовка данных, обработка и формирование итогового результата, соответствующего выбранному сервису конвейера моделей:
-
Сервис генерации кода: Формирование кода на указанном пользователем языке программирования, решающем поставленную на естественном языке задачу;
-
Генерация unit-тестов: Формирование набора unit-тестов по исходному коду;
-
Генерация CI/CD скриптов: Формирование скриптов сборки и тестирования, описывающих этапы процесса развертывания и автоматизации по описанию процесса сборки и тестирования проекта на естественном языке;
-
Анализ дефектов/багов и генерация рекомендаций для их устранения: Проведение анализа исходного кода и рекомендации по его улучшению;
-
Описание алгоритмов по коду, описание архитектуры и построение диаграммы классов на основе суммаризации кода: Описание основных шагов алгоритма, включая обработку входных данных, выполнение операций и формирование выходных данных по исходному коду; Формирование результата суммаризации кода, описание архитектуры и диаграмм классов в установленном формате по исходному коду.
-
- География проекта
78 регионов РФ, в которых находятся разработчики ПАО Ростелеком