Skip to main content
Pesquisa recente:Quando o circuito se dissolve →12 vindexes on Hugging Face
Solicitar demo

Roteamento RAG — Uma API, Várias Arquiteturas

Roteamento RAG

Um único endpoint de API. Dez arquiteturas de recuperação suportadas. O roteador aprende com o seu tráfego histórico de consultas e despacha cada nova pergunta para o backend com maior probabilidade de respondê-la corretamente — pelo menor custo que ainda atenda ao seu padrão de qualidade.

Fale conosco Leia o mergulho profundo →

As três arquiteturas, conceitualmente

A maioria dos sistemas RAG em produção entrega uma única arquitetura de recuperação e considera o trabalho encerrado. Nós entregamos um roteador que escolhe entre stacks arquiteturalmente distintos — a escolha certa raramente é a mesma para cada consulta no seu corpus.

Tier 1 · RAG de Vetor Plano
FAST & CHEAP
embed → cosine top-k
→ stuff context
→ generate

Ideal para

Consultas de fato único, perguntas no formato FAQ, perguntas do tipo "o que é X?" em corpora com chunks planos.

Latência:< 300 ms p95Custo:centavos por consultaBackends:Qdrant · Cloudflare · Vertex · MongoDB · Redis
Tier 2 · Híbrido + Rerank
BALANCED
BM25 lexical + dense vector
→ Reciprocal Rank Fusion
→ cross-encoder reranker
→ generate

Ideal para

Consultas em que sinais léxicos e semânticos divergem — códigos, nomes, siglas, vocabulário técnico, strings de erro.

Latência:~ 800 msCusto:ainda baixoHoje:nó componível de workflow · roteador automático no roadmap
Tier 3 · Page-Index + Agente
DEEP & DELIBERATE
hierarchical TOC tree built
at ingest → agent walks tree
→ opens / reads sections
→ generate

Ideal para

Leitura multi-hop de documentos longos e estruturados — contratos jurídicos, formulários financeiros 10-K, PDFs técnicos em que o contexto atravessa seções não adjacentes.

Latência:vários segundosCusto:o mais alto — mas apenas quando necessárioBackend:PageIndex · RAPTOR · LightRAG · neo4j-hybrid

Como o roteador realmente decide

A maioria dos roteadores RAG publicados classifica a consulta de antemão por complexidade. O nosso não. Usamos roteamento aprendido: cada consulta bem-sucedida é armazenada junto com o backend que a respondeu, e novas consultas são comparadas a esse histórico por similaridade de embedding.

O algoritmo de lookup — o que roda em cada consulta

  1. Faça o hash da pergunta com SHA-256, truncado em uma chave de 16 caracteres, e consulte o armazenamento de roteamento por cliente no Cloudflare KV para encontrar uma correspondência exata anterior. Se já foi respondida antes, despache imediatamente para o backend que teve o melhor desempenho da última vez.
  2. Em caso de miss, faça o embedding da pergunta e execute busca por cosseno contra o índice em cache de embeddings de perguntas históricas. Se a similaridade do vizinho mais próximo exceder 0.88, despache para o backend associado.
  3. Sem correspondência acima do limiar, faça fallback para o backend padrão do cliente para aquele corpus.
  4. Após a resposta ser renderizada, a tupla (hash da pergunta, backend, score de qualidade) é gravada de volta no armazenamento de histórico de roteamento daquele cliente, alimentando lookups futuros.
Por que "aprendido" em vez de "classificado"? Empiricamente, a mesma forma de consulta se comporta de modo diferente em corpora diferentes. "Compare X em Y" em contratos jurídicos pede traversal page-index de Tier 3; a mesma forma em um corpus plano de FAQ funciona bem em Tier 1. Deixar o modelo de roteamento aprender essa distinção por corpus a partir de evidências históricas, em vez de adivinhar pela sintaxe da consulta, foi a decisão de design que efetivamente entregamos.

Os dez backends entre os quais roteamos hoje

O roteador despacha para um entre dez backends nomeados. Três deles têm "formato Tier 3" (hierárquicos ou enriquecidos por grafos); os demais são mecanismos puramente vetoriais que tratamos como Tier 1 com diferentes tradeoffs operacionais.

PI
pageindexÁrvore hierárquica de sumário + traversal agêntico. O arquétipo do Tier 3.
RT
raptorRecuperação por traversal de árvore sobre hierarquias de documentos sumarizadas recursivamente (ICLR 2024).
neo4j-hybridRecuperação enriquecida por grafos combinando embeddings vetoriais com estrutura explícita de entidades e relações.
LR
lightragRecuperação dual-mode em grafo plano — busca por entidade e por comunidade, a abordagem do LightRAG da HKU.
qdrantMecanismo denso-vetorial self-hosted para lookups de alta vazão e baixa latência.
cloudflare-v2Vectorize na edge — sub-300 ms p95 a partir da rede global da Cloudflare.
couchbase-byokVector store Couchbase BYO para clientes com dependências operacionais existentes.
vertex-ai-vector-search-v2Busca vetorial do Google Cloud Vertex AI para clientes no stack de dados do Google.
mongodb-atlasAtlas Vector Search para clientes que rodam dados documentais no MongoDB.
redis-vector-searchBusca vetorial Redis para cargas de recuperação in-memory com latência ultrabaixa.

O Tier 2 (BM25 + fusão densa + cross-encoder reranker) já é entregue hoje no nosso canvas de workflow como um nó componível. O roteador automático o adiciona em seguida, conforme os dados de roteamento por corpus justifiquem.

Superfície da API — um endpoint, transparência em nível de auditoria

O roteador é invisível para quem chama. Um único formato de requisição; a resposta inclui a decisão de roteamento para que você possa auditar qual backend respondeu (e por quê).

# Um único endpoint. O roteador decide qual backend usar.
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"
  }'
# Resposta — chunks de que o agente precisa para fundamentar a resposta.
{
  "items": [
    {
      "content":  "Section 7.3 is superseded by …",
      "metadata": { "doc": "amendment-2024.pdf", "section": "II.4.b" },
      "score":    0.91
    }
    /* … */
  ],
  "routing": {
    "backend":      "pageindex",           // despachado para page-index tier-3
    "match_source": "learned-history",     // arena · auto-fix · ou fallback
    "similarity":   0.92,                  // ≥ 0.88 de limiar
    "ttl_remaining":"23d 14h"              // janela de frescor antes de novo benchmark
  }
}

Os metadados de routing são atualmente registrados internamente e expostos via trilha de auditoria. A entrega inline na resposta está sendo liberada gradualmente ao longo do Q3 de 2026.

Como isso se diferencia dos roteadores existentes

Roteamento RAG não é uma ideia nova — roteadores acadêmicos como Adaptive-RAG e Probing-RAG já classificam consultas por complexidade. A diferenciação é que a Divinci roteia entre stacks de recuperação arquiteturalmente distintos, aprendidos a partir do seu próprio tráfego, atrás de um único endpoint gerenciado.

OfertaO que ela roteiaEixo de roteamentoGerenciado?
Divinci RAG Routing10 backends (PageIndex, RAPTOR, LightRAG, neo4j, 6 mecanismos vetoriais)Arquitetura · aprendido do históricoSim — endpoint único
LlamaIndex RouterRetrieverRetrievers BYOSeletor LLM/PydanticNão — biblioteca que você monta
Adaptive-RAG (Jeong et al.)sem recuperação / passo único / iterativoProfundidade · classificador de complexidade de consultaPesquisa
Cloudflare AI Search (ex-AutoRAG)Um pipeline híbridoSem roteamentoSim
AWS Bedrock Knowledge BasesUm pipeline híbridoSem roteamentoSim
Azure AI Search Agentic RetrievalHíbrido + modo agêntico separadoUsuário escolhe o modo manualmenteSim
VectifyAI PageIndexArquitetura única (traversal hierárquico)Sem roteamentoOSS standalone

A fraqueza honesta no nosso pitch: roteamento RAG por consulta como conceito não é novo. Não inventamos o roteamento. A diferenciação genuína está na combinação entre (a) rotear entre stacks arquiteturalmente distintos em vez de variantes de profundidade, (b) traversal hierárquico nos moldes de PageIndex / RAPTOR / LightRAG incluído como backend de primeira classe, e não como produto separado, e (c) um único endpoint gerenciado em vez de uma biblioteca que você monta e opera por conta própria.

Como as preferências de roteamento são alimentadas

Seu modelo de roteamento não é pré-treinado — ele aprende com o seu tráfego. Três sinais alimentam o armazenamento de histórico de roteamento.

  1. Seleção na arena. Execute uma consulta pelo RAG Arena em vários backends, pontue as variantes lado a lado e escolha a vencedora. O par (pergunta, backend vencedor) entra no armazenamento de roteamento.
  2. Saídas do auto-fix. Quando nosso auto-fix executa recuperações comparativas sobre consultas representativas durante a ingestão ou auditorias agendadas, o backend de melhor desempenho por consulta é gravado no mesmo armazenamento.
  3. Feedback de produção. Consultas bem-sucedidas (aquelas que ultrapassaram seu limiar de qualidade via nosso gate de avaliação online — veja o post sobre testes de regressão) gravam o par (hash da pergunta, backend) de volta no armazenamento de roteamento em tempo de requisição, com TTL de 30 dias para que o modelo de roteamento permaneça fresco à medida que seu corpus evolui.
O que de fato está em produção vs no roadmap: os passos 1 e 2 já entregamos hoje. O loop de feedback automático do passo 3 está parcialmente entregue — consultas bem-sucedidas escrevem de volta, mas o tier-2 (BM25 + RRF + reranker) está atualmente composto como um nó de workflow em vez de ser auto-roteado. Vamos incorporar o Tier 2 ao roteador automático conforme os dados de roteamento mostrarem condições claras de vitória para ele.

Quando isso importa mais

Um corpus homogêneo com formatos de consulta uniformes se beneficia pouco — escolha um backend manualmente e está pronto. A cunha está em corpora mistos e formatos de consulta mistos.

Um time jurídico que pergunta tanto "qual é a definição de força maior no nosso contrato padrão?" (Tier 1, abaixo de 300 ms) quanto "ao longo dos nossos 47 contratos com fornecedores, quais têm cláusulas de rescisão não-padrão e quais são os padrões?" (Tier 3, traversal page-index de vários segundos) não quer escolher um único backend. Eles querem que a pergunta simples volte rápida e barata, e que a pergunta profunda volte correta mesmo que custe mais — sem operar dois stacks.

É nesse cenário que um endpoint único gerenciado roteando entre backends arquiteturalmente distintos compensa o investimento. Se o seu tráfego é uniforme, você não precisa disso. Se o seu tráfego é misto — e a maioria dos corpora corporativos reais é — você precisa.