Все проекты
Клиентские проекты в продакшне

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

Бэкенд на .NET, который синхронизирует баг-тикеты из ClickUp, собирает полный контекст каждого для модели Mistral и записывает найденную первопричину обратно в тикет и в дашборд, которым пользуются QA и аналитики.

Иллюстрация: RootLine AI синхронизирует баг-тикеты в дашборд и публикует сгенерированную ИИ первопричину обратно в каждый тикет

Клиент / проект

-

Отрасль

Внутренние инструменты — качество ПО и аналитика QA

Мой вклад

  • Архитектура бэкенда (Onion) на ASP.NET Core
  • Интеграция с ClickUp и двусторонняя синхронизация
  • Интеграция Mistral API и проектирование промптов
  • Фоновая обработка на Hangfire
  • Дашборд на Angular (вход
  • таблица тикетов
  • фильтры)

О проекте

RootLine AI — внутренний инструмент, созданный, чтобы помочь команде разработки понимать, почему возникают её баги, а не только фиксировать, что они возникли. Он забирает тикеты с багами с доски команды в ClickUp, собирает всё, что о каждом известно, и просит LLM подготовить черновик анализа первопричин — который затем возвращается туда, где уже работают QA и аналитики.

Технологии: C#, ASP.NET Core, Entity Framework Core, MS SQL Server, Hangfire, Mistral API, ClickUp API, Angular, Power BI

Задача

В баг-тикетах было много информации — описания, обсуждения в комментариях, смены статусов, связанные задачи, вложения, — но выяснять первопричину каждого приходилось вручную, медленно и редко последовательно. Без этого QA и аналитики видели, что ломается, но почти не имели структурированного понимания, почему.

Решение

Бэкенд на .NET, в котором анализ первопричин устроен как фоновый пайплайн. Баг-тикеты синхронизируются из ClickUp, и для каждого сервис собирает полный контекст: описание, комментарии, историю статусов, связанные задачи и вложенные файлы, если они есть. Этот контекст отправляется модели Mistral с промптом, построенным для поиска первопричин, а результат записывается обратно в исходный тикет комментарием в ClickUp и сохраняется для дашборда команды и отчётов в Power BI.

Ключевые возможности

Дашборд на Angular показывает синхронизированные тикеты с их статусом и сгенерированной первопричиной. Пока тикет анализируется, для него отображается индикатор загрузки. Фильтры сужают список, а ручная синхронизация подтягивает последние изменения с доски между плановыми запусками.

Технический подход

Пайплайн RootLine AI: от синхронизации баг-тикетов из ClickUp до сгенерированной LLM первопричины, опубликованной обратно в каждый тикет

  • Архитектура: Onion Architecture, где интеграция с ClickUp и интеграция с ИИ изолированы каждая в своём слое за единым интерфейсом — поэтому остальная система не зависит от конкретной доски задач или поставщика модели.
  • Бэкенд: ASP.NET Core Web API с Entity Framework Core и MS SQL Server.
  • Фоновая обработка: два процесса на Hangfire. Первый синхронизирует тикеты из ClickUp по расписанию или по запросу и публикует готовые первопричины обратно комментариями. Второй отправляет запросы на анализ в Mistral API и ожидает результатов. Оба выносят медленные внешние вызовы из обработки запросов.
  • ИИ: прямая интеграция с Mistral API; структура промпта и формат контекста тикета дорабатывались итеративно.
  • Фронтенд: Angular — вход, дашборд тикетов и страница отчётов Power BI.

Сложности

Работа с LLM до появления устоявшихся практик

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

Превратить тикет в полезный контекст

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

Медленные внешние вызовы в отзывчивом продукте

и синхронизация с ClickUp, и ответы модели требуют времени. Их выполнение в фоновых задачах Hangfire — с отображением прогресса по каждому тикету в дашборде — сохранило отзывчивость приложения.

Безопасная запись обратно

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

Моя роль

Спроектировал и разработал большую часть бэкенда: структуру по Onion Architecture, слои интеграции с ClickUp и Mistral, логику сборки контекста и промптов, а также фоновые задачи Hangfire. Также сделал дашборд и вход на Angular. Тимлид участвовал в формировании части архитектуры и ревьюил работу на всём протяжении проекта; отчёты в Power BI сделал другой фронтенд-разработчик.

Результат

К моменту передачи проекта RootLine AI работал от начала до конца: тикеты синхронизировались с доски, анализировались в фоне и возвращались в сами тикеты комментариями с первопричиной, а результаты попадали в отчётность QA и аналитики. Проект стал и практическим уроком интеграции LLM, который актуален до сих пор: качество результата зависело не столько от модели, сколько от того, насколько тщательно собраны входные данные.

Реальные продукты, практичная разработка и задачи, которые стоит решать.

Избранные работы: .NET, full-stack SaaS, AI-интеграции, инструменты для разработчиков, React, React Native и не только.

Связаться