alguns meses atrás eu apresentei lá no Instagram uma ideia de um projeto que envolvia EA e que eu acredito que todas as empresas deveriam ter e naquele vídeo eu recebi tantas mensagens de pessoas me pedindo para trazer ele aqui no YouTube que eu fui praticamente forçado a isso e o mais curioso é que ele é um projeto até relativamente simples de ser feito e que eu considero como uma porta de entrada para quem tá aprendendo a trabalhar com modelos de linguagem dentro do Python bom eu tô falando é claro do Oráculo um assistente virtual que
vai saber tudo que há para se saber sobre algum assunto da tua escolha e ele nasce da combinação de um modelo de linguagem como chat GPT Cloud com alguma base de dados privada tua e são justamente esses dados que vão determinar a natureza desse assistente por exemplo se tu passar para ele dados dos seus compromissos pessoais e eventos ele pode se transformar num assistente pessoal agora se tu alimentar esse cara com um diário pessoal teu com as tuas reflexões ele pode ser usado como um terapeuta ISO passar dados da tua empresa como produtos dados de
clientes ele pode tranquil ser utilizado até como um vendedor são esses dados e o prompt que tu escolher que determina a natureza do Oráculo existem muitas formas da gente construir ele envolvendo até ferramentas no code dentro do Python a gente tem uma muito curiosa chamada L Flow que permite que a gente construa assistentes como esse sem escrever uma só linha de código só encaixando bloquinhos mas hoje eu vou ensinar vocês a como construir ele utilizando Python e l chain eu acredito que vão dar as bases necessárias para que vocês consigam construir coisas bem mais complexas
que essa vamos lá então aqui tá o oráculo posso até conversar com ele ele tá se conectando com a IPI do chat GPT mas a parte mais interessante é que eu passei para ele aqui um conjunto de dados bem pequeno até com algumas informações da zimov Academy e ele vai ser capaz de acessar aquele conjunto de dados e responder perguntas a partir daqui por exemplo quem é o gerente de operações da zimov e ele sabe que é o Lucas Petri se eu perguntar quanto custa para me matricular na trilha aplicações e com python ele também
sabe que tá custando 718 na descrição do vídeo eu vou deixar o código fonte desse projeto com a interface em streamit mas eu vou construir com vocês hoje aqui uma versão mais simplificada dele com o que de fato importa que é como eu jogo dados com hag para dentro do chat GPT Bora lá então aqui no visual Studio code vocês vão precisar de três coisas primeiro lugar criar um arquivo pon env que vai conter a chave de acesso da api da openai caso queira utilizar o chat GPT ou qualquer outro modelo de linguagem Eu Já
ensinei outros vídeos do canal a como construir isso a minha tá aqui algum conjunto de dados de qualquer formato eu aqui utilizei csv aonde cada linha corresponde a alguma pergunta e a resposta na qual quero que o modelo Tenha tenha informação e o mais legal disso é que nesse caso aqui eu tenho uma um conjunto de dados muito pequeno para mostrar para vocês a ideia ele tem aqui três perguntas nem precisaria colocar fazer essa técnica toda poderia simplesmente jogar isso aqui no prompt e fazer uma pergunta baseado nisso só que a vantagem da técnica que
eu vou utilizar com vocês aqui hoje é que esse conjunto de dados ele pode pode ser gigantesco com centenas de gigab ou múltiplos arquivos e mesmo assim a gente vai desenvolver uma forma dele conseguir pesquisar por qual a informação que ele precisa buscar que mais tem relação com a pergunta que a pessoa fez então pra gente começar eu vou importar aqui a biblioteca D envi que se vocês não TM ela instalada podem instalar ela utilizando PIP install Pie D env tá ela vai permitir que a gente carregue essas chaves de acesso no Python sem ter
que estar colocando isso na mão aqui no código é uma forma mais segura a gente também carrega ela agora utilizando o load.to agora a nossa chave já está carregado dentro do código e a gente vai importar aqui uma série de módulos do L chain que eu vou explicando para vocês a medida que a gente vai utilizando podem até pausar o vídeo copiar que essa parte é um pouco chata mesmo e você vão precisar instalar aqui três bibliotecas L chain Core L chain underline community e o lch underline Open ai para poder acessar o modelo da
Open a isso tudo utilizando o PIP aqui embaixo primeiro passo que a gente vai ter que fazer é carregar o nosso conjunto de dados mas de uma forma que o nosso modelo de linguagem consiga utilizar então para isso eu vou utilizar esse módulo aqui chamado csv Loader que ele está presente no L chain the line community document loaders e ele permite que a gente carregue documentos em formato csv o l chain tem uma série de outros loaders de dados em formato markdown Jone SQL HTML nesse caso nós vamos ficar aqui com c sv Loader e
para utilizar ele é muito simples basta que a gente crie uma variável que eu chamei aqui de Loader e instancie a classe csv Loader passando o caminho do meu dado é isso e agora eu vou pedir que ele carregue os documentos através de Loader P load se vocês executarem isso aqui vão perceber que a variável documents já tem aqui o documento cada uma das Linhas contém um documento separado que ele tem aqui pergunta e resposta com informações da empresa sobre quem são os funcionários valor das trilhas e um processo que eu coloquei aqui de como
é que a gente faz para publicar publicar um vídeo a gente tem um manualzinho dentro do notion que explica como isso aqui funciona vocês podem colocar o dado que quiserem e agora vem a parte interessante porque eu disse antes que como esse documento é pequeno eu poderia jogar no prompt diretamente e já ter uma resposta mas não é o caso porque eu quero utilizar uma técnica para permitir que esse documento possa ter um tamanho gigantesco então a gente precisa trabalhar com ele de uma forma mais eficiente e aqui que entra aquela técnica chamada hag retrieve
augmented Generation hag permite que o modelo de linguagem ele no momento de alguma pergunta ele pegue essa pergunta e faça uma busca por quais são as as informações no conjunto de dados que mais tem relação com a pergunta feita para poder filtrar e injetar no prompt só aquilo que for necessário para ele então por exemplo se eu encontrar uma pessoa perguntando os valores das trilhas das Imóveis eu quero que ele injete no prompt só esse documento aqui Se alguém perguntar sobre Qual o processo para cadastrar um vídeo eu quero que ele injete só essa informação
isso aqui vai acontecer através da lógica de imbens um im beren é um outro modelo de Inteligência Artificial que basicamente permite que a gente transforme texto em números Mais especificamente em vetores e os números desses vetores vão ser selecionados de acordo com a sua representação semântica então Imaginem esse exemplo aqui esses dois cachorros vão ter vetores muito parecidos entre si Porque de fato tem um peso semântico semelhante São cachorros essa outra rosa que tá aqui ela seria diferente dos cachorros por se tratar de uma rosa só que esse cachorro aqui tem números mais próximos da
Rosa em si do que do outro cachorro pelo detalhe em rosa que ele tem o in beren permite que a gente faça isso que ele Pegue uma frase ou uma palavra e encontre Qual a localização nesse espaço multidimensional para que quando a gente faça uma busca semântica ele localize coisas que estão mais perto quase que geograficamente dessa palavra específica é com esse conceito que eu vou pegar depois uma pergunta de um usuário jog no modelo de in Bering e vou localizar Quais são as perguntas e respostas que existem lá que mais tem relação com isso
esse conceito é um pouquinho chato de entender só que aqui no L chain com python ele acontece de maneira muito simples Eu preciso carregar aqui um modelo Open ai em Bering tá do lchin community berings e eu vou importar aqui um banco de dados vetorial que é o f ele vai permitir que a gente guarde esses documentos já convertidos em número então ele joga os documentos e o modelo para eu poder fazer essa tradução um deles e tá feito aqui eu tenho a minha Vector Store e aí por último eu vou pegar agora a minha
Vector Store e vou colocar S retriever Isso aqui vai permitir que o nosso banco de dados consiga ser utilizado como busca para eu puxar essas informações e Olhem a lógica dele acontecendo aqui no canto eu executei agora essas linhas aqui eu posso pegar o meu retriever e dar um ponto invoke eu vou fazer uma pergunta para ele por exemplo preço da trilha EA reparem que ele retornou para mim agora fiz essa pergunta ele transformou elas não em e voltou três documentos em ordem dos que são mais relevantes para ele reparem que a primeira resposta aqui
que ele encontrou é justamente da nossa trilha aplicações EA nesse caso padrão retriever ele puxa Se não me engano três ou quatro documentos tá mas se isso aqui tivessem por exemplo esse nosso banco de dados tivessem milhares de documentos isso aqui seria muito útil Porque puxaria só os que são mais relevantes segundo passo agora é a gente criar nosso modelo de linguagem e permitir que ele use esse retriever aqui para isso eu vou instanciar o chat da Open Ai que foi importado aqui em cima e vou utilizar o nosso chat prompt template foi esse cara
que permite que eu Construa um prompt padrão pro nosso modelo de linguagem entender o que que ele tem que fazer com isso e aqui eu já Montei um prompt que vocês podem pausar o vídeo e copiar então aqui tá o prompt você é o atendente de uma empresa seu trabalho é conversar com clientes consultando base de conhecimento da empresa dá uma resposta simples e precisa para ele baseada na base de de dados da empresa fornecida como contexto então aqui vai entrar o nosso retriever no contexto e aqui vai entrar a pergunta do cliente e a
gente monta isso aqui agora utilizando o nosso chat prompt template que eu vou dizer que o prompt vai ser igual o chat prompt template from template que é esse template em texto aqui e passo esse nosso template que eu chamei de hag template e de posso disso eu monto uma chain que é justamente o que o lchin faz pra gente ele permite que a gente coloque essas coisas em Cadeia e tudo aconteça numa ordem então Então essa chain ela sempre em primeiro lugar que receber uma pergunta ela vai jogar dentro do meu retriever buscar no
meu retriever Quais são as informações mais condizentes e encaixar aqui neste meu contexto é isso que esse primeiro dicionário faz e depois ele vai pegar o a minha pergunta da pessoa e eu utilizei aqui o runnable pass through ele vai encaixar aqui dentro com a pergunta feita da pessoa e montar esse prompt Zinho pro meu modelo de linguagem depois ele pega essas informações encaixadas aqui e joga no meu prompt vai basicamente fazer o encaixe das informações e depois jogar no modelo de linguagem e gente é isso isso aqui é um um projeto de um assistente
já com hag e aqui eu posso rodar o meu modelo de linguagem simplesmente usando o método p invoke e vou perguntar para ele aqui qual o preço da trilha ia novamente e aí tá lá ele devolveu aqui um a message.on content a trilha aplicações e a com python custa 718 ele conseguiu fazer aquela resposta tá então para vocês verem isso aqui aqui rodando eu posso até colocar dentro de uma lógica de Wi conversando com a pessoa e pegando o input do usuário então user input vai ser igual a input Vamos colocar aqui você pego esse
user input jogo no meu invoke user input pego isso aqui como resposta depois eu dou um print a resposta pon content eu vou executar isso aqui no terminal e olha lá já tá aqui esperando posso mandar olá olá como posso ajudar você hoje ele consegue conversar como um assistente normal Quais são os membros do time de marketing os membros do time de marketing São Lucas Petri Rodrigo tadevosyan [Música] se você quiser se aprofundar mais sobre construção de Agentes assistentes usando modelos de linguagem dos mais variados tipos ou até mesmo aprender a programar em Python do
zero caso não saiam a gente tem aqui essa trilha que é a trilha aplicações EA que a gente lançou justamente para poder resolver esse problema que saber construir esse tipo de aplicação uma das habilidades mais úteis hoje em dia utilizando modelos de linguagem que as empresas estão carentes e profissionais que saibam fazer isso e tem muito potencial e coisa legal que pode ser feita a partir daqui Espero que tenham gostado do projeto qualquer dúvida por favor deixem nos comentários comentários e até o próximo vídeo