Skip to main content
Последние исследования:Когда схема растворяется →12 vindexes on Hugging Face
Запросить демо

Маршрутизация RAG — один API, множество архитектур

Маршрутизация RAG

Одна конечная точка API. Десять поддерживаемых архитектур извлечения. Маршрутизатор учится на исторических данных вашего трафика и направляет каждый новый вопрос к бэкенду, который с наибольшей вероятностью ответит на него корректно — по минимальной цене, всё ещё проходящей вашу планку качества.

Связаться с нами Прочитать подробный разбор →

Три архитектуры — концептуально

Большинство продакшен-систем RAG поставляют одну архитектуру извлечения и считают задачу решённой. Мы поставляем маршрутизатор, который выбирает между архитектурно различными стеками — правильный выбор редко одинаков для всех запросов в вашем корпусе.

Tier 1 · Плоско-векторный RAG
FAST & CHEAP
эмбеддинг → косинусный top-k
→ заполнение контекста
→ генерация

Лучше всего подходит для

Поиска отдельных фактов, запросов в форме FAQ, вопросов «что такое X?» по корпусам с плоской разбивкой на чанки.

Задержка:< 300 мс p95Стоимость:центы за запросБэкенды:Qdrant · Cloudflare · Vertex · MongoDB · Redis
Tier 2 · Гибрид + реранкинг
BALANCED
BM25 лексический + плотный вектор
→ Reciprocal Rank Fusion
→ cross-encoder реранкер
→ генерация

Лучше всего подходит для

Запросов, в которых лексические и семантические сигналы расходятся — коды, имена, аббревиатуры, технический словарь, строки ошибок.

Задержка:~ 800 мсСтоимость:по-прежнему низкаяСегодня:композируемый узел воркфлоу · авто-маршрутизатор в дорожной карте
Tier 3 · Page-Index + агент
DEEP & DELIBERATE
иерархическое дерево оглавления
строится при загрузке → агент обходит дерево
→ открывает / читает разделы
→ генерация

Лучше всего подходит для

Многошагового чтения длинных структурированных документов — юридических договоров, финансовых отчётов 10-K, технических PDF, где контекст разнесён по несмежным разделам.

Задержка:несколько секундСтоимость:самая высокая — но только когда нужноБэкенд:PageIndex · RAPTOR · LightRAG · neo4j-hybrid

Как маршрутизатор на самом деле принимает решения

Большинство опубликованных маршрутизаторов RAG классифицируют запрос заранее по сложности. Наш — нет. Мы используем обучаемую маршрутизацию: каждый успешный запрос сохраняется вместе с бэкендом, который на него ответил, и новые запросы сопоставляются с этой историей по сходству эмбеддингов.

Алгоритм поиска — что выполняется на каждом запросе

  1. Захешировать вопрос с помощью SHA-256, обрезать до 16-символьного ключа и проверить хранилище маршрутизации Cloudflare KV для конкретного клиента на точное прежнее совпадение. Если на вопрос уже отвечали раньше, немедленно направить его на бэкенд, который в прошлый раз справился лучше всех.
  2. При промахе — построить эмбеддинг вопроса и выполнить косинусный поиск по кэшированному индексу исторических эмбеддингов вопросов. Если сходство ближайшего соседа превышает 0.88, направить на ассоциированный с ним бэкенд.
  3. При отсутствии совпадения выше порога — откатиться к бэкенду по умолчанию клиента для данного корпуса.
  4. После того как ответ сформирован, кортеж (хеш вопроса, бэкенд, оценка качества) записывается обратно в хранилище истории маршрутизации клиента, формируя основу для будущих поисков.
Почему «обучаемая», а не «классифицированная»? Эмпирически один и тот же тип запроса ведёт себя по-разному на разных корпусах. «Сравните X между Y» на юридических договорах требует обхода Tier 3 page-index; та же форма запроса на плоском FAQ-корпусе прекрасно работает на Tier 1. Позволять модели маршрутизации учить это различие для каждого корпуса по историческим данным, а не угадывать по синтаксису запроса — это конструкторское решение, которое действительно дошло до продакшена.

Десять бэкендов, между которыми мы сегодня маршрутизируем

Маршрутизатор направляет запросы к одному из десяти именованных бэкендов. Три из них «в стиле Tier 3» (иерархические или граф-расширенные); остальные — чисто векторные движки, которые мы рассматриваем как Tier 1 с разными операционными компромиссами.

PI
pageindexИерархическое дерево оглавления + агентный обход. Архетип Tier 3.
RT
raptorИзвлечение обходом дерева по рекурсивно резюмированным иерархиям документов (ICLR 2024).
neo4j-hybridГраф-расширенное извлечение, объединяющее векторные эмбеддинги с явной структурой сущностей и отношений.
LR
lightragПлоско-графовое извлечение в двойном режиме — поиск по сущностям и сообществам, подход HKU LightRAG.
qdrantSelf-hosted движок плотных векторов для высокопропускных поисков с низкой задержкой.
cloudflare-v2Vectorize на эдже — менее 300 мс p95 из глобальной сети Cloudflare.
couchbase-byokBYO-хранилище векторов Couchbase для клиентов с существующими операционными зависимостями.
vertex-ai-vector-search-v2Векторный поиск Google Cloud Vertex AI для клиентов на дата-стеке Google.
mongodb-atlasAtlas Vector Search для клиентов, хранящих документные данные в MongoDB.
redis-vector-searchВекторный поиск Redis для рабочих нагрузок извлечения с ультранизкой задержкой в памяти.

Tier 2 (BM25 + слияние плотных векторов + cross-encoder реранкер) поставляется сегодня в нашем canvas-воркфлоу как композируемый узел. Авто-маршрутизатор подключит его следующим, когда данные маршрутизации по корпусу это оправдают.

API-поверхность — одна конечная точка, аудитная прозрачность

Маршрутизатор невидим для вызывающего кода. Один формат запроса; ответ включает решение о маршрутизации, чтобы вы могли проаудировать, какой бэкенд ответил (и почему).

# Одна конечная точка. Маршрутизатор решает, какой бэкенд использовать.
curl -X POST https://api.divinci.app/v1/rag/query \
  -H "Authorization: Bearer $DIVINCI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "What clauses in the 2024 amendment override section 7.3?",
    "corpus":   "legal-contracts-q4"
  }'
# Ответ — чанки, нужные агенту для обоснования ответа.
{
  "items": [
    {
      "content":  "Section 7.3 is superseded by …",
      "metadata": { "doc": "amendment-2024.pdf", "section": "II.4.b" },
      "score":    0.91
    }
    /* … */
  ],
  "routing": {
    "backend":      "pageindex",           // направлено на tier-3 page-index
    "match_source": "learned-history",     // arena · auto-fix · или fallback
    "similarity":   0.92,                  // порог ≥ 0.88
    "ttl_remaining":"23d 14h"              // окно свежести до переоценки
  }
}

Метаданные routing сегодня логируются внутренне и доступны через аудит-трейл. Инлайн-доставка в ответе раскатывается в течение Q3 2026.

Чем это отличается от существующих маршрутизаторов

Маршрутизация RAG не является новой идеей — академические маршрутизаторы вроде Adaptive-RAG и Probing-RAG уже классифицируют запросы по сложности. Дифференциация в том, что Divinci маршрутизирует между архитектурно различными стеками извлечения, обучаясь на вашем собственном трафике, за одной управляемой конечной точкой.

ПредложениеМежду чем маршрутизируетОсь маршрутизацииУправляемый?
Divinci RAG Routing10 бэкендов (PageIndex, RAPTOR, LightRAG, neo4j, 6 векторных движков)Архитектура · обучение на историиДа — одна конечная точка
LlamaIndex RouterRetrieverBYO-ретриверыLLM/Pydantic-селекторНет — библиотека, которую вы собираете
Adaptive-RAG (Jeong et al.)без извлечения / однократно / итеративноГлубина · классификатор сложности запросаИсследование
Cloudflare AI Search (ex-AutoRAG)Один гибридный пайплайнБез маршрутизацииДа
AWS Bedrock Knowledge BasesОдин гибридный пайплайнБез маршрутизацииДа
Azure AI Search Agentic RetrievalГибрид + отдельный агентный режимПользователь выбирает режим вручнуюДа
VectifyAI PageIndexОдна архитектура (иерархический обход)Без маршрутизацииOpen-source standalone

Честная слабая сторона нашего питча: маршрутизация RAG как концепция сама по себе не нова. Мы не изобрели маршрутизацию. Подлинная дифференциация — это сочетание (a) маршрутизации между архитектурно различными стеками, а не вариантами по глубине, (b) включения иерархического обхода в стиле PageIndex / RAPTOR / LightRAG как полноправного бэкенда, а не отдельного продукта, и (c) одной управляемой конечной точки вместо библиотеки, которую вы сами собираете и обслуживаете.

Как формируются предпочтения маршрутизации

Ваша модель маршрутизации не предобучена — она учится на вашем трафике. В хранилище истории маршрутизации поступают три сигнала.

  1. Выбор в Arena. Прогоните запрос через RAG Arena по нескольким бэкендам, оцените варианты бок о бок и выберите победителя. Пара (вопрос, бэкенд-победитель) попадает в хранилище маршрутизации.
  2. Выходы auto-fix. Когда наш auto-fix выполняет сравнительные извлечения по репрезентативным запросам во время загрузки или плановых аудитов, лучший бэкенд по каждому запросу записывается в то же хранилище.
  3. Обратная связь из продакшена. Успешные запросы (те, что прошли вашу планку качества через наш онлайн-гейт оценки — см. пост про регрессионное тестирование) записывают свою пару (хеш вопроса, бэкенд) обратно в хранилище маршрутизации в момент запроса, с TTL 30 дней, чтобы модель маршрутизации оставалась свежей по мере эволюции вашего корпуса.
Что здесь действительно продакшен-уровня, а что — дорожная карта: шаги 1 и 2 поставлены сегодня. Автоматическая петля обратной связи шага 3 поставлена частично — успешные запросы пишутся обратно, но Tier 2 (BM25 + RRF + реранкер) сейчас оформлен как узел воркфлоу, а не авто-маршрутизируется. Мы включим Tier 2 в авто-маршрутизатор, когда данные маршрутизации покажут чёткие условия победы для него.

Когда это важнее всего

Однородный корпус с единообразными формами запросов выигрывает мало — выберите один бэкенд вручную, и дело сделано. Точка опоры — это смешанные корпуса и смешанные формы запросов.

Юридическая команда, которая задаёт и «каково определение форс-мажора в нашем стандартном договоре?» (Tier 1, менее 300 мс), и «по нашим 47 договорам с поставщиками — какие из них содержат нестандартные условия расторжения и каковы паттерны?» (Tier 3, многосекундный обход page-index), не хочет выбирать один бэкенд. Они хотят, чтобы простой вопрос возвращался быстро и дёшево, а глубокий — корректно, даже если он стоит дороже — без необходимости эксплуатировать два стека.

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