1. Implementando RAG com Gemini, N8N e Supabase [0]

thumbnail Este tutorial detalha como implementar um sistema de Geração Aumentada por Recuperação (RAG) usando Gemini, N8N e Supabase, permitindo que a IA consulte e gere conhecimento a partir de bases de dados externas de forma gratuita.

1.1. Configuração Inicial e Criação de Tabelas no Supabase [0]

  1. O que é RAG e por que usar Gemini? [0]
    • RAG (Retrieval-Augmented Generation) permite que a IA consulte bases de dados externas para gerar respostas mais precisas e informadas. [0]
    • Gemini é uma alternativa ao OpenAI para RAG, com a particularidade de ter um tamanho máximo de vetor de 768 (comparado a 1536 do OpenAI). [4]
    • Embora os resultados entre OpenAI e Gemini sejam próximos, Gemini é recomendado por ser gratuito, permitindo explorar o RAG sem custos, desde que os limites diários de tokens não sejam excedidos. [5]
  2. Configuração do Supabase para RAG [7]
    • Um script está disponível para criar as tabelas e funções necessárias no Supabase. [7]
    • Para rodar o script, é preciso estar conectado ao banco de dados Postgres do Supabase. Se estiver usando a versão Cloud, o script pode ser executado diretamente no editor SQL do Supabase. [7]
    • O script cria uma tabela chamada documents e uma função de query essencial para buscas vetoriais. [10]
    • É importante verificar se a tabela documents ou a função query já não estão em uso para outras finalidades antes de excluí-las e recriá-las. [11]

1.2. Integração com N8N e Google Drive [20]

  1. Fluxo de Upload e Processamento de Documentos [20]
    • O processo utiliza o N8N para monitorar o Google Drive em busca de novos arquivos ou atualizações. [21]
    • Um gatilho no N8N detecta a criação ou atualização de arquivos, e um loop processa cada arquivo individualmente para evitar problemas no banco de dados. [22]
    • O ID do arquivo é armazenado nos metadados do Supabase, permitindo que atualizações de arquivos substituam os registros antigos por uma versão atualizada, em vez de apenas adicionar novos dados. [24]
    • O arquivo é baixado do Google Drive, o conteúdo em PDF é extraído para texto, e os dados são inseridos no banco de dados vetorial do Supabase. [26]
    • Para a inserção no banco vetorial, o modelo text-embedding-004 é recomendado, embora outras opções semelhantes existam. [28]
  2. Exemplo Prático: Edital de Concursos [30]
    • Um exemplo prático demonstra a criação de uma IA como atendente profissional para tirar dúvidas sobre editais de concursos. [30]
    • O sistema foi configurado para monitorar uma pasta específica no Google Drive, verificando alterações a cada minuto. [31]
    • O processamento do texto é feito por tokens, com um número definido de tokens para "overlap" (sobreposição) para garantir a precisão. [32]
    • A divisão por palavras foi testada, mas resultou em imprecisão devido a palavras quebradas. A divisão por tokens com overlap apresentou os melhores resultados. [33]
    • Dois arquivos de edital (SUSEP e CESB) foram subidos simultaneamente para o Google Drive para testar o sistema. [34]
    • O N8N iniciou o processamento automaticamente, baixando, extraindo e inserindo os dados no banco vetorial. [36]
    • Após o processamento, 168 registros foram criados no banco de dados, com indicações de quais partes do texto foram processadas e com overlap. [38]

1.3. Testando a IA e Consultas [50]

  1. Interagindo com a IA via Chat [50]
    • Após o cadastro dos dados no banco vetorial do Supabase, é possível interagir com a IA através de um chat. [49]
    • O Gemini é utilizado gratuitamente para responder às consultas, utilizando o modelo flash-001. [50]
    • Ao perguntar sobre o concurso da SUSEP, a IA consultou a base de dados RAG e forneceu informações sobre os cargos em disputa. [51]
    • O sistema pode ser aprimorado para receber textos e lidar com diferentes formatos de arquivo. [52]
    • Arquivos .docx não funcionaram bem diretamente devido a uma limitação do Google Drive, exigindo conversão externa para texto. [52]
  2. Consultas sobre Diferentes Editais [53]
    • Ao perguntar sobre o concurso da CESB, a IA identificou que o concurso já havia sido finalizado, mas ainda assim forneceu a resposta. [53]
    • Essa funcionalidade pode ser aplicada para diversos fins, como a criação de um site que responde perguntas sobre editais para pessoas que não querem ler os documentos completos. [55]
    • Uma pergunta específica sobre as vagas em disputa no concurso da CESB foi respondida com sucesso. [57]

1.4. Considerações Finais e Próximos Passos [58]

  1. Agradecimentos e Próximos Vídeos [58]
    • O criador do vídeo agradece ao espectador e pede para deixar um like, se inscrever no canal e compartilhar o conteúdo. [58]
    • Devido a feriados e a um resfriado, a publicação de vídeos foi afetada, mas a intenção é voltar a publicar um vídeo por semana. [58]
    • Um vídeo futuro abordará a instalação do Chatbot Evolution para quem já possui aplicações rodando. [61]
    • O criador deseja um ótimo final de semana aos espectadores. [63]