Aula/blueprint sobre RAG (Retrieval-Augmented Generation) multimodal…
INEMA
Aqui está um resumo em nível diretoria sobre os dois workflows de RAG:
1. Workflow Multimodal RAG (Blueprint 2.0)⌗
Objetivo: Automatizar a ingestão e consulta de documentos complexos (PDFs com texto, tabelas e imagens) e permitir que colaboradores façam perguntas diretas a esses conteúdos através de um chat inteligente.
O que ele faz em alto nível:
- Monitora uma pasta do Google Drive para novos documentos.
- Processa os arquivos com OCR (Mistral) para extrair texto e descrições de imagens.
- Converte imagens em links acessíveis (Supabase Storage).
- Divide o texto em partes menores, gera embeddings (OpenAI) e armazena no Supabase (banco vetorial).
- Oferece uma interface de chat onde um agente de IA busca informações nos documentos e responde perguntas.
- Move os arquivos processados para uma pasta de “concluídos” no Drive.
Valor para a gestão:
- Centraliza conhecimento corporativo disperso em documentos.
- Facilita consultas rápidas, reduzindo tempo gasto com busca manual.
- Melhora decisões estratégicas com acesso imediato a informações críticas.
- Possibilita uso multimodal (texto + imagem), ampliando aplicações em áreas técnicas e regulatórias.
2. Workflow Simples OCR Ingestion (Blueprint 1.1)⌗
Objetivo: Fornecer uma solução enxuta para leitura e consulta de documentos, focada apenas em OCR e armazenamento de conteúdo textual.
O que ele faz em alto nível:
- Recebe um documento (via URL ou upload).
- Executa OCR (Mistral) para extrair o texto.
- Adiciona descrições básicas de imagens dentro do texto (sem upload separado).
- Gera embeddings (OpenAI) e salva no Supabase para consultas semânticas.
- Permite interação via chat com agente de IA que responde perguntas com base nos dados.
Valor para a gestão:
- Mais simples de implementar e manter.
- Adequado para cenários onde apenas o texto é relevante (ex.: manuais, FAQs, documentos internos).
- Menor custo e consumo de recursos comparado ao fluxo multimodal.
Comparativo Executivo⌗
- Multimodal RAG → Robusto, cobre cenários complexos (texto, imagens, tabelas), ideal para áreas técnicas, compliance, engenharia ou saúde.
- OCR Simples → Enxuto, foca em texto, mais rápido e barato para implantar, suficiente para áreas administrativas, jurídicas ou suporte.
ingestão.
-
Supabase Storage e vetor store Exemplo Bucket público taia-rag; tabela documents criada pelo Quickstart LangChain. Resposta Envie as imagens para o bucket e salve as URLs públicas nos metadados; faça upsert dos embeddings na documents.
-
Chaves e credenciais Exemplo Mistral API key sem “Bearer ”; OpenAI API ativa; Supabase base URL + service role secret. Resposta Crie credenciais separadas por provedor no n8n e referencie no(s) nó(s) correspondente(s).
-
Chat com dados Exemplo Abrir a URL do when chat message received e perguntar: “Liste as principais conclusões do PDF X e mostre qualquer imagem da página 3 relacionada.” Resposta O agente busca no Supabase por similaridade, insere as imagens relevantes via URL pública e responde com base nos trechos recuperados.
-
Otimização de memória no n8n Cloud Exemplo Quebrar OCR e parsing em sub-workflows e chamar via Execute Workflow. Resposta Ao encerrar o sub-workflow, a memória é liberada; isso evita quedas por RAM.
-
Re-ingestão e atualização Exemplo Detectar alterações por hash do conteúdo do PDF; se mudou, reprocessa. Resposta Garante consistência do vetor store e evita duplicidade.
-
Observabilidade Exemplo Logar consulta, documentos retornados, score, latência total e por etapa. Resposta Com isso você calibra chunk size, k e re-rank e reduz custo/latência.
Vou resumir e transformar em guia prático o blueprint Multimodal RAG em n8n que você enviou, e já deixar exemplos e respostas no final para acelerar sua implementação.
Resumo completo
-
O que este fluxo faz Um RAG multimodal no n8n que lê, analisa e consulta PDFs com texto, imagens e tabelas, exibe as imagens relevantes no chat e usa um vetor store no Supabase para buscas semânticas. Integra Google Drive (ingestão e mova-para processados), Mistral (LLM), OpenAI (embeddings ou agente), e Supabase (armazenamento, vetor e bucket público). Há também um fluxo alternativo de OCR simples.
-
Como funciona em alto nível a) Disparo: Google Drive Trigger observa a pasta Multimodal RAG. b) Ingestão: ao detectar PDF, extrai conteúdo multimodal, gera embeddings e grava no Supabase (tabela documents). c) Armazenamento de mídia: envia imagens para um bucket público do Supabase Storage. d) Chat: você recebe uma URL pública de chat (nó when chat message received) para conversar com os dados; o agente consulta o vetor store, reune contexto e responde. e) Pós-processo: arquivo é movido para a pasta processed no Drive. f) Observação: em n8n Cloud há limites de memória; o documento sugere dividir partes pesadas em sub-workflows ou hospedar por conta própria.
-
Checklist de setup rápido Google Drive • Criar pasta Multimodal RAG e subpasta processed • Selecionar credenciais do Drive nos nós de entrada e saída • Configurar o Trigger para escutar a pasta principal e o nó final para mover para processed
Supabase • Criar projeto e um bucket público no Storage (ex.: taia-rag) • Pegar base URL e service role secret • Executar o Quickstart LangChain para criar a tabela documents • Selecionar a tabela documents no nó Supabase Vector Store
LLMs e embeddings • Mistral: criar API key em console.mistral.ai e vincular nos nós de requests • OpenAI: credenciais ativas para embeddings e/ou agente no fluxo
Chat • Pegar a URL pública no nó when chat message received e abrir no navegador para conversar com os PDFs
-
Nós típicos do fluxo (modelo mental) • Google Drive Trigger → Baixar arquivo → Extrair conteúdo (texto + imagens) → Upload de imagens para Storage (URL pública) → Gerar embeddings → Upsert no Supabase Vector Store → when chat message received (rota de chat pública) → Agente RAG que faz retrieve no Supabase + gera resposta com Mistral/OpenAI → Google Drive Move to processed
-
Boas práticas e hacks aplicáveis • Separar ingestão pesada em sub-workflows para liberar RAM no n8n Cloud • Padronizar chunking por tipo de conteúdo: texto corrido vs tabelas • Gravar metadados úteis no vetor store (pasta, nome do arquivo, data, seção, número de página) para filtros precisos • Salvar URLs públicas das imagens no próprio payload de chunks para o agente decidir quando exibi-las no chat • Usar um re-rank leve (por ex., um scorer adicional) quando a base começar a crescer • Habilitar cache de respostas de consultas frequentes • Criar rotinas de re-ingestão para documentos atualizados (hash de conteúdo para detectar mudanças) • Logging de consultas e avaliação: medir hit rate\@k, MRR e latência por etapa
-
Erros comuns que já ficam resolvidos • Pasta errada no Trigger do Drive: confirme o folderId selecionado • Bucket não público no Supabase: imagens não aparecem no chat • Tabela documents não criada: rodar o Quickstart LangChain • Chave Mistral com “Bearer ” na frente: usar só o token puro • Service role ausente: upsert no vetor store falha • Explodir memória em n8n Cloud: mover OCR e parsing pesado para sub-workflow
-
Fluxo alternativo Se você só precisa de OCR sem upload de imagens para o chat, use o workflow alternativo mais simples apontado no material. Mantém as mesmas credenciais (Mistral, Supabase, OpenAI), mas reduz complexidade.
Tópicos com exemplos e respostas
- Estrutura de pastas no Drive Exemplo Multimodal RAG/ • processed/ Resposta No Trigger, aponte para Multimodal RAG; no nó final, mova o arquivo para processed após a
Vamos mergulhar em RAG (Retrieval-Augmented Generation). Eu sugiro a gente organizar a conversa em blocos para ficar bem claro e prático:
1. O que é RAG⌗
RAG é uma arquitetura que combina recuperação de informações (retrieval) com geração de texto (generation).
- Em vez de o modelo depender apenas da memória interna (treinamento), ele busca dados externos em bancos de conhecimento (ex: documentos, PDFs, bases vetoriais).
- O fluxo é: Pergunta → Busca nos dados (retrieval) → Contexto entregue ao LLM → Resposta mais precisa.
Exemplo: Pergunta: "Quais são os sintomas iniciais de diabetes segundo o manual da OMS?" → O RAG procura no documento da OMS (embeddings) → Envia o trecho relevante ao LLM → O modelo gera uma resposta precisa e citando a fonte.
2. Principais componentes⌗
- Indexação – transformar documentos em embeddings vetoriais (ex: OpenAI Embeddings, Cohere, HuggingFace).
- Armazenamento – salvar embeddings em um banco vetorial (Pinecone, Weaviate, Milvus, Supabase pgvector).
- Recuperação – encontrar os trechos mais relevantes usando similaridade semântica.
- Geração – enviar a pergunta + trechos relevantes para um LLM (GPT, Claude, Gemini).
- Orquestração – controlar todo o fluxo com ferramentas como n8n, LangChain, LlamaIndex.
3. Onde o RAG é útil⌗
- Atendimento ao cliente com base em FAQs ou manuais.
- Medicina: análise de diretrizes clínicas (como teu projeto de avaliação de feridas).
- Jurídico: consultas rápidas em leis ou contratos.
- Corporativo: base de conhecimento interna, manuais e treinamentos.
- Educação: tutor personalizado com material da escola/universidade.
4. Limitações e desafios⌗
- Qualidade dos dados: se os documentos estiverem desorganizados, as respostas também serão.
- Chunking: definir o tamanho certo dos pedaços de texto para indexar (nem muito longo nem muito curto).
- Atualização: manter a base vetorial sincronizada com novos documentos.
- Custo: consultas frequentes a embeddings e LLMs podem ficar caras se não houver otimização.
5. Hacks e boas práticas⌗
- Usar metadata filters (tags como autor, data, categoria) para melhorar a recuperação.
- Criar camadas de memória: curto prazo (Redis) e longo prazo (Supabase ou Pinecone).
- Adotar re-ranking (segunda filtragem com outro modelo) para aumentar a precisão.
- Cachear respostas frequentes.
- Avaliar com métricas: recall\@k, precision, MRR para medir se o sistema realmente recupera bem.
ap57 - RAG com Experts Multimodal
1