Интеллектуальная платформа данных с Multi-RAG для оптового дистрибьютора
Мы разработали платформу данных для оптовой дистрибуционной компании, которая работает в трёх странах. Платформа объединила 14 систем — от SAP ERP и Salesforce до порталов поставщиков и таблиц — и отвечает на вопросы сотрудников, заданные обычными словами. AI-агенты направляют каждый вопрос в один из трёх контуров: CAG, RAG или GraphRAG. Сложный вопрос, на который раньше уходили часы, теперь получает ответ в среднем за 1,8 секунды.
- срок проекта
- 6 месяцев
- функциональных модулей
- 8
- этапов разработки
- 4
- ключевых технологий
- 10

02 — Контекст
Задача проекта
Исходная ситуация, ограничения и проблемы, которые должна была решить новая система.
Оптовая дистрибуционная компания среднего размера с операциями в трёх странах пришла к нам в конце 2024 года. Её данные были разбросаны по 14 системам: SAP ERP, Salesforce CRM, биллинг Stripe, складская система, системы перевозчиков, порталы поставщиков и множество таблиц.
Чтобы ответить на бизнес-вопрос, приходилось вручную выгружать данные, писать SQL и часами сверять записи между системами. Источники использовали разные идентификаторы, названия и частоту обновления: один и тот же клиент мог называться «Acme Industries» в SAP, «Acme Industries Inc.» в Salesforce, а в Stripe значиться просто адресом почты.
14 разрозненных систем
ERP, CRM, биллинг, склад, перевозчики, порталы поставщиков и таблицы жили отдельно. Единой картины по клиенту, заказу или поставщику не было ни в одной из них, а собрать её можно было только вручную.
Ответы только через SQL и выгрузки
Любой вопрос к данным требовал ручных выгрузок и знания SQL. Менеджеры по продажам и финансисты зависели от тех, кто умеет писать запросы, и ждали ответа часами.
Восемь дней на закрытие месяца
Финансовый отдел закрывал месяц за 8 дней. Сверка счетов, заказов и платежей между системами шла вручную, и расхождения приходилось искать построчно.
Связи между данными не видны
Вопрос «каких клиентов затронет срыв поставок у поставщика X» требует пройти цепочку клиент — заказ — товар — компонент — поставщик через несколько систем. На такие вопросы компания фактически не могла ответить.
03 — Возможности
Что делает система
Ключевые сценарии и рабочие модули, собранные в единую систему.
Единое хранилище и потоковая загрузка
Apache Kafka передаёт данные в реальном времени, а Change Data Capture настроен на ключевых системах — ERP, CRM и биллинге. Когда менеджер меняет карточку клиента в Salesforce, изменение за секунды попадает в хранилище на PostgreSQL. Слой преобразования нормализует записи и убирает дубликаты; ежедневно синхронизируется 2,4 млн записей.
Сопоставление записей между системами
Система сопоставляет записи одного клиента в разных системах по нескольким признакам: налоговые номера, почтовые домены, телефоны, адреса и нечёткое сравнение названий. После начального обучения на 2400 вручную проверенных совпадениях она автоматически и правильно сопоставляет 98 % записей. Этот единый профиль клиента лёг в основу всех трёх контуров поиска.
Подготовка документов и переписки
Помимо таблиц мы извлекли и структурировали неструктурированные данные: письма клиентов, обращения в поддержку, договоры в PDF и комментарии к заказам. Документы разбиты на фрагменты и подготовлены для векторного поиска. В итоге в хранилище 47 млн структурированных записей и 2,3 млн фрагментов документов, и ко всем можно обратиться обычным вопросом.
CAG для частых вопросов
Справочные данные — каталог, ценовые уровни, кредитные лимиты клиентов, остатки и стандартные условия — хранятся в Redis в виде актуальных срезов и подставляются прямо в контекст модели Claude. Поиска во время ответа нет, поэтому вопрос «какая сейчас цена на SKU-4521» получает ответ в среднем за 80 мс. После изменения цены в SAP кеш обновляется за секунды.
RAG по документам и переписке
Переписка с клиентами, договоры, обращения в поддержку и внутренние заметки переведены в векторы моделью эмбеддингов OpenAI и хранятся в Pinecone. На вопрос «что мы обсуждали с клиентом о задержке отгрузки в прошлом месяце» система находит самые близкие по смыслу документы и собирает из них ответ.
GraphRAG на графе знаний
Для вопросов о связях построен граф знаний в Neo4j: клиенты связаны с заказами, заказы — с товарами, товары — с компонентами, компоненты — с поставщиками и их договорами. В графе 12 млн узлов и 89 млн связей. Запрос сначала проходит по графу, а затем найденные связи становятся опорой для ответа модели. Устройство графа мы подробно разбираем в отдельном кейсе.
Маршрутизация вопросов агентом
Агент-классификатор разбирает каждый вопрос и выбирает контур: простые факты — в CAG, смысловой поиск по документам — в RAG, сложные вопросы о связях — в GraphRAG, иногда несколько сразу. Он учитывает структуру вопроса, типы упомянутых сущностей, сравнения, временной аспект и историю похожих запросов: «расскажи об Acme» уходит в CAG, а «всё о наших отношениях с Acme» — в GraphRAG.
Сборка ответа и обратная связь
Агент-синтезатор объединяет результаты, когда вопрос затрагивает несколько контуров: например, рейтинг клиентов берётся из CAG, обращения в поддержку — из RAG, связанные поставщики — из GraphRAG. Пользователи оценивают ответы, слабые попадают на разбор, и закономерности в ошибках улучшают маршрутизацию. За три месяца точность выбора контура выросла с 84 до 96 %.
04 — Архитектура
Технологический стек
Технологии выбраны под нагрузку, интеграции и дальнейшее развитие продукта.
Зачем в проекте · 01 / 10
Python
Основной язык платформы: конвейеры данных, сервисы поиска и логика агентов написаны на Python. Один язык для всего контура упрощает развитие и сопровождение.
- RAG
- GraphRAG
- CAG
05 — Процесс
Как шла разработка
Последовательность работ от исследования задачи до запуска и проверки результата.
Инфраструктура данных
Развернули хранилище на PostgreSQL и потоковую передачу на Kafka, настроили конвейеры CDC для ERP, CRM и биллинга. Нормализовали данные и сопоставили записи одних и тех же клиентов в разных системах. Прежде чем строить AI-поиск, нужны были чистые и единые данные.
Контур CAG
Определили, какие данные сотрудники запрашивают чаще всего, построили кеш на Redis с предзагрузкой этих данных и оптимизировали использование контекстного окна. Частые вопросы стали получать ответ быстрее чем за 100 мс.
RAG и GraphRAG
Подключили векторное хранилище Pinecone и построили граф знаний в Neo4j: извлекли сущности, связали их между собой и настроили смысловой поиск по документам.
Оркестрация агентов
Сделали классификатор сложности вопросов, маршрутизацию между контурами, сборку ответа из нескольких источников, интерфейс на естественном языке и цикл обучения на оценках пользователей. Весь проект — четыре этапа за шесть месяцев.
06 — Итог
Результаты
Что создано в рамках проекта: рабочий контур, реализованные возможности и подтверждённые факты.
- источников данных в одной платформе
- 14
- записей синхронизируется ежедневно
- 2,4 млн
- сокращение времени на отчётность
- 85 %
- выручки под риском найдено в первый месяц
- $340 тыс.
На сложные вопросы, которые раньше требовали часов ручного поиска, платформа отвечает в среднем за 1,8 секунды, а простые справки через CAG занимают меньше 100 мс. Для работы с данными не нужно знать SQL и помнить, в какой системе они лежат. Финансовый отдел сократил закрытие месяца с 8 до 2 дней: на вопрос «покажи все счета, которые не совпадают с заказами» сразу приходит ответ со ссылками на конкретные расхождения.
В первый же месяц отдел продаж нашёл выручку под риском на $340 тыс.: например, клиентов, у которых частота заказов упала год к году, хотя у компаний из их отрасли она выросла. Платформой пользуются 180 сотрудников, в среднем 2400 вопросов в день. Затраты на вычисления остаются под контролем: 71 % вопросов закрывает самый дешёвый CAG, 22 % — RAG и лишь 7 % требуют полного обхода графа.
Детали проекта
Почему кейс без имени клиента
Название компании мы не раскрываем. Это оптовый дистрибьютор, который работает в трёх странах, и для него данные о клиентах, поставщиках, ценах и выручке — коммерческая тайна. Поэтому закрытыми остаются имя клиента, его контрагенты и всё, что позволяет их вычислить; названия вроде «Acme Industries» в примерах условные.
При этом мы открыто рассказываем, как платформа устроена: потоковая загрузка на Kafka с CDC, единое хранилище, три контура поиска — CAG, RAG и GraphRAG — и агенты, которые выбирают между ними. Конкретику под ваши системы и данные разберём на встрече.
FAQ
Вопросы о проекте
Обсудим похожий проект?
Расскажите о задачах вашего бизнеса — предложим архитектуру и оценим сроки


