No artigo anterior estabelecemos a stack de criação de conteúdo para IA: Markdown + YAML. Agora vamos entrar no lindo universo das Bases Vetoriais, ou RAG (Retrieval-Augmented Generation)

Mas afinal, o que é RAG?

RAG, ou Retrieval-Augmented Generation, é uma técnica muito usada em Inteligência Artificial para conectar um modelo de linguagem (LLM) a uma base de dados, com o objetivo de melhorar a precisão das respostas da IA. Ou seja, o RAG opera como um pesquisador ultrarrápido: antes de o LLM responder, o sistema vasculha a base de conhecimento, recupera os trechos exatos que contêm a resposta e os injeta no contexto do modelo. 

E é aí que entra a base vetorial! 

A ponte entre o conhecimento e a IA 

A verdadeira ponte entre um modelo de linguagem e o capital intelectual da sua empresa é a base vetorial. Para que o RAG cumpra a premissa de ancorar as respostas do LLM em documentos reais, ele necessita de um motor capaz de traduzir o idioma humano em coordenadas espaciais. Enquanto um banco de dados tradicional depende de consultas exatas (que quebram diante de sinônimos ou jargões), uma base vetorial armazena embeddings numéricos que representam o peso semântico de cada parágrafo da sua documentação. 

Uma Base Vetorial, como o Qdrant, é o verdadeiro motor de um sistema de busca semântica em produção. Ela não busca por palavras-chave exatas, mas sim por proximidade de significado através de vetores densos e esparsos. No entanto, um documento extenso não pode ser transformado em um único vetor sem perder a especificidade dos seus detalhes. É aqui que entra o processo de chunking: a arte de fatiar o seu documento em pedaços menores e digeríveis antes de enviá-los ao banco vetorial. 


Chunking Inteligente e Idempotência

Fatiar a documentação de maneira arbitrária destrói o contexto de listas e tabelas.

  • Preservação Estrutural: O uso de ferramentas como o MarkdownTextSplitter (com chunk_size de 1500 e overlap de 150) respeita a hierarquia dos cabeçalhos do Markdown, garantindo que o trecho recuperado contenha uma ideia completa.
  • Prevenção de Duplicatas (Idempotência): Reindexar toda a base a cada vírgula alterada não escala. Gerar identificadores únicos de chunks utilizando MD5 (combinando o caminho do arquivo e o índice do chunk) garante atualizações seguras via upsert, mantendo o banco limpo e sem duplicações estruturais.


Mas como o motor vetorial processa esses metadados para encontrar a resposta certa? A resposta curta: busca vetorial densa não é suficiente. 


O cre técnico: o pipeline híbrido em três estágios

A busca semântica pura (Dense Search) captura muito bem a intenção da frase, mas falha ao tentar recuperar acrônimos específicos, IDs de transação ou jargões de contextos. Para resolver isso sistematicamente, sistemas RAG de produção utilizam um motor de busca em três estágios:

1. Busca paralela (Dense + Sparse)

Em vez de depender de um único vetor, a dica é disparar duas buscas simultâneas no banco de dados (como o Qdrant):

  • Dense Search: Utiliza modelos robustos (como Amazon Bedrock Titan de 1024 dimensões) para entender sinônimos e o contexto geral da pergunta.
  • Sparse Search (BM25): Atua como um rastreador de palavras-chave exatas, garantindo que termos de nicho, siglas e códigos específicos não sejam ignorados pela generalização semântica.

Mas aí você deve estar se perguntando: peraí, como eu vou misturar vetores com palavras-chave?

2. Reciprocal Rank Fusion (RRF)

O algoritmo RRF resolve isso de forma elegante. Ele penaliza posições baixas e recompensa os documentos que aparecem no topo de ambos os rankings (denso e esparso), fundindo os top-30 candidatos em uma lista única e altamente relevante.

E depois de classificado os top-30 candidatos conforme a pergunta, precisamos diminuir esse leque para apenas aquelas que se relacionam com a intenção do que foi perguntado (semântica).

3. Re-Ranking com Cross-Encoder

No último estágio, passamos os 30 candidatos finais por um modelo Cross-Encoder (como ms-marco-MiniLM). Este modelo lê a pergunta e o documento simultaneamente, gerando um score de relevância extremamente preciso e cortando a lista para os top-8 resultados finais que alimentarão o agente de IA.

Para facilitar para você:

Métrica de Recuperação

Arquitetura Básica (Apenas Densa)

Pipeline RAG Produção (Híbrido + Rerank)

Tratamento de Siglas/Acrônimos

Baixo (semântica genérica)

Alto (captura exata via Sparse/BM25)

Custo Computacional

Baixo (uma inferência)

Moderado (requer CPU extra no estágio 3)

Fusão de Rankings

Inexistente ou via pesos engessados

Dinâmico e matemático via RRF

Taxa de Zero-Hit (Falsos Negativos)

Alta em jargões técnicos

Baixa (redundância de métodos de busca)


Aplicação prática na stack

Vamos agora de prática para fixar a ideia:

Em um fluxo otimizado, abandonamos os editores de texto convencionais em prol da metodologia DocAsCode (via Git), estruturando o conhecimento em Markdown com frontmatter YAML para criar um ecossistema robusto. Na prática, quando uma squad atualiza um documento, o pipeline de integração converte o texto em vetores duplos (Dense e Sparse) e armazena os metadados como um payload rico dentro do banco vetorial Qdrant. Quando a equipe de suporte aciona a IA para resolver um ticket complexo, o sistema realiza uma pré-filtragem exata pela taxonomia do YAML (ex: "Pessoas"), executa a busca híbrida restrita àquela categoria, funde os resultados via RRF e realiza a validação final com um Cross-Encoder. Esse pipeline ponta a ponta entrega ao RAG exatamente a diretriz vigente em menos de 2 segundos com precisão absoluta, o que reduz drasticamente o tempo de onboarding e maximiza a deflexão de chamados, além de evitar a famosa alucinação da IA.