O ajuste que este post precisava

A versão anterior deste tema destacava principalmente a conveniência: menos infraestrutura, nada de banco vetorial externo e um fluxo limpo com GROQ + semântica.

Isso continua válido. Mas depois de rodar benchmark rotulado com controles negativos, o ponto principal mudou:

A busca semântica pode ser excelente em relevância no domínio e ainda assim ser frágil em robustez se você não aplicar uma camada de confiança.

Este texto reflete o que resistiu aos testes.


O que continua funcionando muito bem

O Sanity segue sendo uma base forte para RAG nativo de CMS:

  • conteúdo estruturado
  • filtros de política em GROQ
  • caminhos semânticos first-party
  • proveniência via _id e _rev

Em arquitetura, ainda é mais simples do que manter pipeline externo de sincronização para muitos times.


O que mudou após avaliação rigorosa

No nosso benchmark reprodutível, a busca semântica superou a busca lexical em métricas de relevância no domínio (Precision@k, Recall@k, MRR, nDCG).

Ao mesmo tempo, a busca semântica retornou resultados não vazios para prompts fora de domínio em uma taxa alta demais para produção quando usada sem gate.

A busca lexical mostrou o perfil oposto:

  • menor recall no domínio
  • maior seletividade
  • menos falsos positivos fora de domínio

Não é contradição; é tradeoff. Semântica cobre mais. Lexical é mais conservadora.


Arquitetura recomendada agora

O padrão de produção recomendado passou a ser:

  1. busca semântica como gerador primário de candidatos
  2. gate de confiança para aceitar/rejeitar semântica
  3. fallback lexical para resiliência
  4. filtros GROQ e log de proveniência

Sem o passo 2, a demo costuma parecer ótima e a produção fica frágil.


Por que gate de confiança é obrigatório

Hit semântico não é igual a caminho de resposta ancorado.

Em prompts curtos, amplos ou fora de domínio, o sistema pode trazer contexto plausível, porém fraco. Se a camada de resposta sempre consumir esse contexto, aumenta o risco de respostas confiantes e erradas.

O gate cria rota explícita de recusa quando a confiança de recuperação é baixa.


O que implementar primeiro

Se você já usa Sanity para busca semântica, priorize:

  • limiar de score ou política mista score+acordo lexical
  • prompts de controle negativo no seed de avaliação
  • reexecução periódica do benchmark conforme o corpus evolui

Qualidade de recuperação não é estática; deriva com o conteúdo.


Resumo de evidência

No benchmark rotulado mais recente:

  • a recuperação semântica liderou as métricas de relevância no domínio
  • a recuperação lexical foi mais seletiva e com menos aceitações fora de domínio
  • aceitar semântica sem gate foi o principal risco de robustez
  • a política mista de confiança entregou o melhor ponto de operação neste corpus

Para qualidade de recuperação em produção, reavaliação periódica precisa virar rotina de release.