Documentação completa de um sistema RAG com re-ranking implementado…
INEMA
🔥 Hacks de Qualidade (Respostas Melhores)⌗
1️⃣ Re-rank NÃO é opcional em base grande⌗
-
Sempre:
-
Busca semântica top 30–50
- Re-rank → top 5–10
- Resultado: menos “respostas plausíveis porém erradas”.
2️⃣ Corte por score mínimo⌗
-
Se o score do re-ranker < 0.25–0.35:
-
Responda: “Não encontrei informação confiável nos documentos.”
- Evita alucinação silenciosa.
3️⃣ Chunk inteligente > chunk grande⌗
-
Melhor prática:
-
600–800 tokens
- overlap 80–120
- Chunk grande = confunde re-ranker
- Chunk pequeno demais = perde contexto
4️⃣ Normalização antes do embedding⌗
Antes de gerar embeddings:
-
Remover:
-
cabeçalhos repetidos
- rodapés
- numeração automática
-
Converter:
-
tabelas → texto estruturado
- Isso aumenta MUITO a qualidade da busca.
💸 Hacks de Custo (menos tokens, menos $$$)⌗
5️⃣ Re-rank economiza tokens de LLM⌗
- Sem re-rank → envia 20–30 chunks pro GPT
- Com re-rank → envia 5–10
- Economia real: 30–50% de custo
6️⃣ Cache de embeddings de perguntas frequentes⌗
- Hash da pergunta → embedding salvo
-
Se repetir:
-
não gera embedding de novo
- Essencial em suporte e FAQ.
⚡ Hacks de Performance (latência menor)⌗
7️⃣ Paralelizar ingestão⌗
- Texto → chunks → embeddings em batch
- Evite 1 embedding por request
8️⃣ Limite duro de contexto⌗
Mesmo com re-rank:
- Nunca mande mais de 8–12 chunks pro LLM
- Mais que isso = queda de qualidade
🧠 Hacks de Inteligência (nível avançado)⌗
9️⃣ Prompt específico para re-ranker⌗
Quando usar Cohere:
-
Sempre mande:
-
pergunta exata do usuário
- chunks limpos (sem metadata poluindo)
- Metadata vai só pro LLM, não pro re-rank.
🔟 Hybrid retrieval (killer feature)⌗
Antes do re-rank:
- 70% semântico
- 30% keyword (BM25)
- Junta → re-rank Isso resolve casos de:
- nomes próprios
- códigos
- siglas
- cláusulas legais
🛡️ Hacks de Confiabilidade⌗
1️⃣1️⃣ Sempre devolver fonte⌗
-
Cada resposta deve trazer:
-
nome do documento
- página/seção
- Aumenta confiança do usuário em 10x.
1️⃣2️⃣ Falha controlada > resposta errada⌗
Regra de ouro:
“Melhor dizer que não sabe do que responder errado com confiança.”
📦 Hack bônus (produto)⌗
Crie templates reutilizáveis:
- RAG jurídico
- RAG suporte técnico
- RAG saúde
- RAG corporativo interno
Troca só:
- fonte
- prompt
- threshold
- modelo
Aqui vai um passo a passo direto pra implementar um RAG com re-ranking (no estilo do fluxo : Google Drive → embeddings → Supabase → busca → Cohere re-rank → resposta via chat/n8n).
1) Preparar as contas e chaves⌗
- OpenAI: chave de API (para embeddings e/ou chat).
- Cohere: chave de API (para o re-ranker).
- Supabase: criar projeto e pegar URL + anon/service key.
2) Criar o banco vetorial no Supabase⌗
- No Supabase, habilite/instale a extensão pgvector (quando disponível no projeto).
- Crie uma tabela para os chunks, por exemplo:
idcontent(texto do chunk)metadata(json: nome do arquivo, path, data, etc.)embedding(vector com dimensão do seu modelo) 3. Crie uma função/consulta para fazer busca por similaridade (ex.: cosine/inner product).
✅ Ponto crítico: a dimensão do campo vector precisa bater com a dimensão do embedding escolhido.
3) Definir o modelo de embeddings (e manter consistente)⌗
- Escolha 1 modelo (ex.: OpenAI).
-
Use o mesmo modelo em:
-
ingestão (indexação)
- consulta (busca)
4) Montar o fluxo de ingestão (Google Drive → chunks → embeddings → Supabase)⌗
- Trigger: “novo arquivo no Google Drive” (pasta monitorada).
- Extrair texto:
-
PDF/DOC → texto limpo 3. Quebrar em chunks:
-
Ex.: 500–1.000 tokens por chunk
-
overlap: 50–150 tokens (ajuda continuidade) 4. Gerar embeddings para cada chunk. 5. Inserir no Supabase:
-
content,metadata,embedding
5) Montar o fluxo de consulta (Chat → busca → re-rank → resposta)⌗
- Entrada: chat (n8n chat) ou webhook (WhatsApp/Telegram etc.).
- Gerar embedding da pergunta (mesmo modelo do passo 3).
- Busca semântica inicial no Supabase:
-
Buscar top N (ex.: 20) 4. Re-ranking com Cohere:
-
Enviar: pergunta + os N chunks retornados
-
Receber ranking por relevância 5. Filtrar top K:
-
Ex.: manter só os 10 melhores 6. Montar o prompt pro modelo de chat:
-
Pergunta do usuário
- Contexto: top K chunks re-rankeados
- Instruções: “responda só com base no contexto; se faltar info, diga que não encontrou” 7. Responder no chat.
6) Configurar memória e regras do agente⌗
- Memória: ex.: 20 mensagens (ajuste conforme necessidade).
-
Regras:
-
sempre citar fonte (metadata do doc)
- não inventar quando não houver evidência no contexto
7) Testar e calibrar (parte que mais dá resultado)⌗
Ajustes típicos:
- N inicial (20, 30, 50) vs K final (5, 10, 15)
- tamanho do chunk + overlap
- threshold mínimo de relevância (se re-rank score < X, não responde “com certeza”)
- remover duplicatas (chunks muito parecidos)
- logs: guardar pergunta, chunks retornados e scores
8) Boas práticas essenciais⌗
- Consistência do embedding (ingestão = busca) é obrigatório.
- Metadados bem feitos (nome do arquivo, página, seção) facilitam rastreabilidade.
- Indexar só conteúdo útil (tirar rodapé repetitivo, menus, etc.).
- Separar ambientes: teste vs produção.
Os componentes principais desse sistema RAG com reclassificação são:
1. Ingestão de Documentos⌗
- Fonte de dados (ex.: Google Drive)
- Monitoramento de novos arquivos
- Extração de texto (PDF, DOC, etc.)
2. Geração de Embeddings⌗
- Modelo de embeddings (ex.: OpenAI, Cohere, Gemini, LLaMA)
- Conversão do texto em vetores numéricos
3. Armazenamento Vetorial⌗
- Banco vetorial (ex.: Supabase, Pinecone, Postgres, MongoDB)
- Armazena embeddings com dimensões corretas
4. Interface de Consulta⌗
- Chat ou webhook (ex.: n8n chat, WhatsApp, Telegram, API)
- Recebe a pergunta do usuário
5. Busca Semântica Inicial⌗
- Recupera os N vetores mais próximos da consulta (ex.: top 20)
6. Reclassificação (Re-ranking)⌗
- Re-ranker (ex.: Cohere Re-ranker)
- Reordena os resultados por relevância real
7. Filtragem de Resultados⌗
- Seleciona apenas os melhores resultados finais (ex.: top 10)
8. Agente de IA / Modelo de Chat⌗
- Modelo de linguagem (ex.: GPT)
- Usa o contexto reclassificado para gerar a resposta
9. Memória do Agente⌗
- Janela de contexto (ex.: últimas 20 mensagens)
- Mantém continuidade da conversa
10. Configurações & Integrações⌗
- Chaves de API (OpenAI, Cohere, Supabase)
- Configuração de dimensões e modelos consistentes
Finalidade :
Demonstrar e explicar a finalidade de um agente RAG com reclassificação (re-ranking), mostrando como ele melhora a precisão das respostas ao:
- Buscar inicialmente vários resultados relevantes em uma base vetorial usando embeddings
- Reordenar esses resultados com um re-ranker para selecionar apenas os mais relevantes
- Entregar respostas mais precisas, com menos ruído e melhor contexto
O fluxo serve como modelo base reutilizável, permitindo adaptar fontes de documentos, bancos vetoriais, modelos de embedding e canais de chat conforme o caso de uso, garantindo respostas mais confiáveis, eficientes e escaláveis em sistemas RAG.
O Que é o RAG com Reranking
Serve para aumentar a precisão das respostas de um sistema RAG.
De forma simples, ele é usado para:
- Buscar informações em grandes bases de documentos
- Eliminar resultados pouco relevantes
- Entregar apenas os trechos realmente mais relacionados à pergunta do usuário
Na prática, evita respostas genéricas ou confusas, reduz custos e melhora a qualidade das interações em chats, assistentes de IA e sistemas de busca inteligente.
Reclassificação do Assistente RAG⌗
Fluxo de Ingestão de Dados & Vetorização⌗
Monitoramento do Google Drive: Monitora uma pasta em busca de novos documentos e extrai automaticamente o conteúdo textual.
Geração de embeddings com OpenAI: Converte os fragmentos dos documentos em vetores utilizando o modelo de embedding especificado.
Armazenamento vetorial no Supabase: Faz o upload dos fragmentos vetorizados com a configuração correta de dimensão.
Fluxo de Recuperação Reclassificada & Resposta⌗
Disparo pela interface de chat: Recebe consultas via chat nativo do n8n (configurável para webhook ou aplicativos de mensagens).
Busca semântica inicial: Recupera os principais N fragmentos (ex.: 20) do Supabase com base na similaridade dos embeddings.
Reclassificação com Cohere: Processa os fragmentos recuperados pelo re-ranker da Cohere para pontuar a relevância real em relação à consulta.
Filtragem dos melhores resultados: Retorna apenas o subconjunto melhor classificado (ex.: top 10) para reduzir ruído e aumentar a precisão.
Resposta do agente de IA: Fornece o contexto reclassificado ao modelo de chat com uma janela de memória de 20 mensagens.
Modelos de embedding consistentes: Utiliza o mesmo modelo de embedding tanto na ingestão quanto na recuperação para garantir maior precisão.
Caso de Negócio / Caso de Uso⌗
Solução: Um sistema RAG focado em precisão que executa recuperação em dois estágios — primeiro busca semântica, depois reclassificação inteligente — para eliminar resultados marginalmente relevantes e entregar apenas o contexto mais preciso.
Proposta de Valor⌗
Respostas com Maior Precisão: A reclassificação filtra o ruído da busca semântica, retornando fragmentos realmente relevantes em vez de resultados apenas vagamente relacionados.
Eficiência de Custos: Processa menos tokens ao eliminar contextos de baixa qualidade, reduzindo custos de API em 30–50%.
Respostas Mais Rápidas: Janelas de contexto menores e de maior qualidade resultam em processamento mais rápido e menor latência.
Melhor Relação Sinal-Ruído: Elimina falsos positivos causados por sobreposição de palavras-chave em grandes bases de conhecimento.
Compradores Ideais / Setores⌗
Gestão de Conhecimento Corporativo: Grandes organizações com mais de 10.000 documentos, onde a busca semântica retorna muitas correspondências marginais.
Equipes de Suporte Técnico: Documentação de produtos com terminologia semelhante entre funcionalidades, exigindo diferenciação precisa.
Jurídico & Compliance: Bases de contratos onde a sobreposição de palavras-chave gera falsos positivos, mas a precisão contextual é crítica.
Sistemas de Informação em Saúde: Bases médicas onde sintomas e tratamentos semelhantes exigem desambiguação precisa.
Plataformas de E-commerce: Catálogos de produtos com descrições sobrepostas que exigem correspondência precisa às consultas dos usuários.
Bases de Pesquisa Acadêmica: Bibliotecas universitárias que precisam de recomendações precisas de artigos em grandes acervos.
Recursos⌗
Reclassificação do Agente RAG
nm78 - Reclassificação do Assistente RAG
1