Tutorial: ChatBot alimentado com 11 Milhões de Vagas
17.76k views3811 WordsCopy TextShare
Lucas Montano
Tutorial Snowflake BrightData Streamlit. Abaixo tu consegue créditos pra usar a Brigh Data e a ...
Video Transcript:
cara hoje eu quero desenvolver um projeto contigo e eu tô a fim de trabalhar com dados então Deixa eu te explicar do que que se trata tu já parou às vezes para refletido tipo assim Lucas o que que será que eu devo aprender tu tem aí um um um roadmap de estudos para mim que quero trabalhar com dados com desenvolvimento backend com desenvolvimento Android Qual que é o roadmap o que que eu devo utilizar e Cara isso é muito trick tá ligado porque tu tem um conhecimento de base mas também tu tem um conhecimento que o mercado tá demandando então normalmente o que eu falava PR as pessoas é o seguinte cara vai lá na aplica pra vaga né faz uma entrevista vê o que eles estão perguntando lê a descrição da vaga e usa aquela descrição para estudar usa aquilo como teu roadmap é claro que tu não pode simplesmente se ater as coisas superficiais né então tu vai entrar lá no no Glass door Tu vai entrar no no Linkedin Tu vai entrar no indeed no gup não sei qual Portal tu tá utilizando aí para aplicar pra vaga Mas tu vai entrar nesses Tais e tu vai ver tipo assim o que que eles estão pedindo e claro que tem muita coisa ali que vão ser os frameworks que são coisas que não são conhecimentos de base Mas vai ter muito conhecimento de base também e tudo isso tu pode utilizar para construir por exemplo o teu roadmap Essa é só uma ideia que eu tava tendo né e eu pensei cara por que que a gente não treina né um modelo para nos responder isso então já que os dados eles estão espalhado em vários lugares com em vagas de empregos Ah diz ali a descrição também diz sobre tendência de salário a habilidade que tu precisa ter vamos juntar isso e vamos criar um chatbot que nos responde o que que a gente deve estudar Qual que é a tendência do salário por exemplo eu ganho 5. 000 o que que as vagas que pagam 10. 000 estão exigindo Vamos criar esse chatbot que sabe tudo sobre habilidades e salários e para fazer isso acontecer eu vou usar duas ferramentas tá duas empresas aqui que oferecem soluções a primeira delas a ida que oferece os dados né então a gente pode criar por exemplo os nossos web scrapers lá mas a gente também pode ter acesso a ao nossos aos dados né os dados puros Então a gente vai primeiro importar os dados e depois a gente vai utilizar o armazenamento de dados né da os Warehouse da snowflake Então nós vamos ter aqui snowflake Warehouse Mas vamos utilizar também o modelo artec ai deles Tá arttec certo então o primeiro passo aqui basicamente vai ser importar os dados da Bria pra snowflake eu já tinha conta na Bria eles são parceiros aqui do canal há um bom tempo então eu já tenho os dados aqui são vários gigab de dados de de de entrevista de emprego de vagas de emprego e eu preciso criar uma conta na snowflake eu vou fazer isso contigo aqui do zero agora deixa eu colocar aqui meu nome sobrenome empresa aí aí preenchi os dados e ele me diz aqui para escolher né a a edição do Snow do snowflake vou deixar enterprise Google Cloud colocar US Central check aqui get started Marc os ônibus ver se a gente não é bot personal learning in development Ok marcamos ali as opções agora a gente vai receber um e-mail de confirmação Aqui tá o e-mail deixa eu ativar username minha senha e é isso aí get started foi esse aqui é o painel tá a gente tem um tri de 30 dias e 00 de crédito então como eu quero utilizar dados reais aqui eu vou utilizar a bride data para ter acesso a esses dados de emprego Então deixa eu acessar aqui a Bria e fazer o download dos dados que eu tenho lá dos datasets então aqui no Bria tem diversos datasets e eu peguei esse do LinkedIn tá então LinkedIn Job listening eu acho que é job listening tem Glass door e eu peguei tem indeed E se eu não me engano tem do LinkedIn que são 11 milhões de de registros né então a gente tem aqui registros reais de vagas de empregos que a gente vai estar utilizando para mapear né os cargos descrições salários e habilidades para que a nossa ia consiga nos auxiliar nessas pesquisas Então a primeira coisa aqui no snowflake deixa eu dar um zoom aqui é fazer o upload do arquivo local que eu tenho aí eu tô subindo aqui a lista de de job listenings com informações ah eu tô utilizando um sample menor aqui só para fazer mais rápido aqui pro vídeo eu ten tem que selecionar uma base de dados eu tenho que criar uma nova vou criar aqui chamar de job Jobs ah deixa eu criar base de dados criada eu preciso selecionar uma tabela vou criar aqui uma tabela chamada LinkedIn então vai ficar Jobs Public LinkedIn next aí tá carregando aqui tão Então as colunas né então tem o job ID Company name data que foi postada o o título a descrição os benefícios ah Job typo se é Full Time ou não se é remoto ou não a forma do salário então quanto que é o salário por hora o quant que a empresa é avaliado todas as informações da vaga incluindo a descrição que aqui tem as habilidades né então aqui agora a gente tem todas as informações que a gente precisa para ia poder te responder por exemplo Ah eu quero ir do meu salário de 5.
000 para 10. 000 o que que eu preciso aprender e por aí vai query data a gente pode usar o worksheets aqui do snowflake para rodar queries no nossa base de dados né então se eu rodar aqui ele vai fazer a query que tá ali na minha base de dados e aqui que vai trazer os registros Ah então o primeiro passo tá pronto tá os dados Foram importados talvez até antes de continuar para vocês estarem aí na mesma página deixa eu anotar tudo que a gente precisa fazer tá então primeiro importar dados da bright data para snowflake então a gente fez isso segundo passo vai ser dividir ah os dados em partes né em chunks Então a gente tem que dividir isso em partes ah a gente eu já vou explicar para vocês como que a gente faz isso terceiro passo vai ser conectar os dados no Cortex da snowflake então snowflake Cortex ai criar aplicações de a generativa com grandes modelos de linguagem llms totalmente gerenciados e converse com seus serviços de dados né ah depois a gente pode ver na prática ali Como que o Cortex ai funciona mas a gente vai criar o chat ali e tudo mais mas vamos partes por partes tá para vocês não ficarem confusos então importamos dados dividir em chunks conectar os dados os chunks né no text passo número quatro é construir o chat né o aplicativo isso a gente vai usar o stream lit que tá disponível lá dentro mesmo do da snowflake então para ti que trabalha com python aí basicamente o stream lit vai te ajudar a transformar o teus scripts Python em uma aplicação web né então a gente vai construir os nossos widgets tudo no nosso chatbot usando o o stream lit tá se tu quer saber mais tem que dar uma olhada lá no repositório do streamlit é é bem legal então embora esse Quatro Passos aqui parecem ser complexos eu vou te mostrar e eles não são tão complexos assim tá então vamos lá criar o nosso a nossos chunks baseado nas habilidades que estão dentro do Job description Então a primeira coisa que a gente fez então foi importar os dados mas agora a gente precisa transformar esses dados em chunks Lucas O que que significa esse Chunk que tu tá falando cara tu tem que pensar o seguinte tu tá construindo um uma I um um chatbot né tu tá construindo lá o teu chatbot E aí o usuário vai perguntar lá para ele né como faço para ganhar mais o que acontece é que tu não pode guspir pro teu tu não pode guspir tudo pro teu pro teu llm todas as informações sem dividir elas em partes então o primeiro processo que a gente tem que fazer é pegar por exemplo a descrição da vaga então a vaga Tem várias coisas lá descritas nelas muito iada iada iada sobre a empresa e a gente não quer essas partes a gente quer por exemplo dá um zoom simplesmente ali no no salário né O salário lá então dá um zoom naquela informação que tá dentro que tá lá dentro do Job description a gente quer também por exemplo a lista de de ferramentas que tu precisa saber né de linguagem de programação e tudo mais que tá perdida lá dentro da Job description então fazer o processo de Chunk é justamente tu treinar o teu modelo apenas com aquelas partes que são ã necessárias né então no nosso caso aqui a gente vai fazer um Skill f strategy Então a gente vai pegar as habilidades e a gente vai dividir as habilidades em partes e essa vai ser a nossa estratégia pro chatbot poder responder então o chatbot ele vai processar pedaços menores de informação beleza para fazer isso a gente vai ter que deixa eu até renomear aqui as abas para depois a gente não se perder essa aqui é ABA de Chunk Mas para fazer isso a gente vai usar o Python UDF meu que é o user defined function e esse UDF vai fazer o Chunk dos job descript habilidades vamos lá Create or replace function vou criar uma função aqui vou chamar de job Jobs Chun dentro dessa função eu vou colocar o que que a gente tem de coluna então ele tem o autocompletar aqui para nós então é description uma string salary Format form e assim vai Job title Company location bom criamos a função aí depois a gente precisa retornar uma tabela essa tabela vai ter o Chunk essa tabela vai ter o Chun vai ter o salário é uma string também na verdade vai ter todos os campos que estão aqui então deixa eu copiar e colar lengua isso aqui é só do das função Tá eu vou colocar o runtime version aqui e tudo mais tá runtime version o handler que a gente vai utilizar os pacotes bom então aqui tá o script completo né eu não vou deixar tô esperando digitar tudo mas basicamente aqui a gente deve colocar a lista de habilidades que são os keywords que a gente quer fazer o o trackeamento tá então aqui eu coloquei algumas coisas a gente poderia colocar ainda mais como sei lá Java JavaScript E por aí por diante essa lista aqui seria um outro processo que a gente precisa fazer pra poder passar pro chunker né que vai criar os chunks quais são as Skills que a gente quer que ele foque né então a gente teria que gerar uma lista de Skills aqui para ele poder processar os nossos dados né Deixa eu rodar isso aqui só tem uma sintaxe error aqui uma coisa importante é selecionar o nossa base de dados né Jobs Public sen não vai dar erro deixa eu rodar de novo E aí ele vai provavelmente agora aqui declarar o nosso chunker né então esse essa estratégia de chunking aqui ela vai manter apenas as habilidades o foco nas habilidades porque dentro de uma Job description tem muito iada iada iada iada iada iada ah porque essa empresa é muito boa de trabalhar não sei o que lá a nossa cultura eu não quero saber disso para saber o quanto o que que eu preciso aprender para ganhar mais não é isso que eu quero saber e tudo isso hidrate-se né pessoal hidrate-se e tudo isso que a gente tá fazendo aqui basicamente é pr para que a gente tenha uma qualidade de resposta melhor do nosso do nosso bot tá então Jobs chunks criado Job Chunk criado com sucesso bom deixa eu criar uma nova aba aqui selecionar o mesa base de dados que é importante e agora a gente precisa criar a nossa a nossa tabela tá ligado que vai basicamente armazenar o nosso Job Chunk então aqui é um skl que eu tô que eu tô escrevendo aqui ão Create table job description chunks chunks as aí aqui dentro Eu vou ter um select dentro da nossa tabela Jobs eu vou ter o job ID deixa eu Copiar todas as colunas que a gente tem ali Então essas são as colunas que eu tenho da nossa tabela que a gente importou e a gente vai ter um t de Chunk aqui que vai ser chamado as Chunk que vai ser o Chunk isso tudo vai vir lá do nosso Jobs Public LinkedIn Jobs aqui eu tenho que criar a nossa table de Jobs Chunk Jobs Chunk Jobs e aqui vai toda aquelas colunas ali Tá aí é um scriptz inho simples para criar a tabela não deve levar muito tempo feito tabela de job description chunks criada agora agora vem a parte do Cortex Então deixa eu renomear essa essa aba aqui para ser a Chunk table e agora vem a parte do do Cortex tá então a gente tá agora nesse momento vamos lá a gente dividiu os dados em Chunk agora a gente tem que conectar os dados no Cortex da snowflake então eu vou fazer isso manualmente tá então isso que eu tô fazendo manualmente aqui depois eu vou falar para vocês sobre como que a snowflake tá facilitando a vida de vocês onde tu não vai precisar est escrevendo esses scripts aqui na mão tá eu preciso escolher o Warehouse que a gente vai utilizar é basicamente onde que a gente vai manter as nossa os nossos script aqui de Chunk rodando target L onde que ele vai guspir eu vou colocar uma hora mais ou menos então one hour E aí select aqui do Job description chunks Beleza deixa eu rodar isso aqui isso aqui esse serviço vai ser essencial pra gente ah manusear aí as queries né que a gente vai estar fazendo pro chatbot então a gente precisa desse serviço aqui pro pras queries de busca Show criado Então deixa eu renomear isso aqui pra snowflake snowflake Cortex Cortex e tem mais uma coisa cara que é só um comando aqui que a gente precisa rodar que é basicamente ã ter certeza que a gente a gente tá rodando numa região que o Cortex tá habilitado tá na época que eu na no dia aqui que eu tô gravando esse vídeo ele tá habilitado Cortex enabled Cross region e ele tá habilitado awss Estados Unidos só para ter certeza porque como eu tô na na Europa aqui ah eu quero ter certeza que ele use na região que eu tô alterando aqui né então ele vai usar aws nos Estados Unidos bom agora cara basicamente vamos ver se ele H vamos vamos ter certeza que o snowflake arttec o modelo né Ele tá disponível pra minha conta deixa eu rodar um show functions like complete versão dois aí Isso aqui deve retornar se tá disponível ou não para nós qu produced no results Hum então talvez significa que ele não tá disponível aqui para nós Eu Só Tô verificando aqui no snowflake Cortex Ah para ver onde que as funções que a gente vai usar estão disponível então tem os completes aqui e aqui ele diz basicamente Aonde que tá disponível então aws US Oregon tá disponível show vamos ver eu acho que acho que tá disponível sim cara track cost for service track credits Cortex LM rest api fine tuning bom Aqui tem outras Cross region interface inference aqui aqui ó alter é basicamente o comando que a gente rodou né account set Cortex enable Cross region aws deixa eu ver aqui dar zoom aqui de novo então é basicamente o que a gente tinha rodado aqui bom agora a gente precisa criar meu o nosso chatbot a nossa aplicação e a gente vai usar o stream lit para isso tá bom se tu quer fazer localmente tu pode fazer é só seguir basicamente aqui com Pimp stal instalar o stream lit na tua máquina Mas a gente pode fazer isso lá dentro do próprio da própria snowflake tá então deixa eu voltar aqui pra home a em projetos a gente estava em worksheets a gente vai em streamlit new streamlit app Lucas montando a data Jobs é a nossa localização aqui do aplicativo né Public Warehouse a gente vai usar o compute Warehouse vou criar aqui então tá criando o aplicativo e basicamente ele vem com um aplicativo demo aqui deixa eu tirar o zoom agora para não ter nenhum problema de interface mas ele vai gerar aqui tá carregando os assets e aqui tá o aplicativo base dele de demonstração tá eu criei um aplicativo já ã e sim eu utilizei inteligência artificial para gerar o scrip porque eu nunca programei em stream lit antes mas eu consegui fazer cara muito rápido ali passando as instruções pro pro GPT Ah deixa eu copiar e colar aqui o código então a única coisa que a gente tem que ter certeza é que a gente tá utilizando o serviço Cortex aqui na maneira correta nossas tabelas estão apontadas também aqui no Script Ah aqui tem as interfaces e eu preciso instalar cara o pacote então recapitulando aqui antes de nos aprofundar aqui no script do streamlit a gente conectou os dados serviços na busca do Cortex do snowflake E aí os usuários eles vão poder perguntar sobre uma habilidade eh que ele já conhece e a ia vai sugerir uma habilidade complementar ou então ele vai poder perguntar sobre como que eu faço para ganhar mais e a a vai conseguir fazer isso através dos chunks trazer essas informações né agora a gente precisa construir então o aplicativo streamlit Ah streamlight streamlit e ele vai facilitar cara para nós a construção do nosso aplicativo com python e vamos ver aqui que se no final a gente vai ter um coach de carreira pessoal alimentado aí pelos dados que a gente extraiu lá do Bria e trouxe para snowflake então aqui no pacotes a gente tá no Python 3. 8 streamit latest eu acho que é tudo que a gente precisa acho que é tudo que a gente precisa deixa eu rodar o nosso script vamos ver se ele gera aqui Unexpected intent na linha linha 50 tá com erro de dentação aqui cara eu acho que esse for aqui tá mal indentado tá ligado aí Python e suas entações snowflake Core no no module named a gente precisa importar nosso módulo aqui então em pacotes snowflake deixa instalar aqui pronto tá instalado Agora sim vamos rodar de novo não pode esquecer de instalar ali o pacote da snowflake aguardando o servidor e será será que vai rodar de primeira hidrate-se pessoal hidrate-se que suspense ó carregando o aplicativo Job salary Skills advisor carregou o chat conseguimos vamos te dar um zoom aqui vamos lá vamos perguntar I Know About I Know About aws and I Earn 50k A Year What Should I Learn to Earn 100k então perguntei aqui olha eu sei aws eu ganho 50.
000 por ano o que que eu preciso aprender para ganhar 100. 000 aí ele fala aqui ó para aumentar o seu salário para 100.