Masterclass completa sobre construção de fluxos RAG + Supabase + n8n,…
INEMA
hacks mais práticos para turbinar esse fluxo de RAG + Supabase + n8n e evitar dores de cabeça.
Hacks para RAG + Supabase + n8n⌗
1. Vectorização inteligente⌗
- Sempre use chunk overlap (200 tokens) para garantir continuidade entre trechos.
- Para documentos grandes, ajuste o chunk size: – Textos técnicos → 600–800 tokens – Livros ou PDFs extensos → 1000–1200 tokens
- Grave metadados úteis:
file,page,section,url. Isso facilita citar fonte na resposta.
2. Embeddings com custo baixo e alta eficiência⌗
- Use text-embedding-3-small (1536 dims) para protótipos → barato e rápido.
- Quando a base crescer muito, migre para text-embedding-3-large (3072 dims) → mais precisão.
- Se mudar de modelo, não esqueça de ajustar o campo
vector(dimensões)na tabela do Supabase.
3. Supabase otimizado⌗
- Crie índice vetorial com
ivfflatpara buscas rápidas:
create index documents_embedding_idx
on documents using ivfflat (embedding vector_cosine_ops)
with (lists = 100);
* Ajuste lists para 100–1000 dependendo do tamanho do corpus.
* Use Postgres Chat Memory → memória persistente e compartilhada entre apps (escala melhor que memória simples).
4. n8n organizado⌗
- Nomeie cada nó com clareza: “GDrive Watch”, “Supabase Insert”, “Cohere Re-Rank”, etc.
- Use Execute Workflow para dividir ingestão (fluxo 1) e perguntas/respostas (fluxo 2). Isso reduz falhas.
- Ative logging detalhado em n8n → ajuda a rastrear problemas em embeddings ou consultas.
5. Re-Ranker (Cohere)⌗
- Configure
limit = 20e re-rank Top-K = 4–8 → garante precisão sem gastar tokens extras. - Se não usar Cohere, pelo menos retorne mais chunks (15–20) e faça a seleção via prompt do LLM.
6. Webhooks e integração com front-end⌗
- Conecte o fluxo de resposta a um Webhook → fácil de usar em Bolt ou Lovable.
- Ao publicar, a URL do webhook muda → sempre atualize no front-end.
- Use
Respond to Webhookao final para retorno imediato no chat.
7. Prompt engineering dentro do agente⌗
Exemplo de system prompt para o AI Agent:
Você é um assistente especializado.
Responda somente com base no contexto retornado pelo Supabase.
Sempre cite o arquivo e a página do trecho encontrado nos metadados.
Se não houver informação suficiente, peça ao usuário para enviar documentos adicionais.
→ Isso evita “alucinações” e aumenta confiança.
8. Testes e validação⌗
- Teste sempre com perguntas específicas (“Quais os modelos de \$100M do livro?”).
- Verifique se a resposta traz metadados corretos.
- Valide se a memória do Supabase registra o histórico no c
hat_history.
9. Escalabilidade e custo⌗
- Para bases pequenas → embeddings small + re-ranker.
- Para bases grandes → embeddings large + índice otimizado.
- Para reduzir custo de tokens: use modelos mini (gpt-4.1-mini) para tool calls e só chame modelos maiores na resposta final.
10. Segurança e boas práticas⌗
- Nunca exponha a Service Role Key em front-end → use backend ou n8n como proxy.
- Use .
envou credenciais seguras no n8n. - Faça backup das tabelas (Supabase → Storage + Database dump).
Insert documents e se a tabela/documentos não estão vazios. • Webhook em produção: a URL muda ao publicar; atualize no front-end.
- Exemplos prontos
Exemplo de pergunta ao agente • Pergunta: Quais são os modelos de 100 milhões descritos no material? • Esperado: listar os modelos, mencionar trechos-chave e devolver metadados, ex.: fonte: 100m-models.pdf, página 42.
Exemplo de metadados úteis por chunk
{
"source": "gdrive",
"file": "100m-models.pdf",
"page": 42,
"section": "Stage 2",
"url": "https://drive.google.com/file/d/..."
}
Exemplo de resposta formatada pelo agente • Resumo objetivo do tópico solicitado • 2–4 bullets com insights práticos • Referências entre parênteses usando metadados, ex.: (100m-models.pdf, p.42)
- Perguntas e respostas rápidas
Q: Posso usar outra pasta de origem além do Google Drive? A: Sim. Troque o gatilho por e-mail, Dropbox, HTTP Upload etc. O importante é entregar o binário ao nó Insert documents.
Q: Preciso do Re-Ranker da Cohere? A: Não é obrigatório, mas melhora bastante precisão em bases médias/grandes. Em bases pequenas, pode deixar desabilitado.
Q: Como atualizo documentos já ingeridos? A: Reingira o arquivo e use uma chave de deduplicação nos metadados (ex.: hash do conteúdo) ou crie um fluxo de “update” por ID.
Q: Dá para compartilhar a memória entre apps? A: Sim. Postgres Chat Memory vive no Supabase; qualquer app que aponte para as mesmas tabelas pode ler o histórico.
Q: Como reduzir custo de tokens no chat? A: Restringir Top-K final, resumir trechos antes de enviar ao LLM e usar modelos mini para tool-calls e modelos maiores só na resposta final.
Aqui vai um passo a passo direto, em formato checklist, para você reproduzir o fluxo RAG + Supabase + n8n.
Passo a passo RAG + Supabase + n8n⌗
-
Preparar contas e chaves • Supabase: criar projeto e anotar Project URL, Service Role secret, credenciais Postgres. • OpenAI: chave para embeddings e modelo de chat. • Cohere: chave para Re-Ranker. • n8n: instância rodando e com acesso às credenciais acima. • Google Drive: pasta “Entrada-RAG” para novos PDFs.
-
Criar a tabela vetorial no Supabase No SQL Editor do projeto, rode:
```create extension if not exists vector;
create table if not exists documents ( id bigserial primary key, content text, metadata jsonb, embedding vector(1536) -- text-embedding-3-small );
create index if not exists documents_embedding_idx on documents using ivfflat (embedding vector_cosine_ops) with (lists = 100);```
Dica: mantenha metadados como {"source":"gdrive","file":"nome.pdf","page":12}.
- Fluxo 1 no n8n: ingestão e vetorização
Ordem dos nós:
a) Google Drive → Watch for new files
• Folder: sua pasta “Entrada-RAG”
• Event: File created
b) Google Drive → Download file
• File: ID do nó anterior
c) Supabase Vector Store → Insert documents
• Credential: Service Role do seu projeto
• Host/Project URL: https\://
.supabase.co • Table: documents • Data loader: Default • Data type: Binary (arquivo do Drive) • Text splitter: Recursive – Chunk size: 1000 tokens – Chunk overlap: 200 • Embedding: OpenAI → text-embedding-3-small
Teste: solte um PDF na pasta e verifique no Supabase > Table editor > documents se surgem linhas.
- Fluxo 2 no n8n: chat com memória + busca vetorial Ordem dos nós: a) Chat Trigger b) AI Agent • Model: gpt-4.1-mini (exige tool calling) • System prompt (exemplo):
Você é um assistente especializado. Responda com base no contexto retornado pela ferramenta Supabase.
Cite trechos relevantes e inclua fonte e página quando existirem nos metadados.
Se não houver contexto suficiente, peça para o usuário enviar documentos.
• Memory: Postgres Chat Memory – Host/Port/DB/User/Password: pegue em Project Settings > Connect > psql – Table prefix: n8n_chat (padrão OK) – Context window: 45 c) Tool → Supabase Vector Store (busca) • Credential: a mesma do Supabase • Table: documents • Limit: 20 • Re-rank results: habilitado – Re-ranker: Cohere – Top-K final: 4 a 8 (ajuste fino) • Embedding para query: OpenAI text-embedding-3-small d) Webhook Respond (opcional) • Para enviar a resposta do agente a um front-end (Bolt/Lovable) via webhook.
-
Conectar um front-end (opcional, Bolt/Lovable) • Adicione um Webhook (POST) no início do Fluxo 2. • No app front-end, envie {message: "..."} para a URL do webhook. • Use Respond to Webhook ao final para devolver a resposta do agente.
-
Validação rápida • Supabase: confira que documents tem novas linhas a cada PDF ingerido. • n8n: nos Executions/Logs do AI Agent, veja a sequência: Chat → Tool call Supabase → Re-rank → Resposta. • Faça uma pergunta específica e confira se os metadados retornam fonte/página esperadas.
-
Boas práticas e ajustes • Metadados: sempre grave filename, page, section, url. • PDFs com OCR ruim: passe por OCR antes (ex.: Tesseract) para melhorar a extração. • Tuning do splitter: para textos curtos, reduza chunk size (600–800) e mantenha overlap 15–25%. • Embeddings: troque para text-embedding-3-large se precisar de alta precisão (mude vector(3072) e reindexe). • Index ivfflat: ajuste lists conforme tamanho do corpus (100–1000). • Custo/latência: aumente o limit inicial para 20–30 e mantenha Top-K final 4–8 com re-rank da Cohere.
-
Erros comuns e correções • Falha ao conectar Postgres Memory: confirme host/port/db/user e o password do Database (não confundir com Service Role). • Dimensão do vetor errada: o campo embedding precisa bater com o modelo escolhido (1536 para text-embedding-3-small). • Nada retorna na busca: verifique se embeddings foram criados no
Resumo completo do conteúdo da masterclass sobre RAG & Supabase:
Visão Geral⌗
Como usar Supabase e RAG (Retrieval-Augmented Generation) para criar fluxos de trabalho de automação mais poderosos, escaláveis e monetizáveis. Ele ensina como vectorizar documentos (PDFs, livros, etc.) em Supabase, consultar esses dados de forma eficiente e conectar tudo ao n8n, Bolt e Lovable.
Pontos Principais⌗
- Objetivo da Masterclass
- Ensinar a vectorizar qualquer arquivo no Supabase.
- Mostrar como recuperar dados via RAG.
- Conectar Supabase a n8n e a outros apps.
- Criar fluxos que podem ser usados em negócios e automações de IA.
- RAG (Retrieval-Augmented Generation)
- Resolve a limitação de contexto dos LLMs (que não lembram tudo após certo limite de tokens).
- Estratégia: dividir documentos em pequenos trechos (chunks), buscar apenas os relevantes e re-ranquear (filtrar os mais úteis).
- Garante respostas mais rápidas, relevantes e consistentes.
- Supabase como Banco de Dados Vetorial
- Funciona como um Excel turbinado (armazenamento de conteúdo, metadados e embeddings).
- Estrutura básica: tabela de documentos com ID, conteúdo, metadados e vetores.
- Permite consultas rápidas e escaláveis.
- Integração com n8n
- Exemplo: monitorar uma pasta no Google Drive.
- Sempre que um PDF é adicionado, ele é baixado, processado, vectorizado e armazenado no Supabase.
- Usa “Recursive Text Splitter” para criar chunks de \~1000 tokens com sobreposição de contexto.
- Conexão feita por credenciais de API e SQL gerado automaticamente (pode usar ChatGPT para escrever SQL).
- Ferramentas Extras
- Re-Ranker (Cohere): seleciona os melhores trechos entre os retornados pela busca.
- OpenAI Embeddings: gera os vetores dos documentos e consultas.
- Postgres Chat Memory (Supabase): memória compartilhada e escalável entre múltiplos apps, mais robusta que a memória simples.
- Exemplo Prático
- Vetorização de livros do Alex Hormozi no Supabase.
- Criação de um agente capaz de responder perguntas sobre os livros, consultando o banco vetorial.
- Conexão do agente ao Supabase + Cohere Re-Ranker para aumentar precisão.
- Integração com Bolt/Lovable para interface de chatbot.
- Conexão com Webhooks
- Mensagens e respostas do agente podem ser enviadas via webhook.
- Permite conectar a outros apps e escalar as automações.
Conclusão⌗
A masterclass mostra:
- Como vectorizar documentos no Supabase.
- Como usar RAG para consultas inteligentes.
- Como integrar tudo ao n8n, Bolt e Lovable.
- Como adicionar memória escalável e re-rankers para respostas mais confiáveis.
É um guia prático e passo a passo de como transformar dados brutos (PDFs, textos, livros) em agentes inteligentes de IA com memória que podem ser aplicados em qualquer negócio.
Recursos 🧽 RAG & Supabase Masterclass 💸 Modelos de 100 milhões 💸 Ofertas de 100 milhões 💸 Lead Magnets de 100 milhões
🔥 n8n: https://n8n.io 🦸♀️ Supabase: https://supabase.com/ 📊 Cohere: https://dashboard.cohere.com/ 🔮 Loveable: https://lovable.dev/ ⚡️Bolt: https://bolt.new/
Masterclass RAG & Supabase
1