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
_ide_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:
- busca semântica como gerador primário de candidatos
- gate de confiança para aceitar/rejeitar semântica
- fallback lexical para resiliência
- 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.