00:00Eh, quero mais informações do concurso da SUSEP, tá vendo, ele já tá começando a consultar aqui a base de dados RAGs lá que a gente criou
00:17Seja bem-vindo ao canal da TMC Plus, o seu canal de tecnologia, Inteligência Artificial e automação
00:23Eu sou Anderson Silva e hoje nós vamos fazer um vídeo aqui falando um pouco sobre o RAG com Gemini
00:28Um inscrito do canal, meu xará Anderson da Arte Design, ele pediu pra gente fazer um teste aqui utilizando Gemini em outras funções, porque no vídeo anterior que eu fiz, eu só mostrei ele respondendo coisas básicas, né? Então, eu já tinha avisado para ele que eu tinha feito alguns testes
00:47Utilizando o Gemini para poder fazer RAG, tá? Ele é muito parecido com o da OpenAI, mas ele tem algumas particularidades, tá? Então, eu vou fazer um RAG utilizando o Gemini e o Suabase, que a gente tem que notar aqui de diferente é o seguinte: o Gemini, o tamanho máximo do vetor, ele é 768, tá? Então, até deixei uma observação aqui, mas no caso da OpenAI, ele suporta até 1536
01:13A diferença é o quê? O vetor, quanto maior ele fica, mais preciso, porém, ele consome mais banco de dados, né? E assim, os testes que eu fiz entre OpenAI e Gemini ficaram muito próximos dos resultados uns dos outros, e isso aqui, na verdade, pessoal, isso aqui Você tem que ter, é um trabalho muito difícil, é um trabalho que você tem que ter muito estudo, muito teste, e por isso que eu recomendo você usar o Gemini, porque tá de graça
01:39Então assim, se você não explorar, não estourar o limite de tokens lá que eles te mandam diariamente, você vai conseguir trabalhar e entender como é que funciona também um pouco o RAG, tanto da Open como da Gemini
01:55Eu já deixei esse script aqui pronto para vocês, só clicarem, ele tá lá, você só vai ter que colocar a sua, a sua, eh, autenticação aqui no, no Superbase, tá? Só tem que ter cuidado aqui, porque você tem que estar conectado no, no, no Postgres dos
02:10Próprio Superbase para poder rodar esse script, se o seu Superbase for, você quiser fazer teste com a versão Cloud, é só você pegar esse script aqui todinho, colar aqui, copiar e executar aqui dentro do Superbase, na função SQL editor
02:25Tá, mas como por lá está, tá funcionando aqui para mim, porque o meu é self hosted, funciona normalmente
02:34Se você já tiver utilizando o Supabase para outros testes com, com RAG e com outras, outras IAs, o que você tem que ficar atento é o seguinte: a base que eu vou criar agora é essa chamada aqui, document
02:45Tá, eu vou até excluir ela aqui para mostrar para vocês que o nó que eu deixei lá
02:50Não, no N8N, ele tá rodando e essa função aqui, que é a função da Carry, essa aqui, antes de de de de excluir, você verifica se você não tá utilizando isso em para outra finalidade, tá? Então, vou excluir ela aqui e vou voltar aqui no no no nó, no Supabase, e vou clicar aqui, o teste
03:01Então, ele já criou
03:12Se você voltar aqui, você já vai ver, ó, ele já criou de novo
03:24E aqui a Database também, ele já criou a documents
03:27E vou mostrar aqui também que do outro jeito que eu falei, funciona também, tá? Vou apagar aqui novamente
03:34Então, você pode fazer por lá, mas se você tiver usando a versão Cloud, você pode pegar e rodar o script na mão aqui dentro que ele Também vai, vai criar a base, então vou fazer o teste aqui rapidinho, vou pegar aqui tudo que tá aqui dentro e vou rodar aqui no SQL editor
04:01Como eu falei, tá aqui o script, dar Run
04:10Ok, rodou aqui, tá a tabela documents e a função criada aqui que é necessário para fazer as pesquisas usando o banco vetorial
04:25OK, agora vamos para os próximos passos
04:30Eu fiz um teste aqui, eu fiz um um HG simplesinho utilizando o Google Drive, tá? Essa parte de autenticação aqui é um vídeo, teria que ser um vídeo à parte, mas assim, não tem muita dificuldade em você conectar o seu n8n no, no Google Drive
04:44Então eu fiz aqui um, um, ele tem um gatilho que ele Fica esperando se o arquivo vai ser criado ou se o arquivo vai sofrer um update
04:51Aqui eu vou pegar o ID desses arquivos, aqui, tá? E por que que eu coloquei um loop nesse processo? Porque se você subir três ou quatro arquivos de uma vez, ele vai executar um por vez para evitar de dar problema no banco de dados
05:05Então aqui ele vai executar, aqui é um loop, aqui ele vai pegar o ID, tá? Por quando eu salvo o banco de dados, eu criei essa parte aqui de metadata lá dentro do banco de dados do su base, e aqui eu pego o ID do arquivo
05:24Então, em vez de eu ficar só incrementando o banco, se o arquivo sofrer uma atualização, ele vai, vai Continuar com o mesmo ID, ele vai gerar outro RAG, vai apagar todos os registros antigos e vai criar uma base atualizada
05:39Aqui, ele vai baixar o arquivo direto do Google Drive, formato data
05:42Aqui, eu extraio o PDF para texto e aqui, ele já começa a inserir dentro do banco vetorial os dados do RAG
05:52Tá, aqui você só escolhe a opção aqui normal, ó, models text em bed 004, tem outras aqui, eu não testei
06:02Tá, eu já fui direto nessa aqui, apesar delas serem muito parecidas, mas eu já testei nessa aqui só, e aqui embaixo eu coloquei para vocês fazer um testezinho mostrando o chat funcionando
06:13O que que eu fiz aqui também? Criei essa IA aqui como se ela fosse uma atendente profissional para tirar dúvidas sobre edital de concurso, tá? Para você ver que tá funcionando direitinho, eu vou só abrir uma aba aqui do meu, vou abrir aqui uma aba aqui do meu Google Drive para mostrar aqui que eu criei esse N8N aqui, e aqui tem dois arquivos, tá? Eu vou excluir esses dois arquivos só para mostrar para vocês: mover pra lixeira, mover pra lixeira, lixeira, vamos esvaziar tudo aqui para não ter problema, exclui definitivamente
07:03Então, esse nó aqui, ele fica escutando se vai ter alguma alteração nessa minha pasta que eu coloquei aqui dentro do, do meu Google
07:13Drive, então assim, tudo que a alteração que tiver dentro dessa pasta aqui, ó, conforme está aqui no nó aqui, ó, qualquer alteração, eu tô botei para checar de minuto em minuto, qualquer alteração que tiver aqui, ele vai baixar os arquivos, tá? Então você pode ver que meu banco de dados nesse exato momento tá zerado, botar aqui table editor, veja que não tem nenhuma informação aqui na parte do su base vectory Store, o que a gente tem que configurar e aqui é como eu falei para vocês, vocês têm que ver qual é a melhor forma que vocês têm de trabalhar, eu tô fazendo por, por token, então a cada 1000 tokens ele vai quebrar o meu
07:58Arquivo, e eu coloco aqui quantos tokens que vai ser de overlap, quantos que ele vai pegar pra parte de cima e quanto que ele vai pegar pra parte de baixo
08:08Você pode fazer assim, você pode fazer por palavra, mas por palavra, nos meus testes aqui, muita palavra ficou quebrada, então ele quebrava a palavra no meio e aí ele ficou impreciso, tá? Tem um jeito também de fazer com recursivo, funcionou também, mas o, o melhor resultado que eu tive ainda foi com esse aqui, tá? Então a gente vai fazer um pequeno teste aqui, tá aqui os, a minha pasta do, do on drive, eu vou subir aqui dois arquivos simultâneos só para mostrar para vocês
08:40Aqui eu vou subir um edital aqui da SUSEP, que é um concurso nacional, e KESB, que é da companhia de água e esgoto aqui de Brasília, que eu tô fazendo aqui, fiz um teste aqui com esses PDFs, vou subir aqui, ele tá aguardando aqui o upload
08:57E você já, já pode vir aqui pra área de execution, você pode ver que ele daqui a pouco ele vai começar a rodar aqui sozinho, tá? Então você pode ver que agora ele já começou a rodar o processo, ó, tá rodando aqui, ele já tá fazendo aqui todo o processo aqui de baixar o arquivo, gerar o primeiro loop
09:19Depois eu mostro aqui para vocês como é que ficou depois de executado, tá? Você pode ver que agora que O banco de dados ainda tá vazio, já começou a cadastrar
09:33Então, ele me gerou aqui, já depois de finalizado, ele me gerou 1000, ou 1000 não, desculpa, 168 records, tá? Você pode ver aqui que ele falou, ó: "Peguei da linha 3.99 a 3129, peguei da 3126 a 3157, peguei da 3154 a 3182"
09:51Como eu te falei, ele faz um overlap, né? Ele pega um pedaço de cada uma para poder pensar as palavras que podem ficar quebradas
10:00E aí, se você já vier aqui nesse exato momento aqui agora, ó, ele já executou
10:04Eu vou só fazer aqui um, um negócio aqui para depois a gente estudar direitinho esse, esse fluxo
10:12Vou botar aqui "copo editor" para mostrar para vocês aqui, ó, ele Recebeu um ID, é um file type, um aplicativo PDF
10:22Aqui tá o file ID de cada um, por isso que ele sabe que são dois
10:28Então ele vai rodar aqui dentro do loop, que ele vai apagar
10:29Se existe, com esse, se existe alguma, alguma linha lá do, do RAG com Sid, ele vai apagar
10:37Não tinha nada porque o banco tava limpo
10:41Aqui ele baixa o arquivo, vai baixar aqui, ó, mostrando que ele tá baixando o arquivo que eu subi lá
10:49Aqui ele vai extrair para texto, ele já tá aqui, gerou todo o texto e aqui ele começa a, a parte de quebrar o texto e gravar em banco vetorial
11:03Depois que ele já cadastrou todos os, as linhas lá no, no banco vetorial do Subaser, você já pode vir
11:10Aqui no chat e já fazer uns testes aqui para mostrar que ele, que ele está respondendo, tá? Então você pode até ver aqui a execução
11:17Tô usando Gemini também de forma gratuita
11:22Também estou usando, vou até abrir para vocês aqui, ó, para mostrar que eu estou usando a Flash 001 grátis, tá? Eh, quero mais informações do concurso da SUSEP, tá vendo? Ele já tá começando a consultar aqui a base de dados, RAGs, lá que a gente criou, quais cargos estão em disputa, tá vendo, pessoal? Então aqui é um RAG bem simplesinho, dá para você dar uma, eh, melhorada nesse, nesse, desse fluxo, porque você pode colocar para ele receber textos, a única coisa que Não funcionou bem, e aí é uma limitação do Google Drive, e foi docx, que é do próprio Microsoft
12:27Aí você teria que usar, é, uma conversão externa para pegar esse docx e colocar pra texto, mas como era só para mostrar pro, pro nosso companheiro, aí o Anderson, que funciona também você fazer o RAG utilizando Gemini, e o melhor, de forma gratuita, né? Só para mostrar para vocês aqui também um, um, um detalhamento para mostrar que ele deu os dois documentos, lembra que eu subi dois documentos? Eu vou colocar aqui, "alguma pergunta sobre o outro concurso, né?" Eh, queria sobre o outro edital, melhor dizendo, queria informações sobre
13:00O concurso da CESB, tá vendo? Ele já tá dizendo que isso aqui é um concurso que já até, já foi finalizado, mas ele já trouxe, me trouxe a resposta
13:17Isso aqui você pode utilizar para qualquer finalidade
13:18Estava até pensando em criar um, um site com, com IA para poder responder a perguntas das pessoas que estão com preguiça de ler o edital
13:30E, por exemplo, eu posso perguntar aqui, quais vagas estão em disputa no concurso da CESB, tá vendo, pessoal? Então é isso, espero que o Anderson goste, espero que esse vídeo seja útil para você
13:54Se esse vídeo faz sentido para você, deixa seu like, se inscreve no canal, compartilha esse vídeo com Olá amigos de vocês, e assim, eu ainda estou devendo um outro vídeo também, mas é porque com esses feriados de Carnaval, você pode ver que eu tô um pouco gripado também
14:10Eh, eu acabei não, não publicando vídeos
14:14Agora eu vou voltar a publicar um vídeo por semana
14:15Eu ainda estou devendo um vídeo para um outro companheiro aí também, que quer que faça um vídeo de instalação do Chatot do Evolution para quem já tem aplicações rodando
14:23Tá, eu vou fazer esse vídeo aqui e vou publicar para vocês nas próximas semanas
14:26Então, pessoal, ótimo final de semana para vocês e até a próxima!