cat rag-end-to-end.md

RAG de ponta a ponta: um tutorial prático

O que é, como funciona cada peça, como se avalia, um exemplo em produção no Azure e uma comparação entre Azure · Google Cloud · open source

Ideia-chave: O valor do RAG não está em “plugar um vector store”: está em ler bem os documentos, buscar de forma híbrida, fazer reranking e, acima de tudo, medir a recuperação e as respostas separadamente.

Nos testes da Anthropic (2024), adicionar contexto aos chunks, BM25 e um reranker reduziu as falhas de recuperação em 67%. Ferramentas comerciais de RAG jurídico alucinam em 17–33% dos casos (Stanford, 2024), e no benchmark CRAG da Meta (2024) os melhores sistemas de RAG industriais só respondem sem alucinar em 63% das vezes. Para medir tudo isso, um juiz LLM concorda com humanos em mais de 80% das vezes (Zheng et al., 2023).

Conferi quase tudo o que está aqui na documentação oficial e nos artigos citados em 23 de setembro de 2026. Alguns detalhes de ferramentas marcados com † vêm da experiência geral e não voltei a verificá-los. Recursos marcados com (preview) existem, mas o fornecedor ainda não os recomenda para produção. As siglas são explicadas na primeira vez em que aparecem e ficam reunidas no glossário no final; os artigos são citados pelo nome no texto (SPLADE, ColBERT, RAGAS), com autores, ano e link nas referências.

Parte I · Conceitos

1. O que é RAG, explicado com uma biblioteca

RAG (Retrieval-Augmented Generation) significa que, antes de responder, um modelo de linguagem busca nos seus documentos e responde a partir do que encontrou, citando a fonte.

Por que você precisa disso? Um modelo de linguagem não conhece os documentos internos da sua empresa, o conhecimento dele para numa data de corte e ele pode inventar coisas (“alucinar”). Com RAG, a resposta se apoia em documentos específicos que qualquer pessoa pode conferir, e atualizar o conhecimento não exige retreinar o modelo.

O jeito mais fácil de ver como as peças se encaixam é pensar em uma biblioteca e em alguém que chega ao balcão com uma pergunta:

RAG explicado como uma biblioteca Um pipeline da esquerda para a direita com sete etapas (documentos, chunks, índice, busca, reranker, modelo e avaliação) mapeadas para a metáfora de uma biblioteca: o acervo de documentos é cortado em fichas, catalogado, pesquisado por um bibliotecário, filtrado por um especialista (o reranker), redigido por um modelo e corrigido por um professor, com a etapa de geração em destaque. 1 Biblioteca documentos Seus arquivos-fonte (PDFs, wikis, políticas) 2 Fichas chunks Corte os documentos em pedaços pequenos 3 Catálogo índice Arquive cada ficha por termo e sentido 4 Bibliotecário busca Traz ~50 fichas candidatas 5 Especialista reranker Fica com as 5 melhores 6 Redator modelo Escreve a resposta com citações 7 Professor avaliação Nota: recuperou bem? respondeu bem? LEGENDA Etapas de recuperação (ingestão → busca → rerank) Geração (etapa principal) Passagem de dados entre etapas
RAG como uma biblioteca: documentos → chunks → índice → busca → reranker → modelo → avaliação
  1. A biblioteca são os seus documentos: tudo de onde o sistema pode tirar respostas, como PDFs, wikis ou políticas internas.
  2. As fichas são os chunks. Ninguém relê um livro inteiro a cada pergunta, então cada documento é cortado em fichas pequenas, cada uma com um pedaço de informação que se entende sozinho.
  3. O catálogo é o índice. Cada ficha é arquivada de duas formas: pelas palavras que contém e pelo que significa. É isso que depois permite buscar tanto por palavra-chave quanto por significado.
  4. O bibliotecário é a busca. Quando chega uma pergunta, ele traz rapidamente umas 50 fichas que parecem relevantes, sem lê-las com atenção.
  5. O especialista é o reranker. Ele lê a pergunta ao lado de cada uma dessas fichas e fica com as 5 melhores.
  6. O redator é o modelo de linguagem. Só agora alguém escreve a resposta, usando essas 5 fichas e citando a ficha de onde sai cada frase. Se as fichas não têm a resposta, o honesto é dizer “não sei”.
  7. O professor é a avaliação. Ele avalia duas coisas separadamente: se o bibliotecário trouxe as fichas certas e se a resposta é fiel a elas.

O resto do tutorial segue a mesma ordem: preparar os documentos (etapas 1 a 3), busca (4), reranking (5), geração (6) e avaliação (7).

Nem todo sistema RAG tem as sete etapas. Gao et al. (2023/24) distinguem três gerações:

GeraçãoIdeia
Naive RAGIndexar → recuperar os top k → colar no prompt
Advanced RAGMelhorar as coisas antes da busca (reescrever a pergunta, fazer um chunking melhor) e depois dela (reranking, compressão)
Modular RAGPeças intercambiáveis; fluxos adaptativos, iterativos e agênticos

Nos termos da biblioteca, o Naive RAG é um bibliotecário que passa as primeiras k fichas direto para o redator, sem o especialista no meio. Este tutorial descreve um Advanced RAG, com peças modulares onde elas compensam (seção 10).

2. Os três circuitos de um sistema RAG em produção

Um sistema RAG em produção funciona com três circuitos. O primeiro prepara os documentos uma única vez, offline: fontes, parsing e chunking, embeddings e índice (etapas 1 a 3 da biblioteca). O segundo roda a cada pergunta: busca híbrida, reranker e o modelo que responde com citações (etapas 4 a 6). O terceiro avalia, antes do deploy com um golden dataset e em produção com amostras do tráfego real, e devolve melhorias para os outros dois (etapa 7). As partes II a VI tratam deles nessa ordem.

Os três circuitos de um RAG em produção Arquitetura de um RAG com três circuitos: preparar os documentos (fontes, parsing e chunking, embeddings, índice), responder a cada pergunta (busca híbrida, reranker, modelo com citações) e avaliar com um golden set e amostragem para realimentar melhorias. PREPARAR DOCUMENTOS · OFFLINE RESPONDER · CADA PERGUNTA AVALIAR · ANTES E EM PRODUÇÃO CONSULTA TRACES MELHORIAS Fontes SharePoint · Blob · Drive Parsing + chunking estrutura, títulos, tabelas Embeddings texto → vetor Índice vetores + BM25 + permissões Usuário pergunta Busca híbrida BM25 + vetor · RRF Reranker top 50 → top 5 Modelo com citações resposta ou “não sei” Avaliação golden set · amostragem LEGENDA DESTAQUE PROCESSO FONTE ENTRADA FLUXO MELHORIA / FEEDBACK
Figura · Os três circuitos de um RAG em produção

Parte II · Preparando os documentos

3. Ler bem o documento (parsing)

O parsing tem mais impacto do que qualquer outra etapa, e é a que as equipes mais deixam de lado. Converta um PDF em “texto puro” e você perde os títulos, as tabelas ficam embaralhadas e cada chunk perde o seu contexto.

Parsing: texto puro versus parsing com estrutura Uma comparação de antes e depois do parsing de documentos. À esquerda, a extração de texto puro achata um PDF e perde os títulos e a estrutura da tabela. Uma seta com o rótulo modelo de layout aponta para o painel da direita, onde o parsing que respeita a estrutura mantém a hierarquia de títulos em Markdown e preserva a tabela. mod. de layout EXTRAÇÃO DE TEXTO PURO PDF original, achatado POLÍTICA DE TELETRABALHO 3. Elegibilidade Cargo Dias País Ger 2 ES 3 Sex opcional... • títulos perdidos • tabela vira uma linha só • cada chunk perde o contexto COM ESTRUTURA → MARKDOWN Títulos e tabela preservados # Política de Teletrabalho ← h1 ## 3. Elegibilidade por país ← h2 ### 3.2 Espanha ← h3 | Cargo | Dias/sem. | | Gerente | 2 | a tabela continua sendo tabela → o chunk mantém o caminho de títulos
Parsing: a extração de texto puro perde a estrutura; o parsing que respeita a estrutura mantém títulos e tabelas

Os estudos concordam nisso:

  • Os autores do ColPali (ICLR 2025) “costumam constatar que otimizar o pipeline de ingestão traz melhorias muito maiores do que otimizar o modelo de embedding”. O próprio ColPali dispensa a extração de texto e o chunking e indexa diretamente as imagens das páginas; no benchmark ViDoRe ele marcou 81.3 de nDCG@5, contra ~65–67 dos pipelines de parsing.
  • No estudo da Unstructured sobre o FinanceBench (2024), o chunking por elementos do documento (títulos, tabelas) chegou a 53.2% de acurácia, contra 48.2% com chunks fixos de 512 tokens, e usou metade dos chunks.
  • Um estudo em turco (2026) constatou que o chunking que respeita o layout ajuda muito mais em documentos com tabelas do que em documentos só de texto.

As ferramentas mais usadas são a Document Layout skill (Azure), o Document AI Layout Parser (Google) e o Docling (IBM, open source). A seção 22 compara as três.

4. Chunking

O chunking divide cada documento em pedaços pequenos (chunks) que são indexados separadamente.

4.1 As estratégias

EstratégiaComo divideCusto
Tamanho fixoA cada N tokens, com sobreposição opcionalMínimo
RecursivoTenta dividir por parágrafo, depois por linha, depois por frase…Mínimo
Por estrutura / páginaPelas seções, títulos ou páginas do documentoBaixo (exige um bom parsing)
SemânticoDivide onde o sentido muda entre frases, medido com embeddingsMédio
Baseado em LLM (“agêntico”)Um modelo decide onde dividirAlto
ProposiçõesUm modelo reescreve o texto em fatos atômicosAlto

4.2 O que diz a evidência: o chunking semântico é superestimado

  • A Vectara (2024) perguntou “Is Semantic Chunking Worth the Computational Cost?” e concluiu que “os custos computacionais associados ao chunking semântico não se justificam por ganhos de desempenho consistentes”. O chunking de tamanho fixo venceu nos 4 datasets de documentos reais (no HotpotQA, por exemplo, o F1@5 foi 90.59 com tamanho fixo contra 87.37 com o semântico). O modelo de embedding pesou mais do que o chunking.
  • A Chroma (2024) constatou que a estratégia de chunking muda o recall em até 9%. O chunker semântico padrão dela ficou um pouco abaixo da média (83.6% de recall), enquanto um chunker recursivo de 200 tokens sem sobreposição chegou a 88.1%. O melhor resultado (91.9%) usou um modelo de linguagem e custou bem mais.
  • A NVIDIA (junho de 2025) obteve a melhor acurácia média (0.648) e a menor variância entre datasets com chunking por página.
  • Em biomedicina (2026), o chunking semântico ganhou +8.4 pontos de F1 em um dataset, mas nos demais o chunking de tamanho fixo “continua competitivo ou melhor”. Depende do domínio.

4.3 O que funciona: adicionar contexto a cada chunk

Chunk sem contexto Chunk com contexto
"| Manager | 2 |"
→ 2 o quê? onde?
"Remote Work Policy > 3. Eligibility > 3.2 Spain | Manager | 2 days/week |"
→ dá para entender sozinho

O Contextual Retrieval da Anthropic (set. 2024) faz um modelo escrever 50–100 tokens de contexto e os coloca no início de cada chunk. Medido como a taxa de falha de recuperação dentro dos 20 primeiros resultados, partindo de uma linha de base de 5.7%:

  • contexto só nos vetores: 3.7% (−35%)
  • contexto nos vetores e no BM25: 2.9% (−49%)
  • tudo isso mais um reranker: 1.9% (−67%)

O custo, pago uma única vez, é de ~$1.02 por milhão de tokens de documento com prompt caching. Cuidado ao citar esses números: as três porcentagens são reduções em relação à linha de base de 5.7%, então a contribuição do reranker em si é o passo de 2.9% para 1.9%.

O late chunking (Jina, 2024) calcula primeiro o embedding do documento inteiro e só depois o divide, de modo que cada vetor “sabe” de que documento vem. Ele melhora o nDCG@10 de +2.7% a +3.6% sem retreinar.

4.4 Tamanhos iniciais

Bhat et al. (2025) sugerem 64–128 tokens para perguntas factuais curtas e 512–1024 tokens para perguntas que exigem contexto amplo. O Azure recomenda começar com 512 tokens e 25% de sobreposição, e adicionar o título do documento aos chunks do meio.

Um padrão razoável: comece com chunking recursivo ou por seção/página de 256–512 tokens, não divida tabelas, adicione contexto e ajuste medindo (Parte VI).

5. Transformar texto em vetores (embeddings)

Um embedding é uma lista de números que representa o significado de um texto. Textos com significados parecidos ficam próximos:

Embeddings aproximam significados parecidos Um espaço vetorial conceitual. Os pontos de notebook barato e laptop econômico ficam próximos porque significam quase a mesma coisa, enquanto política de férias fica longe porque não tem relação. A distância no espaço representa diferença de significado, não palavras em comum. ESPAÇO DE EMBEDDINGS · DISTÂNCIA = DIFERENÇA DE SENTIDO perto "notebook barato" "laptop econômico" longe "política de férias" Sentido parecido, vizinhos próximos Sem relação, longe, mesmo com palavras em comum
Embeddings aproximam significados parecidos e afastam textos sem relação
TipoO que éExemplos
DensoCentenas ou milhares de números, todos com valortext-embedding-3 (OpenAI/Azure), gemini-embedding-001, Qwen3-Embedding, BGE-M3
Esparso aprendidoLista de termos (quase todos zero) com pesos, expandida com termos relacionadosSPLADE, ELSER (Elastic), modo esparso do BGE-M3
MultivetorUm vetor por token; a comparação é feita token a tokenColBERT, ColPali

Meça com os seus próprios dados. Os rankings públicos (como o MTEB) mudam todo mês e nem sempre refletem o seu domínio. E fixe a versão do modelo: se você misturar vetores de modelos diferentes, as buscas deixam de fazer sentido.

6. Índice e permissões

O índice guarda cada chunk com seu texto, seu vetor e seus metadados:

Campo(s) no índiceFinalidade
id, content, content_vectoro texto do chunk e seu embedding
title, section, page, source_urlde onde veio
allowed_groupsgrupos que podem vê-lo
last_modifiedatualidade

Sem allowed_groups e um filtro de segurança em cada busca, um estagiário poderia receber chunks de documentos do comitê executivo.

Parte III · Recuperação

7. BM25: busca por palavras-chave

O BM25 é o algoritmo clássico de busca por palavras-chave (léxica) e o padrão no Elasticsearch, no OpenSearch e no Azure AI Search. Ele funciona sobre um índice invertido, que se parece com o índice remissivo no final de um livro:

TermoDocumentos em que aparece (postings)
"remote work"doc3, doc7, doc12
"manager"doc7, doc9
"spain"doc7, doc12, doc15

A pontuação tem três partes:

IngredienteIdeiaExemplo
Frequência do termoMais ocorrências = mais pontos, mas com saturação (parâmetro k1, 1.2 por padrão no Elasticsearch †)3 vezes > 1 vez, mas 20 vezes ≈ 10 vezes
Raridade do termoPalavras raras valem mais“ORA-00942” vale muito; “de” quase nada
Tamanho do documentoUm texto curto que contém a palavra pontua mais do que um longo (parâmetro b, 0.75 por padrão †)Um parágrafo específico ganha de um manual inteiro

O BM25 é rápido, não precisa de modelo, pode ser explicado e é excelente para termos exatos como códigos, siglas e nomes próprios. O ponto fraco são os sinônimos: “notebook barato” não encontra “laptop econômico”.

8. Busca semântica: pelo significado

8.1 Vetores densos (busca de vizinhos mais próximos)

Aqui a pergunta vira um vetor e você recupera os chunks mais próximos. Fazer isso rápido sobre milhões de vetores exige um índice aproximado, geralmente HNSW (um grafo de vizinhos).

A busca densa entende sinônimos, paráfrases e idiomas diferentes. Por outro lado, é uma caixa-preta (não dá para explicar por que algo deu match), pode confundir códigos quase idênticos (ORA-00942 vs ORA-00943) e usa mais memória. A quantização reduz a memória comprimindo os números, por exemplo para 8 bits ou para binário.

8.2 Esparso aprendido (SPLADE, ELSER)

O esparso aprendido fica entre os dois. Um modelo expande o texto com termos relacionados e seus pesos, e a busca roda sobre um índice invertido, como no BM25:

"cheap laptop" → { laptop: 2.1, notebook: 1.8, computer: 1.2, cheap: 1.9, budget: 1.5, price: 0.9 }

É mais fácil de explicar do que os vetores densos e ainda encontra sinônimos. O problema é que depende do idioma do modelo (o ELSER é recomendado só para inglês) e tem limite de tokens (o ELSER codifica os primeiros 512 tokens de cada campo).

8.3 Qual vence

ConsultaBM25DensoEsparso aprendido
“notebook barato” → doc com “laptop econômico”NãoSimSim
“erro ORA-00942” → doc com esse códigoSimPouco confiávelSim
“posso trabalhar de casa?” → doc com “trabalho remoto”NãoSimSim, se o idioma tiver suporte
Explicar por que deu matchSimNãoEm parte
CustoMínimoModelo + memóriaModelo

Nenhum deles vence sempre, e é por isso que se combinam.

9. Busca híbrida e RRF

Busca híbrida: duas buscas, uma fusão RRF e um reranker A pergunta é buscada em paralelo com BM25 e com vetores; o RRF funde os top 50 de cada lista pela posição, um reranker os reordena e os 5 melhores chunks chegam ao modelo. TOP 50 TOP 50 FUNDE REORDENA O RRF usa só as posições: premia a concordância entre as duas listas. Pergunta BM25 termos exatos índice invertido Vetorial sentido HNSW RRF 1/(60 + rank) Reranker lê pergunta + chunk Top 5 ao modelo LEGENDA Entrada Etapa de busca Fusão
Figura · Busca híbrida: duas buscas, uma fusão RRF e um reranker

9.1 O problema

As duas buscas devolvem pontuações em escalas incompatíveis:

PosiçãoBM25 (sem limite superior)Vetorial (cosseno 0.33–1 no Azure)
1doc_B → 12.4doc_A → 0.89
2doc_A → 9.1doc_C → 0.87
3doc_D → 3.2doc_B → 0.81

Somar 12.4 + 0.81 faz tanto sentido quanto somar euros e quilos.

9.2 A solução: RRF (Reciprocal Rank Fusion)

O RRF ignora as pontuações e usa só a posição de cada documento em cada lista:

RRF(doc) = Σ  1 / (k + position of doc in that list)      with k = 60 typically
       over each list

Vamos usar os mesmos rankings de antes:

PosiçãoBM25Vetorial
1doc_Bdoc_A
2doc_Adoc_C
3doc_Ddoc_B
DocContribuição BM25Contribuição vetorialTotalFinal
doc_A1/62 = 0.016131/61 = 0.016390.032521
doc_B1/61 = 0.016391/63 = 0.015870.032262
doc_C01/62 = 0.016130.016133
doc_D1/63 = 0.0158700.015874
Exemplo de RRF com k = 60: pontuação por documento Pontuação RRF final de quatro documentos: doc_A 0.03252 e doc_B 0.03226 aparecem nas duas listas e ficam bem à frente de doc_C 0.01613, só vetorial, e doc_D 0.01587, só BM25. 0.000 0.005 0.010 0.015 0.020 0.025 0.030 0.035 0.040 SCORE RRF = Σ 1/(60 + POSIÇÃO) doc_A 0.03252 alto nas duas listas doc_B 0.03226 doc_C 0.01613 só vetorial doc_D 0.01587 só BM25 Posições, BM25: B, A, D · Vetorial: A, C, B LEGENDA Vence: consenso entre listas Outros documentos
Figura · Exemplo de RRF com k = 60: pontuação por documento

O doc_A vence porque aparece bem colocado nas duas listas. O RRF premia a concordância entre os dois métodos.

9.3 Por que k = 60?

Posição 1Posição 2Diferença
k = 01.0000.500o dobro: ser 1º em uma única lista domina
k = 600.01640.0161quase igual: o que conta é ficar bem em várias listas

O valor vem do artigo original (Cormack, Clarke e Büttcher, SIGIR 2009), onde foi escolhido empiricamente, e o Azure AI Search documenta que ele funciona melhor com valores pequenos, como 60.

9.4 Vantagens, limites e variantes

O RRF não precisa de calibração de escala nem de treino, e aceita N listas (BM25, vários vetores, várias reformulações da pergunta). Ele tem dois pontos fracos. Ignora a magnitude, então ser primeiro “com folga” vale o mesmo que ser primeiro “por um fio”. E uma lista ruim conta do mesmo jeito: se a busca vetorial devolve lixo, esse lixo também ganha pontos.

Há duas variantes comuns:

  • O RRF ponderado dá mais peso a uma das listas (por exemplo, a lista vetorial ×2). Está disponível no Azure (vector weighting), no EnsembleRetriever do LangChain † e no Google Vector Search com rrf_ranking_alpha.
  • A combinação linear normaliza as pontuações e as soma com pesos. Ela aproveita a magnitude, mas você precisa calibrá-la com dados. Exemplos são o retriever linear do Elasticsearch e o DBSF no Qdrant †.

Tenha em mente que o RRF não é um reranker. Ele só funde listas, e o reranker vem depois.

10. Estratégias avançadas de recuperação

TécnicaO que fazEvidência principal
Reescrita com históricoTransforma “e quantos dias?” em uma pergunta completa usando a conversa anteriorPrática padrão
HyDEUm modelo escreve uma resposta hipotética e a busca é feita com elaCompete com retrievers treinados, sem precisar de rótulos (Gao et al., 2022)
Multi-query / RAG-FusionVárias reformulações da pergunta, fundidas com RRFMais cobertura; risco de fugir do assunto
Step-backPrimeiro pergunta algo mais geral+27% no TimeQA, +7% no MuSiQue (Google DeepMind)
DecomposiçãoDivide uma pergunta complexa em subperguntasBase da busca agêntica
RAPTOR / parent documentResumos hierárquicos; busca pelo chunk pequeno e devolve o grandeRAPTOR + GPT-4: +20% absoluto no QuALITY
GraphRAGGrafo de entidades + resumos por comunidadeMelhora as perguntas globais (“quais temas se repetem?”). O LazyGraphRAG indexa a 0.1% do custo e faz consultas >700× mais baratas. Nem sempre vence: em buscas específicas, o RAG clássico costuma empatar com ele ou superá-lo (Han et al., 2025/26; HippoRAG 2)
Adaptativo (Self-RAG, Corrective RAG, Adaptive-RAG)Decide quando buscar e quanto, e corrige se a busca foi ruimO Adaptive-RAG roteia conforme a complexidade da pergunta
Agêntico / “Deep Research”Busca iterativa treinada com aprendizado por reforçoSearch-R1: +41% (7B) sobre o RAG de base; o OpenAI Deep Research leva de 5 a 30 minutos por tarefa
Contexto longo vs RAGColocar tudo no prompt?Os modelos se saem pior quando a informação está no meio do contexto (“Lost in the Middle”); recuperar demais piora a resposta; o eficiente é rotear cada consulta (Self-Route), e nenhuma opção vence sempre (LaRA)

11. Estudo de caso: Elasticsearch

O Elasticsearch tem quatro peças “semânticas” diferentes, e é fácil confundi-las:

Elasticsearch: três abordagens de recuperação sobre um tipo de campo Três abordagens lado a lado no Elasticsearch, A vetores densos kNN, B esparso aprendido com ELSER e C reranking semântico, ficam acima de um tipo de campo compartilhado, D semantic_text, que faz o chunking do texto, gera embeddings automaticamente e alimenta as abordagens densa e de reranking semântico. A Denso (kNN) campo dense_vector consulta knn (HNSW) B Esparso aprendido ELSER · campo sparse_vector expande termos, não sinônimos C Reranking semântico text_similarity_reranker / RERANK no ES|QL D tipo de campo semantic_text faz o chunking do texto e gera embeddings automaticamente, o padrão de pouco esforço que alimenta A e C LEGENDA Abordagem de busca Tipo de campo comum que as alimenta
Elasticsearch: três abordagens de recuperação (A·B·C) sobre o campo compartilhado semantic_text (D)
  • A. Denso: dense_vector + consulta knn, com quantização int8, int4 e BBQ. Você pode usar E5 (multilíngue), Jina (pelo Elastic Inference Service) ou modelos externos (OpenAI, Azure OpenAI, Cohere, Bedrock, Vertex AI, Hugging Face).
  • B. O ELSER expande termos. O que ele acrescenta são associações aprendidas, não sinônimos. No benchmark BEIR feito pela própria Elastic, ele melhora o nDCG@10 em relação ao BM25 em 18% na média (10 vitórias, 1 empate, 1 derrota). É recomendado para inglês, lê 512 tokens por campo e exige assinatura paga.
  • C. Reranker: o retriever text_similarity_reranker ou o comando RERANK no ES|QL.
  • D. semantic_text (GA desde a versão 9.0). Se você não fixar o inference_id, índices novos podem passar a usar outro modelo depois de uma atualização de versão, então fixe sempre o modelo em produção.
Elasticsearch: árvore de retrievers para busca híbrida com reranker Três níveis aninhados: o retriever externo text_similarity_reranker reordena os top 50 com um modelo de rerank; dentro dele, o rrf funde dois retrievers standard: match com BM25 sobre content e semantic sobre um campo semantic_text. RETRIEVER EXTERNO · RERANK text_similarity_reranker reordena os top 50 com um modelo de rerank · inference_id FUSÃO rrf rank_window_size 50 · rank_constant 60 RETRIEVER FOLHA standard · match BM25 no campo content RETRIEVER FOLHA standard · semantic Denso ou ELSER campo semantic_text Alternativa ao rrf: retriever linear (minmax / l2_norm)
Figura · Elasticsearch: árvore de retrievers para busca híbrida com reranker

Esta é a busca híbrida com reranker em uma única chamada:

{
  "retriever": {
    "text_similarity_reranker": {
      "retriever": {
        "rrf": {
          "retrievers": [
            { "standard": { "query": { "match":    { "content": "remote work days manager Spain" } } } },
            { "standard": { "query": { "semantic": { "field": "content_semantic",
                                                     "query": "remote work days manager Spain" } } } }
          ],
          "rank_window_size": 50,
          "rank_constant": 60
        }
      },
      "field": "content",
      "inference_id": "my-rerank-endpoint",
      "inference_text": "remote work days manager Spain",
      "rank_window_size": 50
    }
  }
}

Você também pode fundir com o retriever linear (normalizadores minmax ou l2_norm) ou, no ES|QL, com FORK + FUSE (RRF ou LINEAR) + RERANK. No formato multi-field, a Elastic normaliza os campos léxicos e semânticos para que cada grupo contribua com 50%.

Atenção ao vocabulário. No Elastic, “semantic search” significa buscar com embeddings; no Azure, o “semantic ranker” é um reranker.

Parte IV · Reranking

12. Reranking

12.1 O que é

Um reranker pega os ~50–150 candidatos da busca e os reordena lendo a pergunta e cada chunk juntos. Isso é mais preciso do que comparar vetores, porém mais lento, então você só o aplica a poucos candidatos.

Embeddings (bi-encoder) vs. reranker (cross-encoder) O bi-encoder transforma a pergunta e o chunk em vetores separadamente e compara a distância entre eles, o que é rápido para milhões de chunks; o cross-encoder lê pergunta e chunk juntos e dá uma nota de relevância precisa para 50–150 candidatos. BI-ENCODER · BUSCA CROSS-ENCODER · RERANKER EMBEDDING EMBEDDING NOTAS Pergunta Chunk Vetor da pergunta Vetor do chunk pré-calculado Distância entre vetores Pergunta + chunk juntos Modelo reranker cross-encoder Nota de relevância Rápido Pré-calculável Milhões de chunks Preciso Calculado por par Só 50–150 candidatos LEGENDA Entrada Cálculo Pré-calculado Reranker
Figura · Embeddings (bi-encoder) vs. reranker (cross-encoder)

A arquitetura típica tem dois estágios: busca híbrida (que prioriza a cobertura), depois um reranker sobre 100–150 candidatos e, por fim, de 10 a 20 chunks entregues ao modelo que escreve a resposta.

12.2 Tipos

TipoExemplosNota
Cross-encoder clássicomonoBERT, bge-reranker-v2-m3monoBERT: +27% em MRR@10 no MS MARCO (2019)
Modelo de linguagem como rerankerRankGPT, RankZephyr (open source), SetwiseO RankZephyr empata com o GPT-4 ou o supera
Reranker com raciocínio (2025–26)Rank1, Rank-R1, ReasonRankNo BRIGHT (busca que exige raciocínio), o melhor modelo do MTEB cai de 59.0 para 18.3; raciocinar sobre a pergunta acrescenta até +12.2
Late interactionColBERTMeio-termo: ~100× mais rápido que um reranker BERT

12.3 Modelos de destaque (verificados)

ModeloOrganização / dataLicençaDado
Rerank 4 Pro / FastCohere, dez. 2025Serviço pago#2 no leaderboard independente da Agentset (1627 pontos Elo contra ~1457 da v3.5)
zerank-2ZeroEntropyPesos abertos#1 na Agentset
rerank-2.5Voyage (MongoDB), ago. 2025Serviço pagoContexto de 32K, segue instruções
Qwen3-Reranker 0.6/4/8BAlibaba, jun. 2025Apache 2.069.76 no MTEB-R (4B) contra 57.03 do bge-v2-m3
jina-reranker-v3.5Jina, jul. 2026Não comercial63.20 no BEIR com 0.6B de parâmetros
mxbai-rerank-large-v2Mixedbread, mar. 2025Apache 2.057.49 no BEIR
Semantic rankerMicrosoft (Azure AI Search)Serviço gerenciadoReordena os top 50, nota de 0 a 4
Ranking APIGoogleServiço gerenciadoAté 1000 chunks por chamada, nota de 0 a 1

12.4 Regras práticas

Um reranker é a melhoria mais barata e mais comprovada que você pode fazer. Nos números da Anthropic, só o acréscimo do reranker leva a taxa de falha de 2.9% para 1.9%.

Mas o reranker só reordena o que a busca encontrou. Se o documento correto não está entre os candidatos, ele não tem como salvar você, e é por isso que primeiro se mede a cobertura da recuperação (recall).

O que hoje diferencia os rerankers é a capacidade de seguir instruções: você pode passar regras de negócio como “priorize conteúdo recente”. Todo fornecedor diz que é o melhor, então meça com os seus dados.

Alguns complementos valem a pena. O MMR remove chunks redundantes. A compressão com LongLLMLingua dá +21.4% de qualidade com ~4× menos tokens. E a posição no prompt importa: coloque o conteúdo mais relevante no começo ou no fim (“Lost in the Middle”).

Parte V · Geração e guardrails

13. Geração com citações e guardrails

O prompt fica assim:

System:   Answer ONLY from the context. Cite every claim as [n].
          If the context does not contain the answer, say "I don't know".
Context:  [1] Remote Work Policy §3.2 Spain, p. 4: "Manager: 2 days/week..."
          [2] 2026 Annex, p. 1: "...starting January 2026, 3 days for..."
Question: remote work days for a manager in Spain

Os guardrails atuam antes, durante e depois da geração:

  1. Antes, detectar tentativas de manipular o modelo (“jailbreak” ou prompt injection).
  2. Durante, se o reranker não deixar nenhum chunk acima do limiar, responder “Não encontrei essa informação” em vez de inventar algo.
  3. Depois, verificar se cada frase da resposta é sustentada pelos chunks. Se a verificação falhar, gerar de novo ou responder com cautela.

Parte VI · Avaliação

14. Dois testes separados

Dois testes: recuperou bem? respondeu bem? Matriz 2×2 que cruza se a recuperação encontrou os documentos certos com se a resposta foi boa e indica a ação para cada caso; quando as duas falham, a prioridade é corrigir primeiro a recuperação. 01 · RECUPERAÇÃO NÃO / RESPOSTA SIM Sorte O modelo sabia de memória. Perigoso. 02 · RECUPERAÇÃO SIM / RESPOSTA SIM Tudo certo Mantenha e monitore. 03 · RECUPERAÇÃO NÃO / RESPOSTA NÃO Corrija primeiro a recuperação Chunking, híbrida, reranker, número de resultados. 04 · RECUPERAÇÃO SIM / RESPOSTA NÃO Corrija o prompt ou o modelo Alucina ou ignora o contexto. SIM Resposta: respondeu bem? NÃO NÃO SIM Recuperação: achou os documentos certos? LEGENDA Prioridade: comece aqui Outros casos
Figura · Dois testes: recuperou bem? respondeu bem?

Se você olha só a resposta final, não sabe o que corrigir. A Microsoft chama a avaliação da etapa de recuperação de process evaluation e a avaliação da resposta de system evaluation.

15. O golden dataset (o “gabarito”)

O golden dataset é um conjunto de 100 a 300 perguntas, cada uma com a sua resposta correta e os documentos que deveriam aparecer:

{"query": "Remote work days, manager, Spain?",
 "ground_truth": "2 days per week; 3 from January 2026 according to the annex",
 "relevant_docs": [{"document_id": "teletrabajo_p4", "query_relevance_label": 4},
                   {"document_id": "anexo2026_p1",  "query_relevance_label": 3}]}
De onde vêm as perguntasPor quê
Logs de perguntas reaisÉ o que as pessoas de fato perguntam
Especialistas do negócio (RH, jurídico)Casos difíceis e armadilhas
Geração sintética (RAGAS, simuladores dos provedores de nuvem)Cobertura rápida, mas sempre com revisão humana
Perguntas sem resposta nos documentosVerificam se o sistema diz “não sei” em vez de inventar

16. Métricas de recuperação, com números

Digamos que, para uma pergunta, os documentos corretos sejam A e C, e o buscador tenha devolvido [B, A, D, C, E].

Posição12345
DevolvidoBADCE
Correto?✗✓✗✓✗
MétricaPergunta que respondeCálculoValor
Recall@3 (cobertura)Quantos dos corretos aparecem no top 3?1 de 20.50
Recall@5E no top 5?2 de 21.00
Precision@5 (precisão)Do que eu trouxe, quanto é útil?2 de 50.40
MRR (posição do primeiro acerto)Em que altura está o primeiro correto?1/20.50
nDCG@5 (qualidade do ranking)Os corretos estão o mais acima possível?Real = 1/log₂3 + 1/log₂5 = 1.06; ideal = 1 + 1/log₂3 = 1.630.65

Esses números dizem onde olhar. Se o Recall@50 está baixo, o problema está na recuperação (chunking, embeddings, falta de BM25), e o reranker não vai resolver. Se o Recall@50 está alto mas o nDCG@5 está baixo, o problema está no reranker.

17. Métricas de resposta, com números

Suponha que o sistema responda: “Você tem 2 dias por semana [1], 3 a partir de janeiro de 2026 [2], e pode escolher as sextas-feiras.”

Afirmação na respostaSustentada pelos chunks?
"2 days/week"✓
"3 from January 2026"✓
"you can choose Fridays"✗ (inventada)
MétricaPerguntaResultado
Groundedness / Faithfulness (o lado da precisão)Tudo o que disse está nos chunks?2/3 = 0.67 ✗ alucinação
Completeness / Answer correctness (o lado da cobertura)Disse tudo o que a resposta correta diz?2/2 = 1.0 ✓
RelevânciaResponde ao que foi perguntado?✓
Citações corretasCada [n] sustenta a sua frase?✓

A Microsoft enquadra da mesma forma: a fidelidade ao contexto é o lado da precisão (não acrescentar nada) e a completude é o lado da cobertura (não omitir nada crítico).

Outra opção é a avaliação por “nuggets” (TREC 2024): você define os fatos atômicos que uma boa resposta precisa conter e conta quantos aparecem.

18. O LLM como juiz

Ninguém revisa 10,000 respostas à mão, então outro modelo faz o papel de professor. Esse juiz tem vieses conhecidos. Prefere a primeira opção que vê (posição), prefere respostas longas (verbosidade) e prefere textos da própria família de modelos (autopreferência).

Para montar um juiz em que dê para confiar:

  1. Um humano rotula 50–100 casos.
  2. Meça a concordância juiz–humano (kappa de Cohen, acurácia, F1).
  3. O juiz deve ser de uma família de modelos diferente da do gerador.
  4. O juiz deve explicar a sua nota.
  5. Pontuar afirmação por afirmação (RAGChecker) ou por nuggets é melhor do que dar uma única nota geral.

Até onde dá para confiar nele? O GPT-4 como juiz chega a mais de 80% de concordância com humanos, o mesmo nível observado entre dois humanos (Zheng et al., 2023). No TREC 2024, a concordância perfeita entre humano e GPT-4o foi de 56%, e de 72% quando o humano corrigia o rótulo do modelo. Ou seja, o juiz LLM é confiável para comparar sistemas e menos confiável pergunta a pergunta. O ARES combina algumas centenas de rótulos humanos com o juiz automático para produzir intervalos de confiança estatisticamente válidos.

19. Avaliação antes do deploy e em produção

O ciclo de avaliação contínua Ciclo de seis passos em sentido horário: golden dataset, avaliação offline, quality gate, deploy, avaliação contínua e falhas reais com votos negativos, que realimentam o golden dataset; no centro, as métricas de recuperação e de resposta. MÉTRICAS AMOSTRAS NÚCLEO COMUM Métricas de busca + de resposta Golden dataset 100–300 perguntas + respostas + documentos Avaliação offline recall@k · nDCG · faithfulness Quality gate integração contínua bloqueia se regredir Deploy Avaliação contínua amostra de tráfego real sem gabarito Falhas reais e votos negativos LEGENDA Etapa do ciclo Grava nas métricas Quality gate
Figura · O ciclo de avaliação contínua

Um quality gate na integração contínua poderia exigir que o Recall@10 não caia mais de 2 pontos, que a faithfulness fique ≥ 95% e que as respostas “não sei” corretas fiquem ≥ 90%. Esses limiares são só exemplos; quem define os reais é o negócio. Em produção, você amostra uma porcentagem do tráfego real e a avalia sem resposta de referência (faithfulness, relevância da resposta, relevância do contexto), junto com os votos positivos e negativos, a latência e o custo.

A Microsoft recomenda uma varredura de parâmetros (parameter sweep): testar combinações e medir qual vence. Os números abaixo são ilustrativos, não resultados reais:

ConfiguraçãoRecall@10nDCG@5FaithfulnessLatência
só vetorial0.710.580.900.8 s
híbrida0.840.660.920.9 s
híbrida + rerank ← escolhida0.840.790.951.3 s
+ agêntica (só perguntas complexas)0.880.810.953.5 s

O DeepEval sugere no máximo umas 5 métricas por aplicação. MLflow / Databricks recomendam usar os mesmos avaliadores em desenvolvimento e em produção. E em produção você só pode usar métricas que não precisam de uma resposta correta.

20. Por que isso importa: alucinação em sistemas reais

EstudoResultado
Stanford (2024): ferramentas jurídicas comerciais com RAGAlucinam entre 17% e 33% das vezes
CRAG (Meta, 2024)Modelo sozinho: ≤34% de acurácia; RAG simples: 44%; os melhores sistemas de RAG industriais só respondem sem alucinar em 63% das vezes
FinanceBench (2023)O GPT-4-Turbo com recuperação errou ou se recusou a responder em 81% dos casos
ALCE (2023)Mesmo os melhores modelos não sustentam totalmente as suas citações em 50% das vezes
Vectara (leaderboard de 2026-09-22, tarefa de resumo)Taxas de alucinação entre 1.8% e 24.2% conforme o modelo (GPT-4o 9.6%, Gemini 2.5 Pro 7.0%, Claude Sonnet 4.5 12.0%)
FaithBench (2024)Os melhores detectores de alucinação ficam em torno de 50% de acurácia nos casos difíceis

Vários desses números são de 2023–2024 e vêm de modelos mais antigos, então cite-os sempre com o ano e o modelo.

Parte VII · Um exemplo em produção no Azure

21. Copiloto de políticas internas, passo a passo

O caso é uma empresa com 20,000 funcionários, com documentos de RH, jurídico e compras no SharePoint e no Blob Storage. Ela precisa de permissões por usuário, citações em cada resposta e “não sei” quando não há informação.

21.1 Arquitetura

Copiloto de políticas internas no Azure Arquitetura no Azure de um copiloto de políticas: a ingestão leva documentos do SharePoint ou do Blob, por meio de um indexer com skillset, até o Azure AI Search; a app responde ao usuário com busca, Azure OpenAI e Content Safety; Application Insights e Foundry avaliam e observam. INGESTÃO CONSULTA AVALIAÇÃO E OBSERVABILIDADE DOCUMENTOS INDEXA PERGUNTA GERA BUSCA EMBEDDINGS VERIFICA TRACES AMOSTRAS SharePoint / Blob Storage PDF · DOCX · PPTX Indexer + skillset Document Layout skill chunking · embeddings Azure AI Search BM25 + vetor · RRF semantic ranker · allowed_groups Usuário login Entra ID App Container Apps / App Service Azure OpenAI GPT · text-embedding-3 Content Safety detecção de manipulação † fidelidade (groundedness) Application Insights traces OpenTelemetry Avaliação no Foundry avaliadores avaliação contínua LEGENDA CHAVE SERVIÇO EXTERNO DADOS ENTRADA FLUXO CHAMADA AO MODELO
Figura · Copiloto de políticas internas no Azure

Se você conhece a stack LangChain + Chroma/Qdrant, as peças se correspondem assim:

Stack open sourceNo Azure
Loaders do LangChain + text splitterIndexer + Document Layout skill + chunking
Chroma / QdrantAzure AI Search (vetores + BM25 + filtros em um único serviço)
Reranking com um modelo de linguagemSemantic ranker (e, opcionalmente, um modelo de linguagem depois dele)
Sua própria reescrita de consultasQuery rewriting do semantic ranker (preview) ou agentic retrieval
GraphRAGMicrosoft GraphRAG como índice separado, só para perguntas globais

21.2 Uma pergunta, de ponta a ponta

Ana, gerente em Madri, perguntou sobre o contrato dela mais cedo na conversa. Agora ela digita “e quantos dias posso trabalhar remotamente?”

Uma pergunta de ponta a ponta: “e quantos dias posso trabalhar remotamente?” Sequência em que a app reescreve a pergunta de Ana com o Azure OpenAI, recupera chunks com busca híbrida e o semantic ranker no Azure AI Search, gera uma resposta com citações e a verifica com o Content Safety antes de responder com citações ou “não sei”. pergunta + histórico reescreve a pergunta «dias remotos gerente Espanha» busca híbrida + filtro de acesso RRF (k=60) + semantic ranker top 50 → nota 0–4 5–10 chunks com nota ≥ 2 gera com citações [n] rascunho com citações verifica fidelidade ao contexto sustentado / não sustentado resposta citada ou «não sei» Ana usuária App Azure OpenAI Azure AI Search Content Safety LEGENDA CHAMADA RETORNO PASSO-CHAVE: CHECAR FIDELIDADE
Figura · Uma pergunta de ponta a ponta: “e quantos dias posso trabalhar remotamente?”
  1. O modelo reescreve a pergunta usando o histórico da conversa: “dias de trabalho remoto permitidos para um gerente na Espanha”.

  2. O BM25 e a busca vetorial rodam em paralelo e são fundidos com RRF (k=60). Antes da pontuação, o filtro de segurança remove tudo o que Ana não tem permissão para ver.

  3. O semantic ranker pega só os top 50 e dá a eles notas de 0 a 4:

    NotaSignificado
    4Responde totalmente
    3Relevante, mas incompleto
    2Parcial
    1Relacionado, responde muito pouco
    0Irrelevante

    Chunks com nota < 2 são descartados. Se não sobrar nenhum, a resposta é “Não encontrei essa informação”. A Microsoft avisa que a distribuição das notas pode variar um pouco, então os limiares não devem ser muito finos.

  4. O modelo gera a resposta com citações, usando a estrutura de prompt da seção 13.

  5. Uma verificação de fidelidade confere se cada frase é sustentada pelos chunks. Se falhar, a resposta é gerada de novo ou dada com cautela.

Uma pergunta complexa (“compare o trabalho remoto na Espanha e no México e me diga qual se aplica se eu me mudar”) vai para o agentic retrieval do Azure AI Search, que a divide em subconsultas, executa-as em paralelo, reordena cada uma com o semantic ranker e junta os resultados. O planejamento de consultas e a síntese de respostas com LLM ainda estão em preview.

Uma pergunta global (“quais temas se repetem em todas as políticas de 2026?”) é onde o GraphRAG vale a pena.

21.3 Avaliação no Azure (Microsoft Foundry)

AvaliadorTipoPrecisa de resposta corretaStatus
Document RetrievalRecuperação: NDCG, XDCG, Fidelity, Max Relevance, HolesSim (rótulos de relevância)GA
RetrievalRecuperação, julgada por um modelo de linguagem (escala 1–5)NãoGA
GroundednessResposta: fidelidade ao contextoNãoGA
Groundedness ProFidelidade estrita com Content Safety (true/false)Não(preview)
RelevanceResposta: responde à pergunta?NãoGA
Response CompletenessResposta: deixa de fora algo crítico?Sim(preview)

As notas vão de 1 a 5 e, por padrão, o limite de aprovação é 3. A avaliação contínua roda sobre amostras de tráfego real (porcentagem configurável, até 1000 requisições por hora) e envia os resultados para o Application Insights, vinculados aos traces.

Parte VIII · Comparação: Azure vs Google Cloud vs open source

22. Azure vs Google Cloud vs open source

Alguns produtos mudaram de nome recentemente (verificado em 2026-09-23):

  • No Google, o Vertex AI agora aparece como Gemini Enterprise Agent Platform, o Vertex AI Search está sendo renomeado para Agent Search e o Vector Search 2.0 agora se chama Agent Retrieval.
  • Na Microsoft, o Azure AI Foundry agora é Microsoft Foundry.

Fase 1: Preparando os documentos

EtapaO que fazAzureGoogle CloudOpen source
1. FontesOnde ficam os documentosBlob Storage, SharePointCloud Storage, Google DriveSistema de arquivos, armazenamento compatível com S3 (MinIO) †
2. Leitura (parsing)PDF/Word → texto com estruturaDocument Layout skill, que usa o modelo de layout do Document Intelligence e devolve Markdown por seçãoDocument AI Layout Parser: versão estável desde 2024; versões com Gemini em preview; descrições de figuras e tabelas com Gemini em previewDocling (IBM, MIT), Unstructured, MinerU †, Marker †
3. ChunkingChunks com contextoDocument Layout skill (por seção, ou tamanho fixo com sobreposição) e Text Split skillO Layout Parser divide por estrutura e adiciona os títulos pais. O RAG Engine permite definir tamanho e sobreposiçãoText splitters do LangChain e do LlamaIndex; chunking do Docling †
4. EmbeddingsTexto → númerosAzure OpenAI text-embedding-3-large / -smallgemini-embedding-001 (até 3072 dimensões, 2048 tokens por texto), text-embedding-005 (inglês e código), text-multilingual-embedding-002BGE-M3 (denso + esparso + multivetor, mais de 100 idiomas), Qwen3-Embedding (Apache 2.0), multilingual-E5
5. ÍndiceBanco onde se buscaAzure AI Search: vetores, palavras-chave e filtros em um único serviçoVector Search / Agent Retrieval, RAG Engine (banco gerenciado, Pinecone ou Weaviate) ou Agent Search (totalmente gerenciado)Qdrant, Chroma, Weaviate, Milvus, pgvector, Elasticsearch / OpenSearch †
6. PermissõesCada usuário vê só o próprio conteúdoEntra ID + filtro de grupos no índiceControle de acesso do Google (IAM) + controle de acesso por fonte de dados no Agent SearchFiltros de metadados no banco vetorial †

Fase 2: Respondendo a uma pergunta

EtapaO que fazAzureGoogle CloudOpen source
7. ReescritaPergunta autossuficiente; dividir perguntas complexasQuery rewriting do semantic ranker (preview); busca agêntica com planejamento (preview)Agent Search: perguntas de acompanhamento e respostas com busca agênticaLangChain MultiQueryRetriever, HyDE, transformações de consulta do LlamaIndex †
8. Palavras-chave (BM25)Correspondência exataBM25 embutido no AI SearchVector Search: você gera o vetor esparso (BM25, TF-IDF ou SPLADE) e faz o upload. Agent Search: gerenciadoBM25 do Elasticsearch/OpenSearch; vetores esparsos no Qdrant; SPLADE
9. SignificadoVizinhos mais próximosVetores no AI SearchVector Search / Agent Retrieval (milissegundos mesmo com bilhões de itens, segundo o Google)Qdrant, Chroma, Weaviate, Milvus, pgvector †
10. FusãoCombinar listasRRF automático (k=60), com peso configurável para os vetoresRRF com rrf_ranking_alphaRRF no Qdrant †, busca híbrida do Weaviate †, LangChain EnsembleRetriever †
11. RerankerReordenar lendo pergunta e chunk juntosSemantic ranker: os top 50, nota 0–4Ranking API: semantic-ranker-default-004 / -fast-004 (1024 tokens, 25 idiomas, nota 0–1, até 1000 chunks por chamada). A versão 005 está em preview desde 1º de setembro de 2026 e passa a ser a padrão até 1º de outubro de 2026, no máximobge-reranker-v2-m3, Qwen3-Reranker (Apache 2.0), mxbai-rerank-v2 (Apache 2.0), ColBERTv2; ou um modelo de linguagem como reranker
12. AgenteBuscas encadeadasBusca agêntica / Foundry IQ (a parte de modelo de linguagem em preview)Agent Development Kit (ADK) + Agent Runtime; agente Gemini Deep ResearchLangGraph, agentes do LlamaIndex †
13. GraphRAGGrafo para perguntas globaisMicrosoft GraphRAG (open source) implantado no Azure; LazyGraphRAG no Microsoft DiscoveryNenhum equivalente gerenciado encontrado (em 2026-09-23)GraphRAG (Microsoft), LightRAG, HippoRAG 2

Fase 3: Geração e guardrails

EtapaO que fazAzureGoogle CloudOpen source
14. Modelo que escreveResposta com citaçõesModelos GPT no Azure OpenAI / Microsoft Foundry (também outros modelos no Foundry †)Gemini (família 3.x); também Claude, Llama, Qwen e outros no Model GardenLlama, Qwen, Mistral, gpt-oss servidos com vLLM ou Ollama †
15. Proteção da entradaBloquear tentativas de manipulaçãoContent Safety – Prompt Shields †Model ArmorNeMo Guardrails, Llama Guard †
16. Fidelidade aos documentosCada frase está sustentada?Avaliador Groundedness; Groundedness Pro (preview)Check Grounding API: nota 0–1 por afirmação + citações, em menos de 500 msHHEM-2.1-Open (Vectara), MiniCheck

Fase 4: Avaliação e monitoramento

EtapaO que fazAzureGoogle CloudOpen source
17. Avaliar a recuperaçãoEncontrou o que devia?Document Retrieval (NDCG, XDCG, Fidelity, Holes; precisa de rótulos) e Retrieval (juiz, sem rótulos)Avaliação da qualidade de busca no Agent Search; serviço de avaliação da Agent PlatformRAGAS, DeepEval, RAGChecker, Open RAG Eval (UMBRELA)
18. Avaliar a respostaFiel, relevante e completa?Groundedness, Relevance, Response Completeness (preview); escala 1–5, aprovado com 3Serviço de avaliação com métricas baseadas em rubricas, juiz configurável e a opção de avaliar o próprio juizRAGAS, DeepEval, TruLens (“RAG triad”), ARES (intervalos de confiança)
19. Avaliação contínuaAvaliar amostras de tráfego realAvaliação contínua do Foundry: amostragem configurável, até 1000/hora, resultados no Application InsightsOnline Monitors: a cada ~10 min, porcentagem e limite configuráveis, resultados no Cloud Logging e no Cloud MonitoringLangfuse †, Arize Phoenix, MLflow
20. TracesVer o que aconteceu em cada etapaApplication Insights / Azure Monitor + OpenTelemetryCloud Trace, Cloud Logging, Cloud Monitoring + OpenTelemetry (atributos gen_ai.)OpenTelemetry + Phoenix / Langfuse †
21. DeployOnde a app rodaContainer Apps, App Service, AKS (Kubernetes) †Cloud Run, GKE (Kubernetes), Agent RuntimeDocker + Kubernetes, FastAPI †

Resumo em uma imagem

EtapaAzureGoogle CloudOpen source
Ler documentosDocument Layout skillDocument AI Layout ParserDocling / Unstructured
Vetorestext-embedding-3gemini-embedding-001BGE-M3 / Qwen3-Embedding
ÍndiceAzure AI SearchVector Search / Agent SearchQdrant / Chroma / Weaviate
FusãoRRF automático (k=60)RRF (rrf_ranking_alpha)RRF (Qdrant, LangChain)
RerankerSemantic ranker (top 50)Ranking API (até 1000)Reranker bge / Qwen3 / mxbai
ModeloGPT (Azure OpenAI)GeminiLlama / Qwen / gpt-oss + vLLM
VerificaçãoGroundedness (Pro em preview)Check Grounding APIHHEM-Open / MiniCheck
AvaliaçãoAvaliadores do FoundryServiço de avaliaçãoRAGAS / DeepEval / TruLens
ProduçãoAvaliação contínuaOnline MonitorsPhoenix / MLflow / Langfuse

Três diferenças que importam

  1. Busca híbrida: o Azure AI Search já inclui busca por palavras-chave. No Google Vector Search você mesmo precisa gerar o vetor esparso; se quiser que o Google cuide disso, use o Agent Search. Em open source, depende do banco.
  2. Reranker: o do Azure reordena só os top 50. A Ranking API do Google aceita até 1000 chunks e funciona com qualquer buscador, até um externo. Em open source você controla o modelo, o custo e a latência, mas também precisa operá-lo.
  3. Avaliação: as duas nuvens agora oferecem avaliação offline e avaliação contínua sobre tráfego real, com traces padronizados (OpenTelemetry). Em open source, RAGAS ou DeepEval (offline) mais Phoenix, MLflow ou Langfuse (produção) cobrem o mesmo terreno, mas a integração fica por sua conta.

Apêndice · Glossário

TermoSignificado simples
Busca agênticaUm agente divide a pergunta e faz várias buscas
BM25Algoritmo clássico de busca por palavras-chave
ChunkUm pedaço de documento indexado separadamente
Kappa de CohenUma medida de concordância entre dois avaliadores que desconta a concordância ao acaso
Completude (completeness)Que a resposta não deixe de fora informação importante
Integração contínua (CI)Testes automatizados que rodam a cada mudança no código
Cross-encoder / bi-encoderLê os dois textos juntos / transforma cada texto em vetor separadamente
Denso / esparsoUm vetor com todos os valores ativos / um vetor de termos com pesos, quase todos zero
Embedding / vetorUma lista de números que representa o significado de um texto
Entra IDO sistema de identidade e acesso da Microsoft
Golden datasetUm conjunto de perguntas com as respostas e os documentos corretos
GraphRAGRAG com um grafo de entidades e relações
Groundedness / faithfulnessQue a resposta não diga nada que não esteja nos documentos
AlucinaçãoQuando o modelo inventa informação
HNSWUma estrutura em forma de grafo para encontrar rapidamente os vetores mais próximos
Busca híbridaCombinar busca por palavras-chave e busca por significado
IAMO sistema de controle de acesso do Google Cloud
Índice invertidoUma tabela “palavra → documentos em que aparece”
kNNEncontrar os k vizinhos mais próximos
Modelo de linguagem (LLM)O modelo que escreve a resposta (GPT, Gemini, Claude, Llama…)
Juiz LLMOutro modelo que dá nota às respostas
MMRUma técnica para remover resultados redundantes
MRREm que altura aparece o primeiro resultado correto
nDCGQualidade do ranking: se os itens corretos estão o mais acima possível (os avaliadores do Azure escrevem NDCG)
OpenTelemetryUm padrão aberto para registrar traces e métricas
ParsingConverter um arquivo (PDF, Word) em texto com estrutura
Precision@kQue fração dos top k resultados está correta
Preview / GARecurso em teste / recurso oficial e estável
QuantizaçãoComprimir os números dos vetores para economizar memória
RAGGeração aumentada por recuperação: buscar nos seus documentos antes de responder
Recall@kQue fração dos itens corretos aparece nos top k resultados
RerankerUm modelo que reordena os candidatos lendo a pergunta e o chunk juntos
RRFReciprocal rank fusion: combinar listas usando só as posições
SPLADE / ELSERModelos que expandem o texto com termos relacionados (esparso aprendido)

Apêndice · Referências

Documentação oficial (acessada em 2026-09-23)

Microsoft Azure

Google Cloud

Elastic

Artigos e relatórios

Recuperação

Chunking

Reranking

Avaliação