Olá pessoal tudo bem Eu sou Professor Fábio Santos e nesta videoaula eu iria abordar o tema como criar um assistente de inteligência artificial para sugestões de promoções a partir da localização do usuário e geradas pelo liama 3. 1 pessoal Imaginem a possibilidade de nós chegarmos com assistente inteligente por exemplo a Alexa e perguntarmos para ela são as promoções que estão disponíveis ou perguntar para ela Alexa onde tem promoção de picanha de filé ou perguntar para ela Alexa e quais são as promoções que estão próximas da minha localização e aí a Alexa vai responde não seria legal então pensando nessa ideia e eu desenvolvi um protótipo de um assistente inteligente que eu chamei de ofertas boot Beleza eu vou realizar uma demonstração para vocês e depois eu vou explicar como eu desenvolvi então vamos parar a demonstração Pessoal esse é o front end do assistente ofertas boot aqui tem uma um breve texto né descrevendo o ofertas boot eh que tem o objetivo de se tornar o waz das Ofertas e promoções H é um assistente pessoal que Visa ajudar a gente a economizar e basta a gente conversar com com ofertas boot e deixar que ele encontre as melhores ofertas em tempo real de acordo com a com a preferência do usuário né e localização beleza aqui a gente observa um mapa com a localização do usuário e a a localização né de das promoções aqui né Beleza então esse é o mapa de ofertas OK aí vamos dar uma olhada aqui ó no lado esquerdo tem o menu primeiro item do menu é o mapa o segundo item é adicionar promoção né Essa opção ela permite que uma pessoa ela possa eh cadastrar uma nova promoção Observe ó é possível fornecer o nome do produto o nome da loja eh a porcentagem de desconto eh eh também capturar a localização eh do lugar né da loja eh clicando aqui nesse botão as coordenadas elas são capturadas e e é possível também fornecer o endereço um ponto de referência beleza OK a outra opção é justamente ó chat com ofertas boot essa opção permite que o usuário ele possa literalmente conversar com ofertas boot para pedir para ele informações sobre promoções sugestões e de promoções né OK então chat com especialista em promoções Digite a sua pergunta sobre ofertas eu vou vou pedir para ele me fornecer uma lista de promoções Me forneça uma lista de promoções disponíveis Ok Opa disponíveis beleza vamos aguardar um [Música] pouquinho Vale ressaltar que essa lista de promoções ela se refere eh as promoções que estão cadastradas né na base de de dados e tá aqui a lista ó a lista de promoções Beleza tem aqui o Smartphone tem uma TV 4K tem um refrigerador um filé e aqui a mensagem melhores compras beleza aí eu vou fazer o seguinte ó vamos imaginar que eu queira saber e onde tem promoção de filé legal né o de picanha eh Ok vou perguntar para ele então onde tem promoção de filé vamos ver se ele vai responder direitinho ã Ok eu lá de acordo com as promoções próximas encontrei uma oferta de felé para você a promoção que encontrei sem querer fazer propaganda né é da Baratão da Carne localizada no Parque 10 Rua Tancredo Neves e neste local você pode aproveitar um desconto de 10% no filé muito legal né Muito legal Espero que ajude beleza pessoal sei lá vamos supor que eu queira eh saber onde tem promoção de TV vai onde tem promoção de opa onde tem promoção de TV 4K Ok eh eu posso ajudar a promoção de TV 4K está disponível eh Casas Bahia né no Sama uma Park Shopping Este Shopping está localizado eh no endereço que não forneceu um Provavelmente quando o cadastrei Eu não passei né o endereço vamos dizer assim simbólico semântico né Ó mas não é um problema pois posso fornecer outras informações úteis para você encontrar mais facilmente o Sam Park Shopping eh encontra-se cerca de 14 Km da coordenada que você forneceu ou seja coordenada correspondente à minha localização Vale ressaltar que a minha localização ela é as coordenadas né Essas coordenadas elas são obtidas automaticamente quando eu acesso a aplicação pela primeira vez Ok para fechar ó além disso eh Lembrando que você poderá obter um desconto de 15% na TV 4K em promoção Casas Bahia legal né tô fazendo uma propaganda aí Espero ganhar uma TV das casas da Bahia vou voltar aqui pro mapa e vamos dar uma olhada Só para confirmar essas promoções se realmente essas promoções são verdadeiras né então Eh aqui ó aqui o Map esperar aqui um pouquinho carregar o mapa terminar aqui o carregamento Ok carregou observ eu vou clicar aqui Opa ó o filé o Baratão da carne 10% de desconto beleza vamos ver aqui essa outra smartphone Ok essa outra promoção tá aqui ó TV 4K Casas Bahias né S uma Park Shop 15% de desconto beleza pessoal legal né então eu poderia ficar aqui conversando com com ofertas boot né eu poderia adicionar aqui um produto por exemplo e Coca coca-cola coca-cola Zero ah Qual a loja que tá vendendo e super Supermercado eh Supermercado barato barato demais né Eh desconto e 50% de desconto ó clique para obter localização vou clicar aqui para capturar as coordenadas né Eh ok eu tô usando uma função que fornece suporte a g referenciamento e forneça aqui o endereço ou algum ponto de referências eu vou colocar aqui eh fica próximo ao Parque Parque dos Gigantes da floresta Floresta beleza e aí clicar em adicionar promoção adicionada com sucesso foi adicionado no banco de dados beleza pessoal ã Vou acessar aqui o mapa vamos aguardar aqui é um pouquinho carregar o mapa beleza mapa foi carregado e Olha só pessoal tá aqui ó vamos aguardar finalizar Pronto foi finalizado e tá aqui a nova promoção ó aí ó coca-cola né coca-cola zero Supermercado barato barato demais 50% de desconto legal né certo e eu posso conversar com o chat ofertas ofertas boot vou perguntar para ele onde tem onde tem promoção de coca-cola zero Ok vamos lá Digite sua pergunta sobre ofertas Eh vamos lá onde onde tem promoção de Coca Cola [Música] Zero vamos ver se ele vai responder corretamente Ok olha aí ó ol lá se você está procurando uma promoção de coca-cola zero tem uma boa notícia para você a promoção coca-cola zero Supermercado barato demais ó legal né aqui ó você pode encontrar Supermercado perto do Parque do gigante da floresta lembre-se de aproveitar o incrível desconto de 50% eso ter ajudado obrigado por perguntar ok ficar aqui né Eh interagindo ó vou fazer só mais uma perguntinha vai eh eh mostre-me uma promoção que esteja eh perto de mim da minha localização localização Ok vamos ver se ele vai responder Pois é como estava dizendo eu poderia ficar conversando Imaginem poder interagir com ele através de voz vai ser muito legal né Muito legal e tá aqui realmente ó verificando sua localização Encontrei as promoções próximas de você né ã ele ele tá destacando aqui ó a promoção de smartphone ah muito legal né 10% de desconto muito bom eh essa promoção aqui fica na Magazine Luisa Shopping Manauara Beleza beleza ok pessoal então essa foi a demonstração visão geral pessoal essa figura ela tem como objetivo apresentar uma visão geral eh de como funciona o ofertas G beleza OK é possível nós observarmos nessa figura a presença de duas pessoas essa primeira pessoa aqui ela acessa o ofertas boot eh e quando ela realiza esse acesso a localização é obtida ou seja as coordenadas essas coordenadas elas são passadas pro ofertas boot né pro nosso assistente e ele usa essas coordenadas certo El ele eh encaminha essas coordenadas para o lama 3. 1 certo eh o lema 3.
1 ele vai gerar uma resposta para o usuário essa resposta vai entregar pro usuário as ofertas e de onde ele vai obter as ofertas ou as promoções de um banco de dados Beleza então Eh quando o usuário ele interage com com o assistente né com ofertas good pedindo para ele uma lista de de promoções repito a localização dele obtida as coordenadas elas vão Se somar a a solicitação do usuário né como um contexto que vai ser encaminhado pro llm Lima 3. 1 eh que usará né essas informações como como um contexto mas eh os dados que estão armazenados no banco de dados esses dados eles se referem a aos registros eh das promoções né E aí gera uma resposta amigável que vai ser entregue pro pr pra pessoa que solicitou que pediu uma lista de promoções e essa outra pessoa aqui que vocês estão vendo eh faz o papel daquele usuário que ele é engajado né aquele usuário que ao se deparar com uma promoção ele acessa o assistente para adicionar uma nova promoção Então essa nova promção vai ser armazenada aqui no banco de dados então por isso que eu falei que o ofertas bo é uma espécie de wer um ambiente colaborativo e inteligente de promoções e ofertas mediado pelo um assistente inteligente beleza pessoal deu PR entender e a entar esse Assistente eu usei algumas ferramentas ferramentas pessoal as ferramentas que eu usei Vamos lá eh eu usei o grock cloud o grock cloud é uma plataforma em nuvem e que fornece uma infra eh de alta performance eh de llms ok observem aqui ó experiência né Eh de inferência rápida né no mundo ou seja o grock Claud Eu Já gravei várias videoaulas eh eh onde eu apresento projetos que eu desenvolvi são baseados no grock Cloud então é necessário eh ter uma conta no brocker para que seja possível através dela obter uma chave e essa chave viabiliza que seja possível utilizar uma API hã para através dessa api eh seja possível empregar um llm o llm que o nosso ofertas boot ele utiliza é o lema 3. 1 daqui a pouco eu vou mostrar o código isso vai ficar mais claro como como essas ferramentas elas foram usadas é o modelo lama 3.
1 o grock cloud também usei o stream elit para criar o Font end de uma maneira ágil e o hug Face e é importante ressaltar que o hangf ele é especialmente utilizado para hospedar o ofertas boot sim eu hospedei esse esse Assistente eu acho que eu vou compartilhar no na descrição desse vídeo o link então eu usei o serviço Space do rug Face para hospedar e o nosso ofertas Boost eu vou gravar uma videoaula especialmente para os para os membros do canal ensinando né como hospedar no hug Face o o assistente de beleza código pessoal eu vou compartilhar aqui o meu cursor sim é o cursor pessoal eh o cursor eu tô trabalhando agora com cursor na videoaula passada eu apresentei o CS para vocês né é um ide que vem com inteligência artificial integrada para oferecer suporte à programação torna extremamente ágil a programação eh os recursos baseados em Inteligência Artificial certo Beleza então nós temos aqui o código eh do nosso assistente de a é um código eh relativamente bem simples Vale ressaltar que eu desenvolvi esse código com ajuda da Inteligência Artificial do ideia ofertas aliás é melhor dizendo do ideia cursor Ok beleza então agora eu irei explicar o código vamos lá eu acho que vale a pena eu começar a explicar o código por aqui mesmo basicamente o que que tá acontecendo aqui eu tô importando e os módulos né eu tô importando o stream elit para criar o frontend o pandas para trabalhar com com dados né estruturação de dados o fum que fornece o suporte ao mapa o stream l fólio que faz essa integração do stream Elite com fólio o grock né que viabiliza eh a utilização da api do grock de alta performance ã o stream lline Geo location que fornece suporte a g localização G referenciamento usado pelo assistente ã o stream elit underline JS underline eval que é uma biblioteca que eu utilizo para obter as coordenadas obter a localização dos ó beleza usando aqui get geolocation daqui a pouco eu vou mostrar beleza e aí na sequência Observe nós temos aqui ó método Construtor grock que recebe como parâmetro a chave que eu obtive lá no lá no grock Cloud Eu já mostrei como fazer isso em vídeoaulas passadas né então eu obtenho a a chave certo passo aqui a chave pro Construtor usando o parâmetro ap line e o resultado dessa operação aqui vai ser um objeto né que vai ser gerado que vai conter referência da pi que vai ser guardada aqui na variável client Beleza então Por meio dessa variável CL vai ser possível repito usar api que viabiliza usar o lama 3 o modelo depois nós temos aqui ó o pandas sendo utilizado esse pd aqui é um apelido do pandas ó que eu vou usar Para viabilizar que seja possível carregar aqui um um dataframe de promoções esse arquivo aqui promotion pcsv é ele que ele é o nosso banco de dados ele tá fazendo papel do banco de dados ele que contém os registros das promoções eu vou mostrar para vocês aqui ó promotions e tá aqui ó Então e nós temos aqui algumas alguns atributos ó product Story desconto Latitude Longitude endereço né Vamos pegar aqui esse Primeiro Registro ah aliás Vamos pegar esse último registro foi o que eu cadastrei ó tá aqui ó o qual é o produto colocar Cola Zero eh qual é loja Supermercado barato demais aqui tem latitude tem longitude e o ponto de referência né ponto de referência Ah o desconto desconto né Tá aqui o desconto ó certo a longitude a latitude e o ponto de referência Então essa linha aqui vai criar um dataframe beleza e de promoções E aí Observe que nós temos aqui algumas funções ó nós temos essa primeira função aqui ó get underline user underline location que é justamente a a a função para obter a localização do usuário essa aqui é uma função wrapper né ã que faz uso eh observem aqui ó get underline e geolocation certo é essa né operação aqui que vai retornar as coordenadas Ok eu vou eh guardar o resultado nessa variável location Então por meio dela vai ser possível obter a latitude e a longitude beleza eu envolvi aqui essa operação através de um TR tricep um tratamento de exceção porque essa operação para localização ela vamos dizer assim às vezes ela falha né às vezes ela ela não retorna as coordenadas então para evitar que o programa quebre eu coloquei aqui um Mas isso não é sempre que acontece beleza bom depois nós temos uma outra função que é a find promotions essa função ela que fornece suporte para encontrar promoções Ok então ela permite que seja possvel a gente varrer desse laç aqui frame pegar as promoções que estão no data Fame e armazenar aqui ó no Array beleza que vai ser retornado pela pela função Então essa função vai retornar uma Rei uma lista de promoções essa outra função aqui mais complexa é a Create underline map é a função que cria o mapa de ofertas beleza Então essa função ela recebe ela tem aqui alguns parâmetros de entrada o primeiro parâmetro euse online latitude que vai trazer a latitude correspondente à localização do usuário e use on Longitude vai trazer a longitude correspondente à localização do usuário e eh observem aqui aqui são as promoções né E esse terceiro parâmetro aqui são as promoções próximas do usuário vamos dizer assim beleza bom o resto aqui pessoal tranquilo basicamente o que acontece aqui eh vai ser adicionado o título do mapa né observem Ó mapa de ofertas depois o mapa vai ser criado e ele vai ser Centralizado na localização dos olhos vocês estão lembrados que eu eh expliquei por meio daquela figura visão geral que a localização dos óleos é capturada certo e essa localização ela é mostrada no mapa né Beleza então aqui na próxima linha ó o marcador ele vai ser adicionado um marcador correspondente à localização do usuário vai ser adicionado e depois esse laço aqui ele vai adicionar as marcações correspondentes às promoções correspondentes as localizações das promoções também envolvi usando aqui esse bloco de código com tricep beleza OK bom depois a gente gente se depara aqui com uma função muito importante Observe ó chat underline WiFi underline llm essa função ela que fornece suporte ao chat com o ofertas boot ou chat com llm beleza observem que essa função ela tem alguns parâmetros de entrada ó a latitude do usuário a longitude do usuário e as promoções esses parâmetros de entrada eles vão ser usados eh na definição do do contexto que o llm ele utilizará para responder e e Vale ressaltar né que essas promoções aqui essa lista de promoções ela é obtida eh de um banco de dados daquele arquivo csv né Desse arquivo aqui Ok eh Beleza então nós temos aqui a adição do título observe a chat com especialista em promoções depois nós temos aqui uma elemento do stream elit ó o texto na line input que permite que o usuário possa digitar uma pergunta ó Digite a sua pergunta sobre ofertas essa pergunta vai ser guardada aqui na variável use Line input que ela vai ser usada eh ela vai fazer parte né do contexto beleza que vai ser passado ou prompt nós podemos também falar né que é um prompt que vai ser passado pro llm beleza aqui nessa linha de código basicamente o que que tá acontecendo aqui eh aqui eh está sendo formatadas promoções para o prompt do llm ok então observem que eu tô especificando aqui ó eh a promoção né Eh produto a loja o endereço o desconto a porcentagem de desconto então aqui eu tô criando eh uma eh eh uma string né um contexto que ele levará pro llm eh quais SAS promoções né em quais lojas um endereço um desconto beleza depois nós temos aqui eh Aqui é onde vai ser executado o processamento Da pergunta do usuário em outras palavras aqui nesse bloco é onde vai ser gerada a resposta é onde vai ser eh criado ali a lista de promoções que vai ser apresentado pro usuário então Observe que tem aqui Um prompt ó se essa se essa variável se ela for verdadeira ou seja se se existir uma pergunta do usuário Lembrando que essa variável eu uso do L input ela contém a pergunta do usuário né então se for verdadeiro eh observem tem um prompt aqui ó eh você é um especialista em recomendação de produtos né baseado em em promoções deve responder somente perguntas sobre ofertas e promoções E aí ó é promoções próximas então eu passo aqui eh as promoções né que foram obtidas Lá do banco de dados e também tô passando aqui ó usuário em a latitude e a longitude Ou seja a localização do usuário Observe ó um usuário né que tá em uma determinada localização fez a seguinte pergunta qual a pergunta a pergunta vai ser passada através da variável euse input que foi alimentada exatamente aqui ó né Beleza eh responda a pergunta do usuário de forma útil informativa Beleza então esse prompt ele vai ser passado como um conteúdo para o para o usuário né o conteúdo do usuário né vai fazer parte aqui da mensagem que é um dos parâmetros de entrada do método Create né o outro parâmetro é justamente o llm observem aqui ó lema 3 e traço o B eh eu na verdade eu fiz uma alteração aqui eu tava testando eu esqueci de voltar para o lema 3.