Olá tudo bem Meu nome é Guilherme Reis parte aqui da dinastia E hoje você vai aprender como que você pode fazer o update do agente de a que a gente desenvolveu esse agente de a você manda mensagem no WhatsApp de texto ou áudio ele vai fazer todo um trabalho de streaming para você poder mandar várias mensagens e ele compactar essas mensagens pegar apenas a última E aí a gente navega aqui dentro do nosso fluxo aonde você vai est conseguindo falar com uma secretária fazer todo o processo da mensagem fazer agendamento conversar sobre um produto específico
e nessa aula eu vou te mostrar como que você vai fazer o upgrade da versão TR que é a última versão nossa paraa versão 4 então vamos lá então nessa nova versão o nosso agente ele vai ter alguns diferenciais primeira coisa é que a gente tá usando agora o postgress em todos os nodes Então por quê no Reds como El ele é um banco de dados que fica salvo na memória se o meu banco se o meu servidor eu tivesse que fazer um novo Deploy ou Caiu a energia eu ia perder todo o histórico das
mensagens porque ele o redis era um banco de Cash ele não foi um banco de dados desenhado para ficar por um longo período salvando as informações g o postgress não o postgress ele é um banco de dados mais robusto que tem no mercado mais de 35 anos de mercado que eles estão desenvolvendo o postgress ele é open source e ele foi desenhado para ele manter essas informações para longo período a informação fica salva dentro do disco certo então você pode ver que mudamos drasticamente também toda a gestão de fluxo então o que que ficou o
que que saiu o o que entrou né além do postgress o fluxo de processamento de áudio e texto permaneceu E essas novos atributos que que veam aqui vieram uma contribuição do maon um membro aqui da dinastia que ele chegou para mim passou então nós ficamos aqui duas horas fazendo debug pra gente conseguir deixar isso daqui redondinho pras pessoas que estão vindo aqui para você beleza então dentro desse novo posicionamento nós temos a espera de mensagens que vem picotada então a pessoa fala Oi manda tudo bem como está posso falar com você então Aqui Nós criamos
um streaming dentro do Reds Aonde a mensagem ela chega a gente puxa aqui dentro do do banco de dados a gente coloca aqui o telefone da pessoa sendo aqui e aqui tá tudo bem usar Reds porque ele vai ficar salvado só daquele Ele vai ficar salvo só naquele pequeno espaço de tempo e quando a pessoa terminar de digitar sempre vai ser a última mensagem que a gente vai tá mandando eh ali pro Reds e seguindo o nosso fluxo Então vamos entender como que funciona a aqui a gente tem o fluxo normal que a gente tem
né ele passa aqui no texto ele vem aqui ó dentro da mensagem e quando chega aqui nesse filtro a gente vai fazer uma identificação se a gente tem uma mensagem e é uma mensagem de texto e aí ele puxa as informações dessa mensagem ali pro nosso Reds ali pro campo telefone que vai ser o número da pessoa e aqui a gente tem um tempo de espera que a gente colocou de 2 segundos o ideal é que você coloque um um um tempo até um pouco maior né eu coloquei 2 segundos porque a gente tá at
T estando aqui mas o ideal é você deixar de 8 a 10 segundos porque quando a pessoa falar oi às vezes passa 1 2 3 4 5 segundos ela manda outra mensagem então tudo bem meu nome é fland e tal eu quero saber mais informações do empreendimento então Eh 10 segundos é o suficiente porque daí que acontece a próxima mensagem vai tá sendo acumulada dentro da nossa lista certo então conforme a pessoa vai mandando as mensagens nós estamos acumulando essas mensag aqui dentro da lista E aí quando acaba esse tempo nós vamos fazer o quê
vamos puxar todas as mensagens da lista vai vir aqui ó que vai gerar um Array de mensagens e aqui a gente vai ter uma condicional onde nós checamos se a última mensagem da lista é a mesma mensagem que a pessoa mandou para nós então apenas um único Flow vai ficar em execução e vai seguir sendo que os outros flows eles vão ficar em paralelos e eles vão acabar morrendo aqui na praia né então se a gente fosse entrar aqui num banco de dados para te mostrar no no mirror banco de dados não dashboard seria mais
ou menos assim imagina que aqui você vai ter a primeira mensagem que entrou na lista E aí a segunda mensagem entrou na lista também a terceira e a quarta certo então se a gente colocar aqui que essas três primeiras mensagens elas foram mandad elas foram enviadas no intervalo de 10 segund ou seja entre uma outra levou menos de 10 segundos Então vou colocar aqui né menor do que 10 segundos elas foram acumuladas da lista certo então tudo isso daqu levou menos de 10 segundos e aí qual foi última mensagem que você mandou foi essa daqui
que levou mais mais do que 10 segundos então lá no nosso fluxo quando a gente for Checar e puxar todas as mensagens quando acabar esses 10 segundos a última mensagem vai ser essa daqui ó vai ser esse camarada aqui ó e todas essas outras mensagens Elas já foram agrupadas nessa última mensagem então quando a gente olha aqui o nosso fluxo e essa condicional serve justamente para fazer esse esse esse check se a última mensagem foi eh está aqui de acordo com a a mensagem que a gente recebeu que a gente acabou de receber no WhatsApp
é aqui a última mensagem que a gente tem que a gente puxou da nossa lista legal aí a gente segue então o fluxo lembrando qu voltando aqui né Cada quadrado desse que foi uma mensagem viada foi uma execução do n8n Então na hora que você entrar no seu n8n você vai ver uma execução duas três só que elas morreram ali né Elas não seguiram adiante porque houve outras mensagens logo após ok então vamos lá aqui nós então Recebemos a mensagem do cliente que tá aqui e dentro da mensagem do cliente nós seguimos com a recepcionista
então a recepcionista ela ainda continua com a tarefa né e responsabilidade de fazer a intenção então ela vai calcular se é uma informação ou é um agendamento aqui o prompt não mudou em nada então ficou aqui o mesmo prompt E aí dentro seguindo a intenção ela vai ali pro assistente comercial se for mais informações a diferença é que agora todos os agentes estão compartilhando o mesmo banco de dados então não tem mais agora uma diferenciação das informações e conhecimento que os agentes têm todos os agentes vão ter o mesmo conhecimento então é uma lista de
interação com cada ag gente vai est igual Ok então isso daqui vai ajudar eles terem mais eh terem noção do contexto pelo qual eles estão conversando com aquele cliente aí vem aqui no agendamento e aqui é a grande diferença agora a gente era algo que eu já queria trazer para vocês que é de fato a beleza do agente de a principalmente dentro do Então você já ouviu falar do functions ali dentro do openi que é a habilidade do agente ter o poder de decisão ele decidir Que tipo de ferramenta que ele quer usar e quando
que ele quer usar Então o que aconteceu a secretária agora ela virou uma super secretária aonde que nós eh demos algumas modificações aqui no prompt Então em vez de ter um único prompt um cada funil para cada um dos segmentos a gente tá usando aqui esse prompt é É lógico que que eu quero dizer que nós estamos assim puxando as barreiras né ou seja estamos forçando um pouco a barreira das da capacidade de raciocínio que esse modelo pode ter Então você jamais pode considerar usar um modelo fraco para essa secretária e já vou deixar bem
claro aqui o Murilo vai saber e vai tomar nota que se chegar alguém falando que não tá funcionando e eu perguntar e você falar para mim que você tá usando GPT 4 o mini cara vai levar um kick do do discord beleza de um dia não pode usar o mini o mini não vai ter Cap idade de raciocinar todos os todas as ferramentas que ela tem para usar e muito menos a sequência de cada uma das Ferramentas Então dentro do prompt você vai ver o quê que ela ainda tá focada em oferecer os serviços de
personalização assistente e ela vai ter todos as informações aqui da marcação a gente tá colocando aqui ó para ela respeitar o formato agora brasileiro estamos sempre colocando o fuso horário que é importante aí a gente pede para ela Verificar também a a as os os calendários da agenda que a gente tem para os próximos 7 dias também pedimos então para ela colocar eh a data no formato agora em português então esse daqui foi uma função que que foi criada aqui pelo mic pra gente conseguir traduzir do inglês pro português e aí o que acontece dentro
desse desse segmento a gente vai seguindo aqui no prompt né coisas que foram alteradas que você pode modificar também esse daqui se fazem parte das características pelo qual você quer usar então nós colocamos que agora o agendamento é de 15 minutos então antes não tinha especificação e para os próximos 15 minutos ou antes a gente pede para ela sempre identificar se tem horário pro pedido do antes ou depois do horário que o cliente quer sempre utilizar o time Zone de América São Paulo para todas as operações e agora nas tags a gente vai definir o
prompt para cada eh categoria de operação que pode ocorrer Então pode ocorrer agendamento cancelamento confirmação que são eh as que são assim as tags mais importantes as outras já está aqui implícita né seja como buscar informação e aqui a gente colocou alguns exemplos porque o o o modelo a gente viu que mais complexo ficou a relação do reagendamento que a gente já vai fazer alguns testes aqui beleza mas tudo bem seguindo em frente a gente vai ter aqui a confirmação cancelamento aí a gente tem a questão das exceções então Lembrando que o fluxo das exceções
que a gente fez na aula anterior é eu retirei aqui dessa aula porque foi muito específico Mas a gente pode voltar e a gente deixou a tag em aberto então se você quiser adicionar novas exceções você pode colocar aqui dentro Então como que ficou a configuração desse agente também esse essa secretária ela tá conectada no no openi a gente tá usando o 4 o e agora a gente tem essas ferramentas Vamos explorar todas as ferramentas que a gente tá usando primeira de todas é a calculadora Por que que é uma calculadora Guilherme porque os modelos
eles não TM a capacidade de fazer contas por si só eles não tem a a o raciocínio lógico de gerar a questão da matemática de contas isso daí a gente já sabe que é uma é uma grande deficiência dos modelos atuais então nós usamos o quê uma ferramenta para ele poder fazer pedidos sobre isso então ele pode aqui na calculadora perguntar hoje é dia 24 o meu quer saber um horário sobre daqui dois dias então Quanto que é 24+ 2 E aí ele vai dar a resposta 26 Ele já sabe que dia que ele tem
que Checar e aí dentro de ferramentas nós estamos adicionando a conexão do o node do Google calendário e Aqui nós temos deletar evento buscar evento e criar evento Então nós temos três funções específicas do Google calendário e aqui você pode ver que a gente criou o o Google a gente selecionou a a opção to description que que é isso aquii o próprio n8n está fazendo a descrição de quando que deve ser usado essa ferramenta porque a gente tá usando a operação deletar então é dessa forma que o nosso agente sabe quando que ele tem que
usar essa ferramenta ele tem que usar toda vez que ele quiser deletar algum evento E aí qual que é o input que a gente tá esperando dele que evento eu tenho que saber de qual evento que eu que eu tô falando certo Então olha que legal o n8n ele tem essa função que você po pode usar que chama from ai ou seja é uma injeção de dados que a gente tá esperando da própria Inteligência Artificial e aqui a gente coloca a chave então a chave pode ser event underline id e aqui eu coloco a descrição
do que que é essa chave é o ID do evento que deve ser excluído então é O Event ID legal a gente já vai ver como que vai buscar esse event ID buscar eventos que que é buscar eventos é habilidade do do meu agente buscar um ou vários eventos na minha agenda e o horário que começa e que finaliza ou seja qual é a distância de dias de data que ele quer buscar por exemplo eu quero buscar eventos de hoje domingo até terça-feira é a habilidade tá para ele Ó então a gente passou essa habilidade
para ele também buscar então ó initial date time que é o tempo inicial para ele buscar e aqui a gente coloca data e hora inicial da consulta Pera aí que meu áudio saiu para alguém aí cara até foi o mel o Michel Doutor deixa aí pera aí Valeu então que que acontece e não pera aí aí Fechou então o que acontece aqui a gente tem a data inicial do do evento que a ela pode buscar e a gente tem a data final também então O legal é que eu dou Total flexibilidade para ela buscar uma
data específica ou ela buscar vários eventos na hora que ela quiser e aí a gente tem então a a última função que ela dela criar um evento e aqui olha que louco também a data que vai começar o evento que vai finalizar é ela que decide E aí a gente tem o summary que é o título do evento que vai lá no Google calendário certo e a gente colocou reunão agendada com o push name que é o nome do cara no WhatsApp e o telefone então a gente colocou aqui um reject pr eh perdão reject
a gente colocou um replace que é para eliminar toda essa informação aqui do WhatsApp e depois substituir também o número 55 eh que é o número do cara por por nada né então isso aqui foi uma função para você ter o número bonitinho dele ali do WhatsApp por exemplo o o DDD e 11 e e o número dele pô legal e aí a gente manda pro evolution Mas lembra que a gente tava tendo vários problemas com output parser então Eh eu falei assim eu acho que a galera tá meio traumatizada com a output par então
vamos fazer o seguinte vamos eh exportar a gente mesmo vamos nós darmos o prompt para ela exportar o o a resposta em Jason e foi exatamente que a gente fez ó output você deve você sempre irá responder usando o formato Jason sem comas ou aspas apenas o Jason e a gente colocou um exemplo ó mensagem a sua mensagem aqui e event ID O Event ID do agendamento criado aqui então a resposta que eu t esperando agora dela vai ser dentro do output vai ser o my string de Jason e aqui no Evolution quando eu respondo
isso eu vou ter o qu a mensagem aqui dentro Eu tenho o telefone que eu puxei lá do arquivo da mensagem perdão aqui eu tenho o número do destinatário que eu puxei lá do node lá no começo né ou seja mensagem do cliente e aqui eu tenho texto que vou mandar lá no WhatsApp pro cara né então aqui a gente usou essa função que chama Jason PPS que é para pegar um texto do formato Jason converter ele num objeto que a gente consiga acessar a função mensagem pô legal então é falei bastante aqui não mudou
nada que é do assistente comercial queer fazer a classificação do interesse continua igual vamos rodar agora e a gente vai fazer vários testes bem legais Beleza então eu vou iniciar aqui o teste já conectei no meu Evolution aqui na no ID beleza ó o URL do meu teste já tá conectado no Evolution não sabe que é Evolution não sabe que é ipeno não sabe como fazer setup do assiste a primeira aula do zero ao nível Expert que você vai saber tudo isso você tem dois assistir esse vídeo agora e o primeiro vídeo assiste o primeiro
vídeo depois você volta para esse Então vamos lá eu vou rodar agora essa operação para você que que eu vou fazer eu vou zerar completamente aqui o meu o meu fluxo de de dados que eu tenho dentro das minhas mensagens e agora agora eu vou aqui no meu WhatsApp ó antes disso deixa eu salvar aqui ó vou testar vou pegar essa mensagem aqui ó Gostaria dar uma reunião amanhã para as 9 horas Beleza então vamos ver o que ele vai fazer só falta ele travar agora Mentira não travou legal olha que louco eh se a
gente clica aqui no nosso agente que é secretário de agendamento e a gente vai em logs bum é isso que eu quero que você veja cara você vê que você entra no openi e aqui você tem histórico nenhum o primeiro histórico que a gente tem é Olá eu gostaria de dar uma reunião bum mais nada tá vendo aqui não tem absolutamente nada qual que foi reação dela legal deixa eu buscar mais informações né mas olha que legal eu falei para ela que eu queria Agendar amanhã então ela já tem referência que hoje que a gente
já colocou no prompt tá aqui ó Cadê o nosso horário PR sua referência atá hoje é domingo dia 24 Beleza então olha o dia que ela puxou dia 25 às 9 perfeito e não houve nenhuma resposta então ela sabe que tá disponível porque não tem nenhum agendamento para esse horário para esse dia específico entendeu então Legal amanhã está disponível pode confirmar esse horário vamos lá vamos continuar aqui a operação agora vou falar vou rodar aqui ó e vou falar para ela pode confirmar ó pode confirmar aí vamos ver você viu lá rodou aqui rodou aqui
pá pegou vamos ver o fluxo que ela fez criou o evento ó legal criou o evento vamos ver a mensagem que ela mandou para mim reunião para amanhã às 9 foi confirmada vamos ver meu calendário tá confirmado mesmo por que a meio-dia Guil porque lembrando eu tô aqui no no Reino Unido Mas ó 9 horas não fus horário de horário de Brasília então tá certíssimo o o evento mas olha olha olha o que eu vou tentar fazer agora no dia seguinte no dia 26 eu já tenho uma reunião no mesmo horário às 9 tá vendo
É o mesmo horário e aqui que nem eu tava Pando a gente vai pedir para ela reagendar então vou falar ass você poderia reagendar para terça no mesmo horário obrigado então vamos rodar pra gente ver a operação que ela vai fazer então vamos colocar aqui e olha lá foi paraa recepcionista secretária então ela checou várias informações aqui ó e olha só o que ela fez quer dizer deixa eu ver a mensagem né já um agendamento para terça às 9 posso reagendar para as 8:45 ou 9:15 qual seria melhor para você olha que legal então de
fato eu já tinha aquele agendamento aqui para mim ó tá vendo e ela tá certa né E se você for ver no raciocínio dela aqui nos logs ó ela buscou cara olha lá ela foi buscar essa informação ó de hoje até o dia 28 e ela viu que já tinha agendado ela usou calculadora ol calculadora para ela checar aqui uma resposta muito louca que ela fez com ter min ideia porque el com 39 né mas dia 26 Men 24 - 24 Ok eu acho que ela quer saber talvez a os dias lá pra frente para
buscar aqui no calendário E aí que que a gente vai fazer ela me deu uma sugestão posso reagendar para 8 e 9 9:15 eu vou colocar aqui pode ser 9:15 então Sempre agradecendo né Por não vou rodar e agora eu vou dar aqui para ela reagendar vamos ver vamos ver o que ela vai fazer recepcionista secretária ó rodou deletar rodou Criar evento rodou um monte de coisa cara o reagendamento foi concluído com sucesso sua reunião está confirmada para terça-feira à 9:15 vamos ver aqui e foi mesmo cara ela deletou do dia 25 e ela salvou
aqui pro dia pro dia 26 que é na terça às 12:15 e isso daqui eu acho incrível brother dá uma olhada ó ó que legal vamos ver o raciocínio agora que ela fez olha os caminhos que ela seguiu Então ela foi no deletar eventos event ID ela passou o ID do evento do do evento e ela criou o o novo evento na data que a gente pediu Aí eu te pergunto como é que ela sabia o ID do evento olha aqui o histórico dela meu irmão lembra quando ela criou o evento na primeira vez a
gente passou a o evento ID no prompt então sim salvou na memória o ID do evento quando a gente passou a mensagem então esse daqui é a memória dela beleza e onde que tá essa memória tá lá no postc Então vamos lá como que você vai setar o postgress você vai ter que vir e aqui nesse node você vai criar aqui dentro uma nova conexão novo credencial né E aí você vai ter que colocar o host o banco de dados a a senha e a porta Beleza se você tiver no Orion se você tiver no
hostinger se você tiver e nesses principais hosts que você pode usar o local host aqui no lugar do host e colocar as cren porque ele tá rodando na mesma máquina então é bem possível que o teu postgress e o teu n8n estão na mesma máquina então você não precisa colocar uma porta no meu caso eu tô usando e peno eu coloquei uma porta externa então aqui no meu eip eu tenho aqui ó postgress e aqui em credenciais Eu tenho todas as informações eu tenho a senha eu tenho o o nome do banco de dados eu
tenho o usuário do meu postgress por que que eu exportei a porta porque eu também quero conectar fora da minha interface então eu tô usando um cliente de post você pode fazer download postgress client esse daqui é promec então eu conectei no meu postgress e aqui ó todas as informações do n8n do Evolution que tá usando post também tá tudo aqui ó e olha o nome da tabela que eu criei essa daqui ó dinastia mensagens se você dar um refresh aqui ó tá tudo aqui Então como que ele tá salvando a sessão ID é o
número do cara do WhatsApp e aí todas as mensagens tanto que ele mandou e qual foi a resposta da ia tá aqui então é assim que ela sabe que ela tem o contexto do histórico das mensagens entendeu E aí quando a gente vem aqui na nosso aqui nesse node que a gente criou para as mensagens que que eu tô fazendo na verdade ó eu tô rodando uma SQL ó delete from dinastia underline mensagens então deleta tudo dentro da dinastia então quando eu clico aqui ó para rodar agora eu vou aqui no meu banco de dados
ó deletou todas as mensagens então assim toma cuidado para você rodar isso daqui em produção tá você pode clicar por engano então o meu conselho é você excluir esse node Quando você começar a rodar esse produção para você não deletar por engano Ok e todas as outras conexões elas simplesmente foram e adicionadas e e algo que você já tem né que é o Evolution ap do Evolution se você não sabe você volta e assiste o primeiro vídeo para você aprender como adicionar ap do Evolution e aqui também do Google sheets e tá tudo explicadinho no
primeiro vídeo beleza essa esse daqui a intenção de classificação de interesse não mudou o que mudou foi as informações eh como a gente manda no WhatsApp né ou seja agora a gente passa o nome do camarada a gente passa eh o número do Whatsapp pro representante entrar em contato entendeu e aqui dentro do do calendário o que mudou também foi que agora tá o nome dele do WhatsApp e tá o telefone ó Então já fica agendado bonitinho o nome telefone do cara no título do calendário Tranquilo então assim foram várias simp simplificações eh ficou muito
mais fácil de você entender agora ao mesmo tempo o modelo ele vai ter que ter um poder de gerenciamento é muito mais complexo né ou seja então eu preciso que agora a galera comece testar e validar essa versão 4 do nosso agente de atendimentos e porque daqui pra frente é a gente usar o rag que é a infraestrutura que a gente vai colocar para o nosso assistente comercial ter uma base de conhecimento e buscar mais informações essa daí vai ser a versão 5 do nosso assistente Mas agora nós já estamos num caminho bem próximo de
validar ele para um serviço de produção ou seja saímos do Reds estamos pro postgress estamos com várias ferramentas de acesso para ele ter uma gestão A gestão é muito mais fluída como ele gerencia as reuniões então eu acredito que e isso daqui já está no nível bem perto de produção Ok bom se você gostou dessa aula eu não tô te pedindo absolutamente nada em troca a única coisa que eu tô te pedindo é para você compartilhar com mais uma pessoa simples assim curte Compartilha o nosso canal no YouTube entra na nossa comunidad do discord que
todo esse template eu vou est disponibilizando agora nesse exato momento lá no discord ok te vejo até lá