Интеллектуальный помощник разработчика «Василиса»

Заказчик:
Ростелеком
Руководитель проекта со стороны заказчика
Поставщик
Ростелеком Информационные Технологии
Год завершения проекта
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 регионов РФ, в которых находятся разработчики ПАО Ростелеком

Комментировать могут только авторизованные пользователи.
Предлагаем Вам в систему или зарегистрироваться.

Год
Предметная область
Отрасль
Управление
Мы используем файлы cookie в аналитических целях и для того, чтобы обеспечить вам наилучшие впечатления от работы с нашим сайтом. Заходя на сайт, вы соглашаетесь с Политикой использования файлов cookie.