Documentação técnica de uma solução de RAG básico (nm76) usando n8n +…
INEMA
Hacks de Ingestão (dados melhores → respostas melhores)⌗
1) Chunk híbrido (não use só tamanho fixo)⌗
-
Combine:
-
quebra por parágrafo
- limite de tokens (ex.: 500–800)
- Evita chunks sem sentido ou cortados no meio.
Hack: Use overlap pequeno (10–20%) para não perder contexto entre chunks.
2) Metadados inteligentes (pouca gente usa direito)⌗
Sempre salve:
- nome do arquivo
- tipo do documento
- data
- seção ou título (se existir)
Hack:
Inclua um campo tipo source_summary (ex.: “Manual técnico – Segurança”) e injete isso no prompt do agente.
3) Pré-limpeza do texto⌗
Antes de gerar embeddings:
- remova rodapés repetidos
- números de página
- headers automáticos
Hack: Esses ruídos “poluem” a busca semântica mais do que parece.
Hacks de Recuperação (buscar melhor, não mais)⌗
4) Dois estágios de busca⌗
- Busca vetorial (Pinecone)
- Re-ranking com o LLM (GPT)
Hack simples: Recupere 10 chunks → peça para o GPT selecionar os 3 mais relevantes antes de responder.
5) Top-K dinâmico⌗
- Pergunta simples → K = 3
- Pergunta complexa → K = 6 ou 8
Hack: Use tamanho da pergunta ou presença de “por que / como / compare” para decidir o K.
6) Filtro por metadados⌗
- Perguntas técnicas → só docs técnicos
- Perguntas legais → só contratos/políticas
Hack: Um classificador simples de intenção antes da busca já resolve 80% disso.
Hacks de Prompt (onde a mágica acontece)⌗
7) Prompt anti-alucinação (obrigatório)⌗
Inclua sempre algo como:
“Responda apenas com base no contexto fornecido. Se a resposta não estiver no contexto, diga que não encontrou.”
Hack: Isso reduz alucinação mais do que trocar de modelo.
8) Mostrar fontes na resposta⌗
Peça para o agente retornar:
- resposta
- fonte (arquivo + trecho)
Hack: Aumenta confiança do usuário e reduz retrabalho humano.
9) Modo explicação vs modo resposta curta⌗
Use um switch:
- “Explique detalhadamente”
- “Responda em 3 linhas”
Hack: Mesmo RAG, contextos diferentes → respostas melhores.
Hacks de Memória e Conversa⌗
10) Memória só para intenção, não para fatos⌗
- Não confie na memória para dados factuais.
-
Use memória só para:
-
assunto atual
- preferência do usuário
Hack: Limpe memória quando mudar totalmente de tema.
11) Resumo automático da conversa⌗
A cada X mensagens:
- gere um resumo curto
- guarde como “estado atual”
Hack: Mantém contexto sem estourar tokens.
Hacks de Arquitetura (escala e produto)⌗
12) Separar index por cliente⌗
- Um index por cliente ou por projeto.
Hack: Evita vazamento de dados e facilita billing.
13) Index “quente” + “frio”⌗
- Docs recentes → index rápido
- Docs antigos → index secundário
Hack: Consulta primeiro o quente, depois o frio se precisar.
14) Fallback inteligente⌗
Se Pinecone não retornar nada:
-
responda com:
-
“Não encontrei nos documentos”
-
- sugestão de próximos passos
Hack: Nunca deixe o bot “inventar”.
Hack final (mentalidade certa)⌗
RAG bom não é modelo melhor — é dado melhor, chunk melhor e prompt melhor.
Passo a passo (como o fluxo roda)⌗
Fluxo A — Ingestão e Vetorização (quando você envia documentos)⌗
- Dispara no upload
- Você faz upload do arquivo (n8n ou webhook).
- Extrai texto do arquivo
- Detecta tipo do arquivo e transforma em texto.
- Quebra em chunks
- Divide o texto em blocos menores.
- Gera embeddings
- Cada chunk vira um vetor (embedding).
- Salva no Pinecone
- Envia vetores + texto + metadados para um index.
✅ Resultado: seu documento vira uma “biblioteca” pesquisável por significado.
Fluxo B — Pergunta e Resposta (quando alguém consulta o conhecimento)⌗
- Dispara no chat
- Usuário envia pergunta (chat/webhook/WhatsApp/Telegram).
- Vetoriza a pergunta
- Converte a query em embedding.
- Busca semântica no Pinecone
- Recupera os chunks mais próximos (top-K).
- Monta contexto + chama o GPT-4
- Envia pergunta + chunks recuperados + memória curta (10 mensagens).
- Entrega a resposta
- Retorna no canal original.
✅ Resultado: o bot responde com base nos documentos, não “no achismo”.
Pontos críticos pra dar certo (os “cuidados”)⌗
- Embeddings devem bater: modelo de embeddings do documento = modelo de embeddings da pergunta.
- Index correto: o fluxo de ingestão e o agente têm que apontar pro mesmo index/banco.
- Metadados bem feitos: ajudam em auditoria e filtros (ex.: por arquivo, por data).
- Top-K equilibrado: pouco contexto pode faltar; demais pode “distrair” o modelo.
Componentes (o que existe na solução)⌗
1) Entrada de arquivos (Upload/Webhook)⌗
- Onde o documento entra.
-
Pode ser:
-
Upload nativo do n8n (para testes)
- Webhook (front-end próprio tipo Lovable/Bolt/etc.)
- Outros conectores
2) Processador de arquivo (Binário → Texto)⌗
- Recebe o arquivo “em binário”.
- Detecta o MIME type (PDF, DOCX, TXT…)
- Extrai o texto bruto automaticamente.
3) Text Splitter (quebrar em “chunks”)⌗
- Divide o texto em partes menores e “ideais” para IA.
- Normalmente usa Recursive Text Splitter (quebra por parágrafos / frases tentando manter contexto).
-
Isso é essencial para:
-
melhorar a busca semântica
- evitar estourar limite de tokens
4) Embeddings (OpenAI)⌗
- Converte cada chunk em um vetor numérico (embedding).
- Usa um modelo tipo embedding-small.
- Importante: o mesmo modelo deve ser usado depois também para a pergunta.
5) Banco vetorial (Pinecone)⌗
-
Armazena:
-
vetor do chunk
- texto original do chunk
- metadados (nome do arquivo, página, data, etc.)
- Permite buscar por similaridade.
6) Entrada de perguntas (Chat/Webhook/WhatsApp/Telegram)⌗
- Onde o usuário pergunta.
-
Pode ser:
-
Chat do n8n (para testes)
- Webhook (app próprio)
- WhatsApp/Telegram integrados ao n8n
7) Embedding da pergunta (Query Vectorization)⌗
- A pergunta vira um embedding (vetor).
- Tem que usar o mesmo modelo da base.
8) Retriever (Busca semântica no Pinecone)⌗
- Compara o vetor da pergunta com os vetores armazenados.
- Retorna os top-K chunks mais relevantes (ex.: 3, 5, 10).
9) LLM / Agente (GPT-4)⌗
-
Recebe:
-
a pergunta
- os chunks recuperados (contexto)
- histórico de conversa (memória)
- Gera a resposta final.
10) Memória (context window)⌗
- Mantém um histórico curto (ex.: 10 mensagens).
- Ajuda o bot a continuar o assunto sem o usuário repetir tudo.
11) Saída (Response Delivery)⌗
-
A resposta volta pelo mesmo canal:
-
chat do n8n
- webhook
- WhatsApp/Telegram
Configuração Simples de RAG⌗
Fluxo de Ingestão de Dados & Vetorização⌗
Disparo no upload de arquivos: Aceita documentos por meio da interface de upload do n8n ou via webhook de front-ends personalizados.
Processamento de dados binários: Detecta o tipo MIME e extrai automaticamente o texto bruto.
Divisão recursiva de texto: Divide os documentos em tamanhos de chunks ideais para geração de embeddings.
Geração de embeddings com OpenAI: Converte os chunks em vetores utilizando o modelo embedding-small.
Armazenamento vetorial no Pinecone: Envia os chunks vetorizados para o índice designado, juntamente com metadados.
Fluxo Inteligente de Recuperação & Resposta⌗
Disparo pela interface de chat: Escuta consultas via chat do n8n, webhook, WhatsApp ou Telegram.
Vetorização da consulta: Converte a pergunta para o formato de embedding correspondente.
Busca semântica: Consulta o Pinecone para encontrar os chunks mais relevantes com base na similaridade.
Resposta de IA com consciência de contexto: Fornece os chunks recuperados + a pergunta ao GPT-4, com uma janela de memória de 10 mensagens.
Entrega da resposta: Retorna a resposta pelo canal de comunicação original.
Caso de Negócio / Caso de Uso⌗
Solução: Transformar documentos estáticos em uma base de conhecimento inteligente e conversacional — permitindo consultar documentação interna por linguagem natural, sem buscas manuais.
Proposta de Valor⌗
Acesso Instantâneo ao Conhecimento: Obtenha respostas precisas em segundos, em vez de horas de busca manual em arquivos.
Redução da Carga de Suporte: Desvia perguntas repetitivas para a IA, reduzindo custos de suporte em 40–60%.
Respostas Sempre Atualizadas: Indexação automática de documentos atualizados, sem necessidade de re-treinamento de modelos.
Base Escalável: Expande facilmente com ferramentas adicionais, entradas multimodais ou raciocínio avançado.
Compradores Ideais / Indústrias⌗
Equipes de Suporte ao Cliente: Autoatendimento 24/7 para grandes bases de ajuda e FAQs.
Serviços Profissionais: Referência rápida para grandes volumes de processos, precedentes legais e documentos de clientes.
Organizações de Saúde: Acesso compatível com HIPAA a protocolos, pesquisas e materiais de educação ao paciente.
TI & RH Internos: Automatização de dúvidas de funcionários sobre políticas, benefícios, onboarding e documentação técnica.
Instituições Educacionais: Acesso instantâneo de estudantes a materiais de cursos, ementas e artigos de pesquisa.
Equipes de Produto SaaS: Assistentes de IA integrados ao produto para documentação e referências de API.
Manufatura & Operações: Acesso rápido a manuais de equipamentos, procedimentos de segurança e documentos de conformidade.
O que é a solução⌗
A solução é um RAG (Retrieval-Augmented Generation) simples e fundamental, pensado como uma base sólida para criar assistentes de IA personalizados para clientes ou produtos.
Ela funciona em dois fluxos principais:
- Ingestão e vetorização de dados
- O usuário faz upload de arquivos.
- O sistema extrai o texto, divide em partes menores (chunks), gera embeddings com OpenAI e armazena tudo em um banco vetorial (como o Pinecone).
- Recuperação e resposta inteligente
- O usuário faz uma pergunta via chat (n8n, webhook, WhatsApp, Telegram etc.).
- A pergunta é vetorizada, comparada com os dados armazenados no banco vetorial e os trechos mais relevantes são recuperados.
- A IA usa esse contexto para gerar uma resposta precisa, mantendo uma memória de conversa configurável (ex.: últimas 10 mensagens).
Em resumo⌗
É uma estrutura inicial de RAG, fácil de configurar e expandir, que transforma documentos em uma base de conhecimento conversacional, permitindo consultas em linguagem natural. A partir dela, é possível adicionar novos canais, ferramentas, tipos de dados e funcionalidades conforme a necessidade do cliente ou do produto.
nm76 - RAG Basico
1