LLM+RAG: Учим корпоративную wiki отвечать на любые вопросы
LLM отвечают на вопросы так хорошо, что, кажется, справятся и с рабочими задачами. Но в корпоративной среде требуется разработка собственного решения и тонкая настройка. В этой статье мы расскажем, как внедрили алгоритмы искусственного интеллекта с RAG-архитектурой в Evrone ERP для ответов на частые вопросы.
У сотрудников Evrone регулярно возникают вопросы, связанные с работой и условиями: как рассчитывается отпуск? На что я могу потратить соцпакет? Работает ли ДМС? Это довольно частые вопросы, поэтому ответы уже есть в корпоративной Wiki со стартовым Welcome book’ом и подробными статьями на другие вопросы.
Тем не менее, люди продолжают приходить с типовыми вопросами к HR-менеджерам. И это понятно: с точки зрения пользовательского опыта проще написать живому человеку в чат, чем открывать оглавление Wiki и искать нужный раздел. В результате внутренняя база знаний компании превращается в недоиспользуемый актив.
HR-отдел такому положению дел тоже не рад. Обычно они работают в многозадачном режиме и асинхронно, а сотрудник приходит за небольшим уточнением тогда, когда вопрос возник у него в голове. Спланировать такую консультацию не получится, потому что ответ нужен быстро, так что менеджерам приходится отвлекаться.
Чтобы снять эту рутину с эйчаров и дать сотрудникам мгновенные точные ответы, мы интегрировали корпоративного ИИ-ассистента на базе RAG (Retrieval Augmented Generation, генерация с дополненной выборкой) прямо в личный кабинет Evrone ERP. В этой статье подробно расскажем, как спроектировали пайплайн, подружили большую языковую модель с нашей Wiki и что из этого вышло.
Встраиваем чат-интерфейс туда, где его ждут
Часто корпоративных нейро-помощников делают в виде Telegram-бота или отдельного веб-приложения со своим доменом, но для нас это означало бы создание лишних шагов. Мы руководствовались простым правилом: пользователь должен получить ответ там, где у него возник вопрос.
Сотрудники и так регулярно пользуются личным кабинетом в Evrone ERP: оформляют отпуска, смотрят историю начислений зарплаты, управляют своими данными. Именно там и логично разместить интерфейс чата.
Мы встроили чат прямо в интерфейс в сквозном режиме и теперь он буквально «следует» за посетителем, присутствуя на всех страницах личного кабинета.
Технический стек
Фронтенд чата создали на React, а коммуникацию с бэкендом организовали через WebSockets, что позволяет реализовать асинхронный обмен сообщениями и получать стриминг ответа от модели в реальном времени, не блокируя интерфейс.
Бэкенд написан на Python и выступает в роли прокси-сервиса: принимает запросы от пользователей, обогащает их релевантным контекстом из векторной базы, логирует все действия, отправляет итоговый запрос к LLM и обрабатывает ошибки. Чтобы выиграть в производительности, мы отказались от тяжеловесных фреймворков, отдав предпочтение быстрому и асинхронному FastAPI.
Настраиваем retrieval — поиск и генерацию нужных ответов
Чтобы RAG работал качественно, недостаточно просто «показать» документы модели. Нужно разбить их на смысловые блоки и настроить поиск по ним, а также обеспечить удобное управление и обновление. Мы провели серию экспериментов и выбрали оптимальные параметры для корпоративной базы знаний.
Делим текст на чанки по смысловым заголовкам
Evrone Wiki написана в Markdown, где заголовки разбивают текст на конкретные правила и инструкции. Мы перебирали различные размеры чанков и уровни заголовков, добиваясь баланса между детализацией и достаточностью контекста. Качество ответов модели проверяли с помощью тестового набора вопросов и экспертной оценки релевантности.
В итоге остановились на разбиении по заголовкам (header-based splitting). Так мы получили логичные и целые по смыслу фрагменты: каждый блок (чанк) соответствует одному конкретному вопросу или теме, например, «Правила оформления больничного».
Выбираем лучшую LLM
Мы протестировали несколько моделей, включая популярные open-source и ряд отечественных решений, по нескольким параметрам:
- Качество ответов (оценивалось экспертами на тестовых запросах);
- Скорость инференса;
- Стоимость токенов.
Наилучшие результаты по совокупности факторов снова показала модель Qwen (мы уже использовали её, когда делали умный парсер для резюме). Она точно следует инструкциям, хорошо понимает русскоязычные запросы и при этом экономически выгоднее остальных вариантов.
Улучшаем поиск
Чтобы модель находила правильные блоки, добавили семантический поиск на основе векторных эмбеддингов. Это позволяет пользователям формулировать вопросы как им удобно, потому что модель ищет по смыслу. В будущем добавим гибридный поиск «semantic + keyword», что повысит точность для узких или специфических запросов.
Автоматически обновляем базу для ИИ
Самая частая проблема любых корпоративных баз знаний — неактуальность. Собрать базу для RAG один раз недостаточно, потому что появляются новые статьи и ответы, а старые иногда переписываются. Чтобы система отвечала правильно и не терялась в новых вопросах, нужно всегда отслеживать изменения в Wiki и вовремя индексировать их.
Для этого мы настроили автоматическое обновление. За него отвечает отдельный Python-скрипт, который запускается по расписанию или по триггеру от Webhook, как только кто-то редактирует статью.
Если скрипт находит правки, он запускает процесс синхронизации данных и пересборку векторного индекса, в котором всегда содержится самая свежая информация, чтобы модель опиралась исключительно на новые документы.
При этом мы оставили для себя возможность вручную управлять набором данных: через админ-панель можно гибко настраивать, какие именно страницы или целые разделы должны участвовать в индексации. Так легко исключить из поиска устаревшие документы и сырые черновики.
Управляем параметрами из кастомной админ-панели
Для удобного управления системой также разработали собственную админ-панель на React, которая позволяет менять поведение ассистента без перезапуска всего сервиса:
- задавать количество чанков, извлекаемых из векторной базы, и лимит тех, что реально подаются в контекст модели;
- переключать используемую LLM в зависимости от задач;
- редактировать системный промпт (например, менять тональность ответов или добавлять специфические инструкции);
- настраивать параметры генерации.
Таким образом мы можем настраивать поведение модели «на лету».
Следим за безопасностью: почему не взяли low-code или SaaS
Собрать RAG-систему можно было бы из готовых no-code/low-code «кубиков» или просто купив корпоративную подписку на популярную LLM. Но для нас это означало бы полное отсутствие контроля над пайплайном. Сторонний сервис может обанкротиться, внезапно изменить API или интерфейс, и систему пришлось бы переделывать.
Кроме того, корпоративная Wiki содержит чувствительные данные: регламенты работы, внутренние правила, информацию о сотрудниках. А значит есть и риск, что эта информация будет «утекать» на сторонние серверы.
Поэтому мы сделали ставку на собственную защищенную инфраструктуру. Админ-панель интегрирована с нашей корпоративной системой аутентификации, так что доступ к настройкам есть только у администраторов. А чтобы обезопасить чат, внедрили два ограничения на уровне API:
- Тематическая фильтрация: модель отвечает строго на вопросы, связанные с документацией компании, и вежливо отклоняет любые посторонние запросы.
- Rate limiting: мы ограничили количество запросов от одного пользователя в единицу времени, чтобы предотвратить спам и злоупотребления.
Готовые ИИ-сервисы не подходят из-за требований к безопасности? Мы в Evrone разрабатываем кастомных ИИ-ассистентов и мультиагентные системы, которые работают строго в закрытом контуре вашей компании. Обучим нейросеть на ваших данных, настроим RAG и безопасно интегрируем ИИ в любые внутренние процессы.
Анализируем метрики и оцениваем результат
Для понимания реальной полезности ассистента мы собираем полную статистику по каждому запросу и сохраняем текст вопроса и ответа, время, потраченное на генерацию, и лайки/дизлайки к ответам.
Ориентируясь на эти данные, команда выявляет «слабые места» в корпоративной базе знаний. Например, если на какой-то ответ часто ставят дизлайк, это четкий сигнал — либо модель неправильно интерпретирует запрос, либо в Wiki просто не хватает нужной информации.
Внедрение RAG дало HR-отделу возможность внедрять улучшения быстрее. Люди не стесняются задавать нейросети самые «глупые» вопросы, с которыми не хочется идти к живому человеку. Через изучение логов эйчары узнают, что реально волнует сотрудников и могут изменить ситуацию.
Например, если ИИ не смог ответить на вопрос, HR-специалист дополняет статью в Wiki, ассистент тут же учится отвечать правильно и помогает с этим вопросом другим сотрудникам. Такой дата-центричный подход обеспечивает непрерывное улучшение системы.
Главной же метрикой успеха для нас стало сокращение количества типовых вопросов, которые всё-таки уходят к эйчарам напрямую. В идеале они должны тратить время только на сложные, нестандартные или персональные запросы сотрудников, оставив всю рутину ИИ-ассистенту.
Планы: мультиагентная система, выполняющая задачи
Из ближайших планов - хотим добавить мультимодальность, чтобы система могла работать не только с текстом, а, например, со скриншотами. Если у пользователя не получается заполнить форму в интерфейсе, он сможет отправить картинку и получить пошаговую инструкцию.
Также хотим перейти к агентной или даже мультиагентной версии. Сейчас ассистент работает в «пассивном» режиме — читает базу знаний и отвечает на вопросы. Но может и перейти от простых консультаций к реальным действиям.
Например, сотрудник пишет в чат: «Оформи мне больничный на три дня» или «Хочу завтра уйти в отпуск», а ИИ-агент сам проверит правила, формирует заявку или вежливо объяснит, что по регламенту этот отпуск нужно согласовывать за месяц.
Хотите автоматизировать рутинные задачи?
Команда Evrone занимается разработкой ИИ-решений для бизнеса. Мы проверяем новые технологии сами и предлагаем клиентам только те решения, которые доказали свою эффективность. Архитектура нашего RAG-ассистента универсальна: её можно адаптировать для службы поддержки первой линии, сделать умного консультанта для сайта или интегрировать ИИ-агента в вашу ERP.
Мы создаем кастомные решения под ключ для компаний, которым важны безопасность данных, надежность и полный контроль над инфраструктурой. Готовы превратить вашу базу знаний из «мертвого груза» в активного помощника? Свяжитесь с нами, чтобы обсудить детали проекта.