Fala pessoal, tudo bem com vocês? Estamos iniciando aqui mais um conteúdo da Sama de Dados 2023, evento esse que está reunindo grandes novos na área de dados para conversar, mostrar como os dados vêm sendo utilizados nas empresas, mostrando demonstrações de cases, falando um pouco sobre as novas tecnologias e também promovendo debates e incentivando as novas conexões para que vocês saiam daqui mais preparados para o mercado ou sabendo o que há mais de novo aí no mundo de dados. Espero que estejam todos aproveitando e observando muitas informações legais compartilhadas pelos convidados e referências que estão participando do evento.
Hoje o conteúdo aqui vai ser um pouco mais técnico, a gente vai estar tentando entender alguns conceitos e pegando no código para criar uma aplicação simples e rápida, mas essa aplicação tem um potencial muito legal de gerar um valor para os negócios. O tutorial de hoje vai ser como treinar o ChatGPT com seus dados, vamos estar explorando um pouco... dessa ferramenta e entender algumas formas que ela pode ser utilizada.
E fica o convite também, caso tenha interesse, de acessar o site da Semana de Dados, acompanhar os outros conteúdos que ainda vão acontecer, ou que já aconteceram, e seguir as redes sociais para não perder os eventos futuros que podem estar acontecendo por aqui. Bom, me apresentando um pouco, eu vou estar acompanhando vocês ao longo desse tutorial. Eu sou o Nícolas, sou consultor de Ciência e Dados na Bix Tecnologia.
E falando na Bix, a Bix é uma consultoria de dados com foco em negócios e na conquista de resultados. A gente atua em... todo o processo analítico que vai desde a coleta, o armazenamento e a disponibilização dos dados e a partir disso a gente consegue estar criando visualizações, relatórios e sistemas.
Para isso a gente utiliza as principais ferramentas e tecnologias do mercado no desenvolvimento dos nossos projetos e assim a gente ajuda os clientes a extrair o máximo de valor dos seus dados e se transformar digitalmente. E é focado em extrair o máximo de valor de maneira inteligente é que trazemos o tutorial de hoje. Tá, e o que a gente vai estar fazendo aqui hoje?
Nosso objetivo é desenvolver um chat assistente. Por meio desse chat assistente, o cliente ou o usuário pode estar acessando essa interface, fazendo perguntas, questionamentos que ele tem de dúvidas sobre a empresa, e com base no conhecimento que a empresa já deixa disponibilizado publicamente, esse chat vai estar conseguindo responder de forma simples a essa pergunta do usuário, sem ter que estar entrando ali, fazendo uma busca muito profunda. no site da empresa ou tendo que entrar em contato ali com um consultor ou com algum time para estar resolvendo o questionamento. Então isso torna muito mais acessível o usuário ter acesso àquela informação que ele está querendo encontrar e não sabe se existe ali no site e essa interface pode estar ajudando ele a fazer isso. Esse conteúdo a gente vai estar extraindo do site da empresa, no caso a gente vai estar usando o site da Bix aqui nesse tutorial.
E através de web scrapping a gente vai estar vasculhando os sites que tem disponível no domínio da Bix e vamos estar extraindo esse texto, esse dado não estruturado e vamos estar depois, posteriormente, utilizando técnicas de processamento de linguagem natural, de NLP para estar deixando esse dado da forma mais rica possível para a gente estar passando depois para uma API da OpenAI, que é responsável pelo desenvolvimento do chat GPT. e esse modelo vai estar sendo treinado com esses dados e posteriormente a gente informa, passa esse modelo para o chat assistente que vai estar respondendo as nossas dúvidas ali que a gente vai estar mostrando e desenvolvendo junto aqui Então os passos para a gente estar desenvolvendo esse tutorial vão ser primeiramente a gente vai começar com o web scrapping e depois a gente vai pegar esse texto que foi extraído desse site vamos estar tokenizando esse texto, posteriormente a gente vai pegar esse texto tokenizado, vai criar um embedding desses tokens, e aí sim a gente vai estar fazendo a requisição da API para estar treinando o modelo e depois estar disponibilizando esse modelo treinado para o nosso chat assistente. Não se preocupem muito com os detalhes, esse tutorial realmente é um tutorial bem mais prático, acessível que qualquer um pode estar fazendo.
A gente vai passar um pouquinho por cada um desses pontos, desses conceitos que está sendo mostrado aqui. E também fica o convite para vocês estarem fazendo isso com o site de vocês ou algum site, não o site que eu vou estar fazendo aqui no tutorial. Você pode estar tentando fazer isso com qualquer site, só se atentem a...
a ler os termos de uso de cada site e para estar fazendo tudo da maneira mais correta, pois alguns sites precisam ter autorização para você estar fazendo o scrapping dele, do conteúdo. Então, se atentem a isso e fica o convite para vocês fazerem o projeto de vocês do jeito de vocês. E por fim, a gente espera que a gente esteja conseguindo desenvolver essa interface aqui.
Como eu falei para vocês, a gente está desenvolvendo um chat assistente. Então, a gente chama aqui assistente da Bix Tecnologia, onde a gente tem uma janela que a gente pode estar vendo a conversa que a gente está tendo com o assistente. Aqui embaixo, a gente tem uma opção para estar fazendo a pergunta.
Então, vou colocar aqui uma pergunta. Quero fazer um projeto de previsão de dados, de previsão utilizando os dados históricos. Você consegue me ajudar? E aqui o nosso, depois de pensar um pouquinho, o nosso, de estar fazendo a consulta, a requisição lá na API, o chat vai estar respondendo para a gente. Quero fazer, sim, podemos ajudar.
Nossa equipe de consultores está sempre disposta a ajudar a disseminar a cultura de dados e capacitar profissionais de todas as instituições e setores. Entre em contato conosco para saber mais sobre nossas soluções de inteligência artificial, machine learning e estatística para análises avançadas. Então, esse chat está utilizando do conhecimento que tem lá no... no site da Bix para estar conseguindo trazer a resposta, retornar a resposta que faça maior sentido para a pergunta que eu fiz ali para o chat. Então vamos lá, mão na massa e vamos estar fazendo isso aqui, fazendo esse exemplo, esse tutorial que você consiga fazer aí na casa de vocês também.
Vamos lá então começar esse projetinho, esse tutorial e antes de a gente começar a desenvolver alguma coisa, entrar no código. A gente vai estar precisando ajustar algumas coisinhas. A gente, no desenvolvimento, a gente usou a linguagem Python, então se você quiser estar acompanhando o tutorial, está fazendo aí na casa de vocês, dê uma pesquisadinha aí na internet como que ajusta o Python, como faz a instalação, como que é um ambiente de desenvolvimento para você estar seguindo esse tutorial. Então fica essa dica aí, se você quiser também estar fazendo aqui junto comigo. Outra coisa que a gente precisa é estar criando uma chave API da OpenAI.
O legal é que a OpenAI, para novos usuários, eles disponibilizam 5 dólares de crédito para novas contas. Então, para você estar pegando sua chave, sua API Key, você só precisa estar entrando no site, fazendo a sua conta. precisa de um número de telefone válido para estar criando a conta e depois disso é só a gente pegar a API e estar usando ali no projeto. Então essa aqui é a tela que a gente vai estar acessando para ter acesso às nossas chaves da API.
Eu vou estar mostrando aqui na minha tela como que a gente faz esse acesso para vocês também estarem conseguindo fazer na casa de vocês. Então, quando a gente acessa pela primeira vez a plataforma, aqui a gente vai estar pedindo para você ou fazer login na sua conta ou criar uma conta nova. E aqui você precisa ter o telefone válido ali para receber o SMS e estar colocando o código para poder acessar. Depois que você acessar, a gente vai estar entrando nessa página.
Aqui, no caso, eu já estou na página da API, mas essa é a página inicial. Depois a gente vem aqui no menu, clicamos aqui em View API Keys. E aqui a gente vai ter todas as chaves API que eu já criei e eu estou utilizando. Então, para você criar uma chave de API nova, você vem aqui, digita um nome que você quer gravar e Create Secret Key.
Ah, e aqui é interessante, você está salvando esse código, essa chave aqui, porque ele até avisa aqui que se você... fechar essa janela e não salvar, você não vai ter acesso a ela novamente no futuro. Então é legal você copiar, salvar num lugar que você tem controle, que você vai estar conseguindo recuperar no futuro, porque cada chave dessa você mantém um treinamento. Então se você, aqui no tutorial a gente tiver, a gente treinar com essa chave API Key, e se você perder, você não vai ter acesso a mais esse modelo treinado no futuro. Você teria que estar criando uma nova.
Secret Key e aí está retreinando aquele modelo. Então é legal você pegar e salvar essa chave em algum lugar seguro. Outra coisa que a gente pode também estar fazendo aqui no site da OpenAI é indo aqui em Usage.
Quando você começar a utilizar, fazer requisições na API, você vai estar gerando custos e como eu falei a gente tem 5 dólares de créditos gratuitos. Então eu já fiz alguns treinos, já fiz alguns testes aqui e aqui tem o consumo, eu posso ver o consumo por dia, quais os dias que eu usei, o quanto que eu usei em cada dia. e aqui você consegue estar monitorando quanto você está gastando não se preocupem porque esse treinamento que a gente vai estar fazendo é muito barato então você pode treinar muita coisa, fazer vários testes que você não vai estar...
vai estar bem longe de estar gastando esses 5 dólares gratuitos que a plataforma disponibiliza para a gente voltando aqui ao slide aqui eu tenho alguns prints de... para referência caso queiram pegar esse slide no futuro para dar uma olhada. Temos aqui a página da API, a página ali para a gente estar monitorando quanto que está gastando da API, né? E vamos começar agora a introduzir alguns conceitos ali que são essenciais para a gente estar fazendo esse projeto. Primeiro vamos começar com o Web Scrapping.
O que é o Web Scrapping? O Web Scrapping é uma técnica de... extração de conteúdo de sites da internet.
Então a gente tem ali um site, um desejado que a gente quer extrair informação, a gente vai ter também os Scrappers, que são os robôs ou os bots que são scripts que foram programados para estar acessando esse site desejado e extraindo ali as informações que a gente tem interesse em estar coletando e armazenando. Então a gente... No fim, a gente vai ter essas informações extraídas, que elas podem ser armazenadas e, posteriormente, elas podem estar sendo utilizadas para fazer diversos tipos de análises, como monitoramento de preço, análise de concorrência, entre tantas outras aplicações. Mas hoje a gente vai estar usando isso só para armazenar o dado textual, o conteúdo do site específico que a gente tem interesse ali. Seguindo agora, a gente tem a tokenização.
Como na etapa anterior a gente falou sobre o web scrapping, e ali a gente vai estar extraindo o conteúdo dos sites em forma de texto, em dados não estruturados, a gente começa a ter a necessidade agora de ver um pouco sobre técnicas de tratamento desses textos em forma de... desses dados em forma de texto, né? Então, o primeiro que a gente vai estar olhando é a tokenização, que basicamente consiste em a gente pegar esse texto grande e está dividido em partes menores individuais, chamadas de token. Então, aqui no slide a gente vê o carro está andando rápido e embaixo a gente vê a forma dele representada em tokens. Isso é bastante fundamental quando a gente está lidando com processamento de linguagem natural, pois isso permite que o computador e o programa aprendam...
É... o significado da palavra individual e como ela se relaciona com o texto completamente. Então, isso é uma das técnicas bem importantes ali quando a gente fala de NLP. E vamos estar usando aqui em nosso tutorial.
O seguinte seria outra forma de tratamento, que seria os embeddings. Embeddings, então, é uma técnica que é utilizada quando a gente quer entender a relação semântica e sintática entre outras palavras. O que seria isso é dizer se uma palavra é similar ou não a uma outra. Então o que acontece é que um texto, os tokens, eles são transformados em... Ele é vetorizado e existe um espaço vetorial onde palavras similares estão próximas nesse espaço e palavras que não são similares estão bem distantes.
E isso faz muito sentido quando a gente traz para o nosso problema, que é o problema de... que a gente quer fazer perguntas e que tenham respostas que façam sentido com a nossa pergunta. Então, é por isso que a gente vai estar utilizando a técnica de embedding para estar facilitando o nosso assistente a estar trazendo respostas mais precisas e que façam sentido com as nossas perguntas, aí a pergunta do usuário. Legal, chegamos agora na parte do código.
A gente agora vai passar para outra tela. E vamos estar dando uma olhada ali no código, como que ele foi desenvolvido e como que a gente chegou naquela interface que a gente pode estar conversando com o chat, com o assistente ali. E que ele consiga estar trazendo informações relevantes para as nossas perguntas relacionadas ao contexto da Bix Tecnologia. Então, passando aqui para o nosso código, aqui a gente tem a forma que foi utilizada, foi em forma de notebook, que é uma forma mais ilustrativa e que a gente consegue estar entendendo passo a passo de o que está acontecendo.
Então, só relembrando, o nosso objetivo é aproveitar do conteúdo já disponível no site da empresa para criar um site, criar um assistente que possa responder questionamentos dos usuários e clientes. Como a gente vai fazer isso? a extração de dados textuais de um site através de web scrapping, utilizando os textos do site que vamos utilizar de embeds para extrair o significado das palavras em um texto através de similaridade semântica.
O embed, então, será utilizado como contexto para criar um conhecimento customizado, ou custom knowledge, ao chat GPT. E assim o assistente irá responder perguntas com base no conhecimento específico que foi disponibilizado ali para o assistente. E por fim, a gente vai disponibilizar a interface onde o usuário pode estar fazendo o questionamento ali de forma simples.
Então, aqui tem os primeiros passos para a gente estar configurando ali a nossa chave API. Essa chave API, o API Key, a gente vai estar utilizando mais para frente ali para estar fazendo a requisição do tanto modelo de embedding quanto o modelo que faz a resposta da... que traz a resposta das perguntas que a gente faz.
Legal inicialmente é que a gente faz, a gente importa os pacotes necessários para estar rodando esse código, temos aqui os pacotes mais gerais, que é mais utilizado na parte de ciência de dados ali, temos os pacotes para Scrapping, um pacote aqui para interface, e alguns pacotes ali que são utilizados junto com... a API da OpenAI. Então, inicialmente aqui a gente começa com o web scrapping, que, relembrando, a gente vai estar buscando nesses sites aqui que eu disponibilizei, a gente vai estar vasculhando e coletando os dados textuais desses sites.
A gente poderia estar trazendo as informações de todas as abas e URLs desse domínio da BX Tecnologia, porém isso ia ficar... bem grande, ia trazer muita informação e na hora que a gente fosse treinar ali o nosso embedding e fazer a requisição da API ia ter muitos tokens e isso ia ficar bem custoso e bem demorado, então o que eu fiz foi trazer somente as URLs ali da página principal do site da Bix Tecnologia. Teria outra forma de fazer isso que seria Eu vou escolhendo todo o domínio, mas eu optei por fazer dessa forma. Aqui a gente tem efetivamente o código que faz o scrapping desses sites.
Então a gente passa essas URLs que estão em forma de lista para essa função. É criado uma pasta com o nome do domínio da Bix Tecnologia, que no caso a gente pode estar olhando aqui. Aqui a gente tem essa pasta criada. E aqui dentro a gente vai ter...
Para cada um dos URLs que a gente passou ali em cima, vai ser criado um arquivo txt e dentro desse arquivo txt a gente vai ter todo o conteúdo textual desse site. Então vamos dar uma olhada aqui, a gente vai ter algumas partes, alguns ruídos, espaço, espaçamento e aí a partir mais para baixo aqui a gente vai ter um pouco do texto que está dentro desse site. A gente vai tratar esses espaçamentos um pouquinho mais para frente, então não tem tanto problema isso.
Então, aqui as pastas estão sendo criadas com o nome do domínio, se já existe ele faz a verificação, e aqui é a parte efetivamente do web scrapping que a gente está usando essas bibliotecas para estar abrindo o site, analisando o conteúdo e trazendo para... para ir para o nosso código e ir salvando em um txt. Então aqui a gente vê o código que ele rodou, ele está fazendo URL por URL, essa parte de extração, e aqui a gente vai para a parte de processamento do texto.
Como eu falei ali, tem bastante ruído dentro desses textos, e essa funçãozinha a gente vai estar removendo essas quebras de linhas, os passamentos, para ficar um texto um pouco mais... com menos ruído e somente com as informações textuais relevantes para a gente. Aqui a gente passa esse código e faz o tratamento.
E no fim a gente vai estar salvando todas aquelas páginas que foram extraídas e salvas no arquivo txt A gente vai estar abrindo e criando um dataframe, que é um objeto aqui da biblioteca do pandas E vai estar armazenando todo esse texto em forma de tabela, em formato tabular Então para cada URL ali do domínio da Bix a gente vai estar salvando o seu respectivo texto em uma coluna desse... em uma linha e coluna dessa tabela chamada DataFrame, né? Aqui a gente faz somente uma verificação do número de páginas extraídas e o número de páginas que a gente formou inicialmente, para ver que está batendo exatamente. Então, a gente passou para o nosso código, para ele estar fazendo a extração de 19 páginas, e ele realmente... conseguiu extrair 19 URLs.
E aí a gente vai para a parte de tokens, que como a gente falou antes, a gente tem um texto corrido, um texto inteiro, e quando a gente vai utilizar, vai tratar de processamento de linguagem natural, é interessante que esse texto esteja decomposto em pequenas partes de palavras, mais especificamente os tokens, então a gente vai estar... utilizando uma biblioteca que é recomendada ali pela documentação da OpenAI, que se chama TickToken, e essa biblioteca vai estar sendo responsável para estar fazendo a tokenização desse texto. E aí aqui a gente tem uma distribuição interessante, que a gente está fazendo um gráfico de histograma para a gente estar visualizando a distribuição do número de tokens. por linhas desse nosso data frame, que no caso cada linha representa o conteúdo de um site, uma URL que a gente trouxe do web scrapping. Essa informação vai ser relevante um pouquinho mais para frente, porque a gente vai ter que diminuir o número de tokens, limitar o número de tokens que a gente vai estar passando para o treinamento dos embeddings.
Então a gente vê aqui de novo, a gente salvou o nosso DataFrame em uma nova coluna em que a gente incluiu o número de tokens para cada página. Aqui eu falo um pouco sobre a API de Embedding, que ela possui um limite de número máximo de tokens de entrada que a gente pode estar passando para o Embedding. Mas, no nosso caso, a gente não vai estar atingindo esse número limite, porém, como a gente está utilizando uma API gratuita, acontece de quando a gente fazer as requisições, ele dá um erro de requisição, que no caso a gente está fazendo muitas requisições em um curto espaço de tempo e essas requisições acabam atingindo rapidamente o limite máximo que a gente consegue fazer diariamente. Então, a gente vai estar limitando aqui em esse nosso data frame, a gente vai estar limitando para cada linha que a gente está passando em um número máximo de 500 tokens. Então, nessa parte do código aqui, a gente define uma função que vai estar percorrendo esse nosso data frame e vai estar verificando se...
aquela linha possui um número de tokens maior que 500. Se ele tiver, ele vai quebrar essa linha em mais de uma e vai gerar uma linha nova e vai estar separando o texto. Então, no caso, se a gente tem uma página que tinha um número de tokens de 900, a gente vai estar separando no DataFrame em duas linhas, uma com 500 tokens e outra linha com 400 tokens restantes. Não é interessante colocar um número de tokens aqui muito baixo, porque se a gente diminuir muito esse número de tokens, quando a gente passar para o embedding, lembra que o embedding a gente está tentando trazer a relação semântica entre as palavras, então entre as palavras e cada palavra individualmente e as palavras em um contexto.
Então se a gente diminuir o número de tokens, a gente vai estar passando... A gente vai estar... Limitando o contexto que essa palavra está inserida. Então, pode ser que mais pra frente o nosso chat assistente ele não tenha tanta noção do contexto em que aquelas palavras estão inseridas e pode ser que a resposta dele não seja tão precisa e não consiga trazer as informações que a gente está realmente querendo encontrar.
Então, pode ser que em uma página a gente tenha ali os serviços que a Bix oferece Se a gente separar, por exemplo, o serviço de Data Science lá está bem explicadinho, se a gente separa em duas linhas, pode ser que ele não correlacionem um serviço com o outro. Então é por isso que não é tão interessante a gente colocar um número de tokens tão baixo. Legal, então aqui a gente tem a visualização novamente, que a gente vê que ali no nosso DataFrame a gente ficou limitado no máximo agora em 500 tokens.
E antes a gente tinha casos em que tinha 2.250 tokens, né? Só para ver aqui também o número total de tokens que a gente vai ter no nosso treinamento. Isso aqui é interessante para a gente saber de antemão quanto que a gente vai estar gastando para treinamento do nosso embedding.
Porque a API ali a gente tem um custo por cada mil tokens. Então a gente vai ver isso mais pra frente. Aqui só mostrando novamente que está limitado em 500 tokens.
E agora... Antes a gente tinha 19 linhas no nosso data frame E separando com o limite máximo de 500 tokens Agora a gente tem 33 linhas no nosso data frame Para treinar E aqui na parte de embedding Novamente que a gente vai estar utilizando Para entender a parte semântica A gente vai estar usando o modelo text embedding A da 002 da OpenAI Ele é um dos modelos mais recomendados por conta do preço baixo que ele tem e o bom desempenho que ele consegue estar trazendo para a gente. Aqui tem um blogzinho da OpenAI que você pode estar lendo um pouco mais sobre esse modelo de embedding. E aqui a gente tem o valor do preço por cada requisição da API por cada mil tokens.
Então o valor de requisição é... É 0,0001 centavo de dólar para cada mil tokens, então a gente pode ter uma estimativa de quanto que vai custar o nosso treinamento, utilizando os 15 mil tokens, né, que a gente tinha aqui, 15.034 tokens. Então, o preço total do nosso treinamento desse embedding para a requisição, todas as requisições que a gente vai fazer, vai ficar em 0,015 centavos de dólar, que é um preço super baixo.
Visto que a gente tem gratuitos ali, 5 dólares para a gente estar gastando de forma gratuita, né? Legal, aqui a gente vai ter uma funçãozinha para armazenar ali a nossa chave API que a gente pegou lá do site da plataforma do OpenAI. Então, seria legal você não deixar essa chave pública. No caso... É interessante que você cria, quando você estiver fazendo um projeto, você cria um arquivo, esse arquivo você torna ele secreto e você armazena a sua chave API lá dentro e cria uma função para estar lendo esse arquivo e salvando essa API.
Então, esse código está trazendo minha chave de API e aqui efetivamente a gente está fazendo a parte de treinamento com o embedding. Esse código tem algumas formas de contornar alguns erros que ele acontece por eu estar fazendo um número alto de requisições. Então, se a gente vê aqui o código, ele faz o embedding de linha por linha do nosso data frame.
No caso aqui, ele vai ter 33 requisições para treinamento de embedding do texto. E algumas vezes ele acontece um erro de... pela taxa de requisição e eu só coloco ali um tempo para ele ficar esperando e depois fazer a requisição novamente.
Assim a gente consegue efetivamente estar fazendo o embedding do nosso texto, então aqui a gente consegue visualizar aquele espaço vetorial que a gente falou antes, para cada token a gente vai ter um valor que está ali dentro daquele espaço e se a gente olhar a distância entre diferentes tokens a gente consegue entender a distância entre a similaridade entre eles. Aqui só aplicando o embedding para um CSV, no caso, que já é o texto anterior que eu estava trazendo antes. E essa parte a gente vai estar indo para realmente fazer o nosso chat assistente.
Então aqui a gente define a outra função que é responder o questionamento. que a gente vai estar utilizando um outro modelo, não é mais o teste embedding Ada 002, a gente vai estar usando o text da 20.003, que é um modelo para realmente fazer, trazer a resposta para uma pergunta, e a gente vai estar usando aquela função que a gente criou anteriormente para criar um contexto para essa resposta aqui. que esse outro modelo vai estar utilizando. Então, aqui a gente cria um contexto, a gente define essa função de completion create, que no caso a gente define um prompt, esse prompt vai ser...
que eu defini aqui para esse caso, é responda as perguntas com base no contexto abaixo, que no caso é o contexto que a gente criou ali na função anterior, e se a pergunta não puder ser respondida, diga, eu não sei responder isso. Aqui a gente definiu o contexto, e a pergunta, a question, essa pergunta é uma pergunta padrão que a gente definiu aqui só para sempre ter isso como resposta. Aqui tem alguns outros parâmetros, mas... Basicamente seria isso.
A gente pode rodar aqui um exemplo para ver se realmente está funcionando esse assistente, se ele realmente está respondendo aos questionamentos. Então, aqui a gente chama aquela função de answer question, perguntamos o que é a Bix Tecnologia, e a função vai retornar para a gente a Bix é uma consultoria de dados com foco em negócios e na conquista de resultados. Utilizamos as principais ferramentas de tecnologias de mercado e desenvolvimento de projetos que ajudam os nossos clientes a extrair o máximo de valor de seus dados e se transformar digitalmente. A gente pode fazer algumas outras perguntas também.
Quero perguntar o dia de amanhã, vocês podem me ajudar? E ele responde, eu não sei responder isso. Isso acontece porque o domínio, o contexto que a gente passou para os embeddings não tem nada que seja parecido com esse tipo de pergunta, então ele não alucina. trazendo resposta para essa pergunta.
Então agora a gente vai ver um pouquinho da parte da interface que vai ser utilizada para a gente interagir com o assistente em forma de conversa, assim como a gente faz no chat GPT. Aqui a gente está definindo uma função que vai servir de auxiliar para estar mandando a pergunta que a gente fizer ali no assistente. lá para aquela pergunta de responder o questionamento que vai fazer a requisição lá na API do OpenAI.
E aqui efetivamente a gente gera os componentes ali da nossa interface, tem algumas imagens que a gente está colocando, estilização, a gente traz alguns componentes já pré-prontos ali da biblioteca do pacote do Grádio, define algumas coisas e aí a gente... gente está pronto aqui para realmente abrir no nosso navegador. O que a gente pode fazer segurando o control do teclado e clicando com o botão esquerdo do mouse. Então vamos abrir aqui, aqui temos a nossa interface de assistente e vamos fazer algumas perguntas aqui, vamos tentar perguntar qual que é o telefone da Bix, vamos ver se ele é capaz de responder para gente.
Então, o telefone da Bix seria esse daqui, depois a gente pode estar confirmando lá, vamos ver se ele acertou, Bix Tecnologia, vamos ver aqui embaixo qual que é o telefone, se ele mostra para a gente. Então, aqui a gente tem um telefone aqui do Brasil, 996595490. Então, o nosso assistente aqui acertou. Vamos perguntar algumas outras coisas. Quais vagas de trabalho estão abertas? Vamos ver se ele responde para a gente.
A gente tem atualmente a vaga de estágio comercial 100% remoto aberta. Não sei se está atualizado atualmente, pode ser que seja ou não. Se quiser, dá uma olhada lá, entre no nosso site e veja a página de carreira. Vamos perguntar alguma outra coisa aqui para ele.
Vamos ver se uma pergunta um pouquinho mais absurda se ele consegue responder para a gente. Quero prever o dia de amanhã, vocês podem me ajudar? Eu não sei responder isso. Então a gente vê que ele realmente consegue trazer respostas que estão dentro do domínio que a gente trouxe lá da parte de extração. através do web scrapping, todo o treinamento que a gente fez e aqui ele não consegue trazer respostas que não estejam dentro desse contexto que a gente trouxe ali para o treinamento.
Então vamos voltar ali para o nosso slide e aqui a gente vai falar um pouquinho de aplicações. Fiquem à vontade depois para estar explorando mais essa ferramenta, brincando, fazendo várias perguntas, ver o que ele consegue, qual o potencial dele dessa aplicação ou não. E aqui a gente vai falar um pouquinho mais de quais aplicações, onde que a gente pode estar usando essa ferramenta. Então, qualquer empresa, negócio que tenha muito documento, que tenha bastante informação.
do negócio, regras de negócios ali armazenadas, então não precisa ter tanta coisa guardada assim, como a gente viu aqui, a gente fez uma aplicação simples apenas usando os dados do site ali, informações que equipes já foram ali ao longo do tempo curando essas informações, criando e botando trabalho em cima, então já foi suficiente para a gente fazer uma aplicaçãozinha aqui legal, então alguns... Casos poderiam ser setor de atendimento ao cliente, a gente poderia fazer, aplicar isso no motor de busca para estar ali fazendo busca de documentos internos de empresas. A gente também poderia estar utilizando para aplicações que querem extrair informação de dados não estruturados, como é o caso ali, esse caso que eu apresentei para vocês.
Também pode estar utilizando para central de conhecimento técnico de empresa, caso tenha vários... Projetos já realizados no passado, a gente pode estar alimentando esse modelo com as informações desses projetos e depois estar utilizando esse assistente para consulta, fazer a gestão interna de conhecimento. A gente também pode imaginar uma empresa que recebe muitos currículos, a gente pode estar treinando, gerando prompts mais específicos para estar tentando extrair os skills desses... desses currículos para ver se encaixa ali com a cultura com fit da empresa é imaginando também uma empresa que tem vários PDFs de documentos técnicos a gente pode estar também treinando um assistente ali para estar trazendo essas informações e deixando os usuários desses documentos técnicos com poder ali de de tá acessando as informações de forma mais rápida e chegamos ao fim da desse nosso tutorial.
Agradeço muito quem esteve aí presente, fico à disposição para receber feedback. Se quiserem conversar mais sobre casos de utilização, também me coloco à disposição. Fica aqui o meu contato, as minhas formas de estar entrando em contato comigo.
Também tem o QR Code aqui para o moliquedinho. Bora conversar e entender mais outros tipos de utilização que vocês tenham usado. Vou deixar esse conteúdo disponível para quem quiser estar tendo acesso depois e estar explorando um pouco mais as possibilidades. Agradeço a todos, fiquem com os próximos conteúdos que vão estar rolando aí na semana de dados de 2023 e muito obrigado. Até mais.