Tutorial Avançado: Agente IA com n8n, vector Supabase e Redis memory.

2.37k views3716 WordsCopy TextShare
Laboratório No Code
Aprenda a construir um agente de inteligência artificial avançado usando n8n, Supabase, e Redis para...
Video Transcript:
E aí pessoal tudo bem com vocês aqui é o João Paulo Então hoje nós vamos fazer mais um projeto incrível que envolve Inteligência Artificial nós vamos estudar aqui as ferramentas do n8n novas ferramentas mas mais do que estudar nós vamos construir projetos reais já já vou te mostrar aqui na tela o que nós vamos fazer com essas novas ferramentas aí de Inteligência Artificial mas antes eu gostaria de te dar uma dica essa semana um dos inscritos aqui do meu canal e a gente acabou de lançar um vídeo ensinando e como fazer uma integração lá com
Defy com o WhatsApp e banco de dados multiempresa foram três vídeos que nós construímos esse projeto tá aqui no canal caso você tenha interesse em conhecer tá na descrição e esse inscrito Ele me falou que ele mostrou esse projeto lá pros conhecidos dele e pros contatos dele e ele teve demanda de quatro projetos para ele fazer ele até me convidou perguntou se eu tinha interesse em alguma parceria eu no momento eu não tô tendo tempo que eu tô trabalhando em um projeto mas isso serve como alerta pra gente pra gente entender o momento que nós
estamos vivendo ah a inteligência artificial é algo muito novo esses agentes esse atendimento por por inteligência artificial é uma coisa nova eu vejo um mercado que tá só começando um mercado que vai crescer muito Então vale a pena investir seu tempo seu esforço assim como ele investiu fez todo o projeto inteiro lá e já tá recebendo propostas e é um projetinho bem legal se você quiser ver e tá aí na na descrição do vídeo a Playlist E hoje nós vamos continuar estudando essas novas ferramentas aí e botando na prática mais do que ficar só olhando
ferramenta nós queremos construir projetos reais esse canal é focado em flutterflow que é para você desenvolver lá o front end né e agora Agora nós estamos vendo ferramentas de backend essas integrações Inteligência Artificial mas futuramente vão ter novas aulas de flutter Flow mas o momento agora é é tempo de aprender essas novidades aí pra gente poder ganhar dinheiro também né ess ser é um conteúdo diferenciado um conteúdo que agrega conhecimento e valor o mínimo que eu peço para vocês é por favor deixa um like aí para fortalecer o o nosso canal que ainda é pequeno
e também se possível final do vídeo caso você goste do conteúdo deixar um comentário para ajudar no enganjamento para o vídeo ser um pouco mais relevante alcançar mais pessoas Então tá bom vamos aqui pra tela do meu computador pra gente conhecer o projeto que nós vamos trabalhar hoje então pessoal só para alinhar as expectativas o que que nós vamos construir hoje nós vamos construir um agente de atendimento com inteligência artificial e utilizando as ferramentas do n8n o diferencial aqui nós vamos utilizar o banco de dados vetorizados se você não sabe que é isso eh depois
vou passar um conceito rápido sobre o que é isso e as vantagens de usar um banco de dados vetorizados nós vamos utilizar o supabase e também a memória do nosso agente do nosso agente atendimento será gravada no Reds também eu vou ensinar essa conexão lá então aqui só um um breve resuminho aqui ó do que temos aqui nós temos um gestor de memória para gerir todas essas conversa que tá conectado aqui com o Reds é nós vamos ter se tá zero aqui por exemplo ele vai salvar todo o histórico você nunca vai perder esse histórico
dessa conversa com o cliente aqui eu coloquei um gatilho de chat mas pode ser o WhatsApp por exemplo ou qualquer outro gatilho aqui poderia ser para responder um e-mail para responder o instagram ou qualquer outra coisa e e aqui ó que nós temos um question and answer e perguntas e respostas nós temos a inteligência artificial conectada aqui que pode ser qualquer uma aqui eu conectei o Gemini da Google mas pode ser você pode mudar aqui Conforme você queira e o diferencial para mim tá aqui ó no banco de dados vetorizados que nós estamos conectando aqui
com o supabase e estamos usando o nosso próprio banco de Vetor resumidamente se você não sabe o que é vetor uma definição simpl assim só para você para fazer sentido na sua mente é uma forma do computador enxergar as coisas por exemplo se eu tenho eh vários dados coloridos nós enxergamos as cores e esses dados se eu tivesse se pedisse para mim separar os dados vermelhos eu teria que selecionar todos os vermelho o vetor ele atribui um número para cada um desses dados por exemplo o vermelho vai ser um o amarelo dois e o azul
trê então o computador enxerga só esses números ele não vai enxergar a cor e então eh se ele precisar separar os dados vermelhos ele separa todos os os números um e assim contexto também e o assistente quando você manda uma mensagem pro assistente o que que ele faz primeiro ele transforma o seu todo o contexto lá em vetor para depois ele processar e ver a resposta adequada nesse caso aqui você já vai ter tudo em vetor a vantagem é que você tendo tudo em vetor você vai gastar menos tokens a vai ser mais assertivo nas
respostas e ele tá trabalhando só com o contexto que você lançou aqui ele não vai tá trabalhando com todo o contexto de internet tudo que ele tem então ele vai ser mais assertivo naquilo que você quer responder e você vai ter todo esse controle aqui no seu banco de dados Então nós vamos criar Esse projeto aí tudo que você lançar que você colocar no banco de dados como como referência como texto ele vai responder em cima disso do seu banco de vetores é aqui tá o chat mas também nós vamos precisar de uma estrutura pra
enviar esse esses dados lá pro pro suabase primeiro nós vamos criar essa base lá vamos criar a estrutura para enviar essas informações para lá e depois nós vamos criar aqui esse projeto para Responder questões do qualquer assunto que você queira aí e responder por exemplo esse aqui é um é um vendedor de curso de violão Boa tarde Boa tarde João tudo bem você já toca na igreja você já toca alguma coisa de violão ou se está iniciando do zero Então esse ele já tem todo um histórico aqui ele já sabe que o meu nome é
João porque tá na memória aqui do Red né aí eu vou falando com ele ele vai tentando me vender um curso de violão e no final se eu quiser ele manda o link para eu fazer o pagamento então aqui é só um exemplo mas aqui você vai poder conectar o que você quiser aqui então nós vamos iniciar aqui no supabase preparando aqui todos os dados para receber o nosso banco de vetores então nós estamos aqui na tela inicial do base se você não tem sua conta basta você criar Vamos criar um projeto do zero aqui
ó um New Project vou escolher aqui Brasil São Paulo Vou colocar aqui o nome laboratório vou criar esse projeto aqui do zero aqui o password aqui você pode gerar automático pode copiar e salvar geralmente não usa esse password aqui do banco de dados mas é bom você salvar então nós vamos estar aqui com as apis né a chave api aqui já vamos conectar lá nós vamos criar aqui um projeto vão ser duas etapas criar um aqui primeiro para subir os arquivos lá pro supabase para fazer essa questão de subir os arquivos eu vou clicar aqui
em por primeiro gatilho aqui Manual e vou adicionar aqui vou aqui Advanced e vou aqui em outros nods vetor Store e supabase a credencial aqui eu tenho várias aqui mas nós vamos criar uma nova aqui para fazer do zero Então nós vamos colar aqui essa primeira chave saiu aqui eu vou em API Docs aqui vou aqui em project settings api copia a URL colo copio essa service R Secret revelo copio e colo aqui posso mudar o nome aqui sup basear aqui laboratório laboratório salvo posso fechar aqui aqui ele não vai ter nenhuma nenhuma tabela ainda
né então primeiro nós vamos criar lá as tabelas para poder acessar isso aqui vou aqui no no projeto SQL editor kickstarts são passos rápidos né para lançar rápido vai aqui em L chain com o código aqui pronto para criar nós vamos colocar mudar aqui o documents para ficar com o nome da empresa né Eh tudo que tiver documents aí você vai mudar para pro nome da empresa que você queer caso eu vou colocar aqui empresa um esse aqui não precisa mudar porque é só a descrição do que tá acontecendo aqui aqui eu tenho mais aqui
esse document match aqui empresa um esse embedding aqui eu coloco empresa um também document empresa um e por fim aqui nesse empres um aí eu vou rodar esse código para ele criar essa planilha essa tabela Ele criou aqui a empresa um E no entanto agora se eu quiser criar a empresa dois eu tenho que tirar esse Create extension aqui por conta que essa extensão já foi criada agora só vou criar a tabela vamos supor aqui que eu fosse criar a a a empresa dois vou puxar aqui empresa um ele vai mostrar todos os lugar que
tá um vou só colocar o dois aqui ó 2 2 [Música] 2 2 e 2 agora eu eu tirei aquela partezinha de cima agora eu rodo novamente então ele criou aqui ó nas tabelas duas empresas um e dois agora vou criar uma nova tabela PR mim poder selecionar qual dessas desses vetores aqui eu poderia ter colocado outro nome poderia ter colocado vetor empresa 1 vetor empresa 2 para ficar mais fácil entender mas eu como eu já coloquei aqui eu vou criar uma nova tabela que agora é uma tabela que vai ter a descrição de todos
os vetores que nós vamos puxar de forma dinâmica lá da nossa chamada então eu vou colocar aqui de novo empresa que são as informações da empresa esses campos aqui deixa né a nós vamos adicionar mais dois Campos que vai ser é vetor nome vetor nome que é uma string vai ser é um texto né E vamos supor que eu fosse filtrar por telefone Porque caso você vai conectar lá com WhatsApp vou colocar telefone telefone empresa e vai ser uma string também que vai ser texto aqui ó é os dados gerais de todas as empresas aqui
é o nome do vetor de cada empresa não facilitou ter colocado o nome de empresa um empresa dois Podia colocar vetor empresa um vetor empresa do como que eu vou amarrar isso aqui eu vou inserir eu vou ter que inserir de forma manual aqui porque eu não tenho a interface e não queri a interface para conectar aqui mas vamos supor que eu for os dados da empresa um o vetor da empresa um é o nome do vetor dela é empresa um que é o nome dessa tabela telefone vamos supor que o telefone dela é 1
2 3 salvar vamos adicionar mais uma empresa aqui insert r o nome do vetor da segunda empresa é vetor 2 telefone dela é 1 2 3 vamos salvar então eu tenho esse banco geral aqui de todas as empresas e o vetor de cada um agora nós vamos aqui no no suabase Vamos colocar aqui ó insert documents eu não sei qual que é a tabela mas vou criar uma outra outra chave aqui porque eu não lembro mais qual dessas é V criar uma nova credencial aqui vou colocar aqui aula YouTube volto lá na tabela vou aqui
em project settings api vou copiar aqui ah vou copiar aqui também a service World Secret e também vou colar aqui e salvar vou usar essa credencial aula YouTube preciso criar uma regra aqui para ela ficar pública né vai aqui ó vai aqui empresa primeiro adicionar política criar política tudo aqui acesso geral pode ser o nome que você quiser coloco true aqui marca aqui e salvo fazer isso aqui para todas as tabelas e vou clico aqui adicionar criar política colocar acesso a todos aqui ao Marco aqui escrevo true e salvo Ah tem que colocar o nome
geral volto aqui na próxima e vou também colocar aqui a política de acesso clico aqui rsl né ligar né enable vou adicionar aqui a regra que é poli geral todos e Marco essa última caixinha aqui então agora nós já criamos a política de segurança para todas as empresas aqui nós deixamos aberto para poder acessar todas não tá dando aqui certo checar de novo a credencial não sei se eu a credencial não sei se eu coloquei alguma coisa errada Deixa eu só ver aqui ó em configurações API vou copiar [Música] aqui colo aqui volto revelo a
chave copio e colo aqui acho que eu colei a chave errada agora ele tá mostrando aqui todas as as tabelas esse aqui ele cria automático que é o Mat lá da planilha mas aqui ó tenho a tabela empresa que é geral e os a tabela de vetores das duas eu não vou escolher nenhuma aqui ainda porque eu quero puxar isso de forma dinâmica né então vou colocar aqui By ID por ID de forma dinâmica então aqui nós estamos com o vetor nós temos que adicionar uma inteligência artificial aqui para fazer o embedding que é processar
todo esse código então nós vamos aqui ó nós vamos criar nós vamos pegar aqui aí você pode escolher qual que você quer usar eu vou usar a chat ept eu já tenho as chaves aqui caso você não tenha chave nenhuma você vai você pode ir aqui no plataform openai.com e criar sua chave aí aqui em ap Case você pode criar uma chave nova clica em Create aqui para você colar lá na na nova chave que você vai criar lá para usar api da Open Você vai precisar de ter créditos caso você não tenha crédito você
vai aqui em configurações Você vai em Billings e você pode adicionar aqui adiciona crédito adiciona 5 aqui para você tem que ter um saldo para poder acessar adicionou você vai aqui em dashboard em API case e cria sua chave para p aqui no n8n aí você iria aqui em create enal e cola api aqui esse organization ID aqui não precisa então como eu já tenho vou usar a minha mesmo que que eu já tenho aqui então não vou precisar e aqui clico em mais selecion esse default data Loader posso fechar aqui text Splitter que é
o separador de texto posso escolher esse primeiro aqui eu coloco um separador aqui vou colocar um um asterisco aqui tá que eu tô eu tenho tô conectado com o supabase Vector Store aqui eu não tô conectado ainda com a tabela da empresa Porque ainda eu não sei qual empresa que vai tá fazendo a chamada Então como nós vamos fazer isso vamos vamos colocar aqui o um campo Inicial Field um Field aqui no Field vamos supor que tenha um um contexto né que é o o que a gente vai colocar de informação pro nosso vetor contexto
Vamos colocar nada aqui por enquanto e vamos colocar também que é o telefone que é a chave que a gente a gente escolheu para para puxar a empresa né vamos supor que a gente tá recebendo uma chamada do telefone 123 vamos supor que o código da empresa do telefone da empresa é 1 2 3 estamos fazendo uma chamada para inserir um contexto no banco de dados dessa empresa aí como é a chave é o telefone poderia ser qualquer uma outra outra nós vamos colocar aqui e Campos iniciais né D um espaço aqui agora nós vamos
fazer aqui um get para ver se tem e para pegar qual que empresa que tem esse telefone né então nós vamos fazer supa dais get World aula YouTube nós vamos dar um get nós não vamos dar um Get No vetor Porque Nós não sabemos e qual vetor é da empresa Então nós vamos dar um get na empresa Qual que é a condição nós vamos dar um get na empresa que o telefone é igual ao do textfield aqui ó eu não tenho os dados mas eu vou rodar ele uma vez aí agora vou ter os dados
para pegar eu vou pegar a empresa que tem o telefone igual esse campo Inicial aqui rodo novamente ele vai voltar Um item Qual item que ele vai voltar ele vai voltar a empresa que tem um telefone igual ali do início né telefone empresa Então nós pegamos a empresa e agora nós vamos colocar um if aqui né Vamos colocar um if caso não nenhum se supabase aqui é o telefone da empresa que é uma string não existe se não existe o dado não vamos supor que string existe se ele existe aí vai pro próximo passo se
ele não existe puxa para baixo aqui colocar oper porque aí nós não vamos criar nada de banco de dados de Vetor nós só vamos criar se existir não faça nada deixa eu colocar um teste aqui ó Então existe el deu o retorno de uma empresa aqui se existe nós vamos colocar mais uma condição aqui um Field um Field nós vamos colocar aqui ó contexto contexto se existe nós vamos pegar lá do do nó um o contexto que é a informação da empresa pra gente eh alimentar aqui o o vetor dela né E como nós vamos
fazer isso vou pedir pro chat ptq criar para mim um um prompt fictício crie um um Prom fício de uma clínica de a de saúde endereço profissão profissionais e outros e outros Dados importantes mas aí no caso seria colocar as informações da empresa né Aí vou copiar aqui ó e vou colocar aqui na chamada Aqui ó nos campos iniciais o contexto que é todo aquele textão lá eu tô colocando direto aqui mas no caso se você fosse conectar com um aplicativo ou alguma outra coisa você poderia fazer assim ó você eu desligo aqui né e
coloco aqui uma web Hook E aí você vai mandar coloca post aqui para esse endereço o que você quer que manda né aí tem que vir o telefone para filtrar aqui e tem que vir o contexto também mas nós vamos o conectar direto aqui né Então ligo aqui de novo ele não vai pegar aqui ainda alimentar lá o banco de dados porque ainda eu não coloquei o ID mas eu vou rodar aqui ó aqui ele deu um erro aqui que precisa do do ID como não tem eu vou colocar qualquer coisa aqui ó ele vai
dar erro não vai encontrar mas só para eu rodar novamente aqui e pegar a informação correta ele não encontrou porque não tem esse ID que que eu vou fazer aqui ó eu vou aqui no supabase node esse terceiro aqui para pegar o nome do vetor que essa empresa de telefone 123 tem eu vou colocar aqui ó ó e vou rodar novamente então o que que aconteceu aqui ele recebeu aqui as informações de qualquer lugar daqui mesmo né que uma que a empresa que tem o telefone 123 tá querendo alimentar lá o banco de vetores com
essa informação ele buscou no supabase qual empresa tem o telefone 1 23 e ele viu que a tabela dessa empresa o vetor dela chama empresa um porque nós alimentamos isso lá no banco de dados né se você lembrar aqui ó só para você entender o que tá acontecendo nós alimentamos aqui ó as duas empresas e o nome da tabela do vetor eh dessa aqui é empresa um então nós alimentamos ela se eu olhar aqui no vetor da empresa um agora eu vou ter aqui as informações da Clínica integrada que Que Nós criamos lá o contexto
Se eu olhar na da empresa dois não vai ter nada então se eu colocasse outro texto aqui ele ia alimentar com mais informações aquela clínica lá eu poderia eh ter uma interface também para apagar isso aqui ó Eu puxava todos os ids dessa planilha aqui a isso aqui eu quero apagar eu poderia apagar só apagar essa linha esse ID dessa linha então eu posso alimentar aqui todas as informações dessa clínica então esse aqui é o modelo já para você alimentar o vetor multiempresa para você ter um banco de dados de Vetor multiempresa depois a hora
que a gente for conectar lá com o chat nós vamos usar também o ID porque vai ser feita uma chamada pra empresa primeira coisa quee vai fazer é vir aqui ó para qual empresa tá fazendo a chamada para qual vetor Então vai ser o banco de dados multiempresa também quando a gente for lá pra parte da continuação agora só para você ver aqui ó se eu fosse alimentar Aqui o banco de dados da empresa 2 se eu colocasse o telefone aqui igual o da empresa 2 que é 1 2 3 4 n ele vai alimentar
o banco de dados da empresa 2 aqui deixa eu ver aqui hum ah ele não deu certo aqui porque o nome da tabela não é vetor dois é empresa dois empresa empresa 2 agora deixa eu voltar aqui ó vou olhar aqui agora ele vai ter deix olhar aqui nas tabelas ó da empresa dois ele também vai ter alimentado com a mesma informação Porque nós não mudamos a informação Então você tá com banco de dados vetorizado multiempresa e na próxima aula nós vamos dar continuidade aí nesse projeto eh já Confere aí se você tá inscrito no
canal para não perder Ative o Sininho um abraço a todos e até a próxima aula
Copyright © 2024. Made with ♥ in London by YTScribe.com