Компании со временем накапливают тысячи страниц документации, и найти нужную информацию становится всё сложнее. Сотрудники тратят время на навигацию по Wiki и повторяют одни и те же вопросы коллегам. В ЮMoney решили эту проблему, объединив корпоративные знания с возможностями LLM — так появился ИИ-ассистент Юджин. Он понимает смысл запроса, а не просто ищет совпадения по словам.Юджин ищет информацию по корпоративным источникам, работает с документами, помогает с кодом и анализирует прикреплённые файлы. Поисковый индекс охватывает документацию, регламенты, инструкции и описания бизнес-процессов. В чат можно загрузить документ размером до 5 МБ, чтобы получить краткое содержание, найти нужную информацию или задать вопросы по его содержимому.Для работы ассистента используется технология RAG (Retrieval-Augmented Generation): документы индексируются и преобразуются в векторные представления, система находит релевантные фрагменты, передаёт их в контекст модели, а модель формирует ответ. Такой подход позволяет быстро обновлять базу знаний без переобучения модели, снижает стоимость эксплуатации и даёт больше контроля над актуальностью данных и безопасностью.Архитектура Юджина включает два процесса: формирование базы знаний и поиск по запросу пользователя.Система подключается к Wiki, Bitbucket и внутренним документам, автоматически выгружая содержимое для индексации. Индексация происходит непрерывно, но изменения накапливаются и обрабатываются пакетно через заданные интервалы — это снижает нагрузку и исключает лишние пересчёты.Документы разбиваются на чанки перед векторизацией и индексацией. После серии экспериментов остановились на размере около 1024 токенов с перекрытием 200 токенов между соседними чанками. Алгоритм рекурсивно делит документ по разделителям разного уровня и объединяет соседние фрагменты, если их суммарный размер укладывается в лимит. Количество токенов рассчитывается через токенизатор эмбеддинговой модели FRIDA.Реализован специализированный чанкер для разных типов документов: OpenAPI (.yml), Markdown (.md, .markdown), AsciiDoc (.adoc, .asciidoc), PlantUML (.puml, .plantuml, .uml), HTML (.html) и других.Для повышения качества ответов используется параллельно два поиска: полнотекстовый (с помощью поискового движка OpenSearch) и векторный поиск. Во время индексации для каждого чанка строится эмбеддинг — числовое представление текста, по которому затем выполняется семантический поиск. Для построения эмбеддингов используется открытая модель FRIDA (https://huggingface.co/ai-forever/FRIDA), развёрнутая как внутренний сервис. Эмбеддинги хранятся в Milvus. Для индексации используется HNSW (Hierarchical Navigable Small World).После получения запроса параллельно запускаются полнотекстовый и векторный поиск. Полнотекстовый поиск в OpenSearch использует три стратегии: поиск по словам, с учётом опечаток и по фразам. Их результаты объединяются, взвешиваются и дедуплицируются. Текст обрабатывается русским анализатором со стеммингом, поддержкой синонимов, стоп-слов и разбиением составных слов. Для каждого корпуса создаются два индекса: с чанками документов и с синтетическими вопросами, сгенерированными LLM. Параллельно выполняется векторный поиск в Milvus: пользовательский запрос преобразуется в эмбеддинг с помощью FRIDA, после чего по косинусной близости ищутся наиболее релевантные чанки и синтетические вопросы. Результаты полнотекстового и векторного поиска объединяются и передаются на реранжирование с помощью BGE-M3 (BAAI). Эта модель точнее оценивает релевантность пары «запрос — фрагмент», чем bi-encoder FRIDA, используемый на этапе первичного поиска. Реранкер развёрнут на Triton Inference Server в формате ONNX с квантизацией Q4. За один запрос он оценивает до 40 пар «запрос — фрагмент» и отбирает наиболее релевантные чанки для передачи в LLM. Среднее время ответа — около одной секунды. Запросы маршрутизируются в зависимости от сценария: чувствительные корпоративные данные обрабатываются локальными моделями внутри защищённого контура, для остальных запросов используется GigaChat.Сейчас Юджин помогает разработчикам быстрее находить документацию, разбираться в сервисах и их взаимосвязях. Следующий этап — поддержка аналитиков, архитекторов и менеджеров: работа со спецификациями, контекстом решений, задачами и отчётными материалами. С технической точки зрения Юджин развивается в сторону агентной архитектуры на базе ReAct. В ближайших планах — интерактивный чат со стримингом ответов, поддержка новых форматов документов и схем, интеграция с внутренними сервисами, единая агентная платформа на базе OpenCode.
Habr / Машинное обучение
·
·
~3 мин
Юджин: ИИ-ассистент ЮMoney на базе RAG вместо поиска по Wiki
В компании ЮMoney создали ИИ-ассистента Юджин на базе технологии RAG, чтобы упростить поиск информации в корпоративной документации. Ассистент объединяет корпоративные знания с возможностями LLM, использует векторный и полнотекстовый поиск и обеспечивает быстрое получение ответов. Сейчас Юджин помогает разработчикам, в будущем планируется расширить поддержку для аналитиков, архитекторов и менеджеров.
// оригинал
Habr / Машинное обучение
↗ Читать оригинал
3 просмотров
// похожие статьи