Заказчиком выступила сама компания IceRock, а целью проекта было решение внутренней бизнес-проблемы: снижение количества отвлекающих факторов для разработчиков и повышение эффективности доступа к базе знаний.
Мы разработали интеллектуального чат-бота, интегрированного в корпоративный Slack. Этот бот в реальном времени обращается к нашей внутренней базе знаний в Confluence, находит релевантную информацию и, используя мощности GPT, предоставляет сотрудникам точные, развернутые ответы на их вопросы.
Проект стартовал как R&D-инициатива одного из наших ведущих разработчиков - Алексея, с целью изучения новой на тот момент технологии RAG (Retrieval-Augmented Generation) и превратился в полноценный внутренний инструмент, который экономит время десяткам наших коллег.
В любой быстрорастущей IT-компании объем внутренней документации, регламентов и гайдов растет экспоненциально. В IceRock централизованным хранилищем таких знаний служит Confluence. Однако, как показывает практика, наличие базы знаний не гарантирует ее использования.
Мы столкнулись с классической проблемой:
Перед нами стояла двойная задача:
Мы разработали систему "IceRock Assistant GPT", состоящую из бэкенд-сервиса и интеграции со Slack.
Решение представляет собой чат-бота, которого можно «призвать» в любой тред (ветку) в Slack, просто упомянув его (@IceRock Assistant).
Ключевой сценарий работы для пользователя:
Важные особенности решения:
Весь процесс строился вокруг архитектуры RAG (Retrieval-Augmented Generation), которая позволяет «дополнять» запросы к LLM релевантными данными из внешних источников. Процесс можно разделить на два независимых конвейера (pipeline): Индексацию и Обработку запроса.
Чтобы бот мог что-то найти, информацию нужно было сначала подготовить и «скормить» ему. Этот процесс работает в фоновом режиме по расписанию (каждый час):
Этот процесс запускается каждый раз, когда пользователь упоминает бота в Slack:
Как и в любом R&D-проекте, основные сложности были не в коде, а в концепциях.
Обеспечение актуальности данных. База знаний — это живой организм, документы постоянно обновляются. Если бот будет отвечать устаревшей информацией, он принесет больше вреда, чем пользы.
Контекстуальная «амнезия». Первая версия бота отвечала только на одиночные запросы. Но пользователи так не общаются. Они задают уточняющие вопросы: «А если я тимлид?», «А для Android-отдела так же?». Без истории диалога бот не понимал, к чему относятся эти вопросы.
Визуализация архитектуры. Система получилась многокомпонентной (Slack, Бэкенд, Confluence, Qdrant, PostgreSQL, OpenAI). Объяснить, как все это связано, было непросто.
Создан рабочий внутренний продукт: "IceRock Assistant GPT" успешно внедрен и используется сотрудниками.
Снижена нагрузка на команду: Бот взял на себя ответы на большинство типовых вопросов, позволяя разработчикам не отвлекаться от основных задач.
«Оживлена» база знаний: Наша документация в Confluence из пассивного хранилища превратилась в активный инструмент, интегрированный напрямую в рабочий процесс коммуникации.
Получен бесценный R&D-опыт: Команда IceRock на практике освоила одну из самых востребованных сегодня технологий в области AI — RAG. Мы детально разобрались в работе с векторными базами данных (Qdrant), API OpenAI и логикой построения сложных AI-ассистентов.
Создан фундамент для будущих продуктов: Этот внутренний проект стал основой для будущих коммерческих предложений, связанных с созданием кастомных GPT-ассистентов для наших клиентов, обученных на их собственных корпоративных данных.