Projeto Python de até R$4.500 - LlamaIndex e LlamaParse - Ler PDFs com Python - Aula 1
8.91k views5906 WordsCopy TextShare
Hashtag Programação
Quer saber mais sobre o nosso Curso Completo de Python? Clique no link abaixo para garantir sua vaga...
Video Transcript:
fala impressionador no vídeo de hoje vocês vão aprender a usar o lama index mas especificamente o lama parcia que é uma ferramenta de Inteligência Artificial como vocês estão vendo aqui construída para você poder criar as suas próprias soluções de inteligência artificial com as suas bases de dados essencialmente o que a gente vai aprender na aula de hoje é cara como que eu consigo por exemplo pegar um PDF interno da minha empresa uma base de dados da minha empresa e usar isso como a fonte de informação para uma inteligência artificial conseguir aprender para uma inteligência artificial conseguir responder a minhas perguntas e a gente vai usar isso para resolver um desafio prático E qual vai ser o desafio prático que a gente vai resolver na aula de hoje basicamente vai ser esse desafio daqui um pedido de um freelancer de pagando até 750€ que no momento atual que eu tô gravando o vídeo deve dar mais ou menos uns 4500 e que basicamente ele tá querendo um script em Python para conseguir Ler arquivos PDF extrair as bases de dados desse arquivo PDF e transformar eles em Excel e a gente pode fazer isso de várias formas mas para esse vídeo eu vou usar o lama index para ensinar vocês como que funciona essa ferramenta resolvendo um projeto real que você poderia ganhar dinheiro fazendo isso então essa construção desse desafio vai ser dividido em duas partes na aula de hoje a gente vai aprender toda a parte do lama index toda a parte de extrair tabelas de um PDF e trazer isso para dentro do Python e na próxima aula eu vou ensinar vocês como que vocês pegam essa informação que ele trouxe E aí sim você transforma ela em arquivos em Excel pra gente concluir esse projeto daqui Beleza se você gostou da ideia do vídeo vamos lá [Música] bom galera pra gente começar já deixa seu like no vídeo se inscreve no canal e pega os materiais que estão aqui na descrição eu vou deixar o gabarito aqui disponível para vocês onde vão ter as informações basicamente um resumo de como é que vai funcionar o lama index para você fazer esse processo de Ler arquivos que você dá para ele e tem arquivos de vários vários formatos a gente vai falar sobre isso e esse código vai tá disponível aqui para você junto com um minicurso de automações em Python também vai tá aqui na descrição e o gabarito da aula de hoje Fechado então vamos lá bom como a gente como que vai funcionar isso tudo como que a gente vai fazer basicamente vamos recapitular primeiro o que que é o nosso desafio então o nosso desafio é cara você foi contratado oferecendo aqui até 750 € para você conseguir construir um script em Python que lê arquivos PDF e transforma esses arquivos essas tabelas que estão ali no arquivo PDF então o arquivo PDF pode ter texto pode ter imagem pode ter tabelas extrair todas as tabelas lá e transformar elas em tabelas em Excel de forma organizada e bonitinha dentro do Excel é basicamente isso aqui que tá pedindo se você quer Você pode ler mas essencialmente isso que ele tá pedindo beleza e para usar um PDF de exemplo eu basicamente entrei no site de relação com os investidores da Petrobras e peguei um release de resultado deles que tá disponível também aqui na descrição para você fazer o download então essencialmente é um pdfzorro obras no primeiro trimestre de 2024 tá Então olha lá tem várias informações tem texto tem imagem tem tabela aqui dentro e tal e normalmente você fazer isso com código dá um trabalho e é meio difícil você conseguir digamos assim analisar exatamente o que que é uma tabela o que que não é as ferramentas de leitura de base de dados um PDF de leitura de tabelas de PDF elas funcionam bem Tem até um vídeo aqui no canal ensinando a fazer isso mas quando você integra isso com o lama index por exemplo com as inteligências artificiais elas são muito mais inteligentes na hora de você olhar para essas informações e conseguir extrair dessas informações e aí que entra o potencial do lama index o que que ele é legal pra gente basicamente o lama index ele cria soluções para você poder criar sua própria Inteligência Artificial da sua empresa tá então essencialmente se você arrastar Aqui para baixo ele vai mostrar Olha só você pode pegar q&s chats e enfim é llms né ou seja um chat PT outras ferramentas de Inteligência Artificial os seus próprios bancos de dados fornecer isso pro lama index e ele vai responder isso para você no formato que você quiser então essencialmente é para você criar soluções de Inteligência Artificial pra sua empresa usando as suas próprias bases de dados o legal do lama index é que ele esse pedaço aqui de tratamento de dados e digamos assim preparação desses dados para você passar pros modelos de Inteligência Artificial ele é muito bom nisso E aí que entra o lama passse o que que é o lama pass o lama pass é uma ferramenta do lama index que ele faz Justamente esse processo de parse o que que é o processo de parse basicamente é por exemplo quando você quer extrair informações de um PDF você tá fazendo um parse desse PDF em algum formato específico que você quer e o que o lama index consegue fazer isso muito bem É eu vou extrair todo o texto desse PDF daqui mas num formato que me diga isso aqui é um texto isso daqui é uma imagem isso daqui é uma tabela e tudo mais então a gente vai usar o lama pars para fazer esse processo E aí depois você poderia usar isso numa continuação do vídeo para por exemplo dar pro chat GPT para você poder fazer perguntas pro chat GPT sobre esse PDF que você pegou ou você poderia fazer o que a gente vai fazer que é concluir o nosso projeto e pegar agora todas asas informações que ele trouxe pareado pra gente e transformar elas em arquivos em Excel Beleza então fica seu critério o que que você vai fazer com o resultado final mas O legal é que o lama index ele tem muitas ferramentas para essa parte inicial de construção da solução de preparar as bases de dados de tratar esses esses dados que vê em vários formatos diferentes para você poder é usar nos seus projetos inclusive se você clicar aqui em learn more ele vai te levar pra documentação do lama pars ou então chega no Google e pesquisa ó lama pars beleza e aí você vai entrar aqui ó no primeiro link do lama pars e aí aqui ele fala olha só a gente consegue tratar arquivos Jon a gente Você pode passar eh instruções em texto mesmo né em linguagem natural em em texto você pode extrair imagens suporta mais de 10 tipos de formatos então de arquivo então PDF PPT docx HTML XML e muito mais e inclusive em línguas estrangeiras não só em inglês beleza para isso que que a gente vai precisar fazer o primeiro passo vai ser a gente criar uma conta aqui no lama pars tá então você vai ter que criar sua conta aqui então se você entrar no Google lá como eu mostrei lama pars entrar no primeiro link você vai cair nessa página e aqui ele fala olha lá resources sign up here Tá vendo você vai ter que criar sua conta no lama pars eu já tenho a minha conta então quando eu cliquei ele já veio para cá direto ele já logou tá vendo mas no seu caso você vai ter que fazer o login na sua conta você vai basicamente lá criar uma conta ele vai criar uma conta gratuita e na conta gratuita pelo menos no momento que eu tô gravando esse vídeo ele deixa você ler até 1000 páginas por dia então pro nosso desafio que o nosso PDF tem 29 páginas isso vai funcionar numa boa e você tem um limite aqui por semana que ele fala aqui ó você tem 7. 000 créditos por semana e aí depois disso você começa a pagar caso você queira ler muitos pdfs fazer muito usar isso para soluções empresariais mesmo tá E aí basicamente o que você vai precisar fazer aqui é entrar na parte de api aqui você vai precisar pegar uma chave de api tá vendo Então você vai clicar aqui em generate New Key vai dar um nome pra sua chave de api e ele vai te dar aqui o texto Zinho da sua chave de api esse texto você vai chegar aqui e vai configurar ele no seu código e como você vai configurar ele no seu código basicamente pro lama funcionar você por lama pars lama index enfim para ele poder funcionar você precisa Obrigatoriamente criar uma variável de ambiente e essa variável de ambiente tem que ter um nome específico Beleza se você entrar aqui na na documentação deles eles vão explicar exatamente aqui ó no lama pars eles vão Explicar sobre isso usando a r api e tudo mais usando a aqui ó a Library em Python e tudo mais aí ele vai explicando tudo aqui mas eu vou passar Exatamente esse passo a passo com vocês para vocês entenderem como funciona essencialmente o que você precisa é essa chave aqui ó você precisa quero uma chave de api com esse nome lama Cloud api ke beleza isso aqui que você precisa então o que que a gente vai fazer isso tem que ser uma variável de ambiente Então vou importar a biblioteca os e eu vou criar uma variável de ambiente os. environ com o nome da variável que ele fala que tem que ter tem que ser esse nome e vou botar aqui igual a sua token da sua API beleza a o token da api Que você copiou lá eu aqui vou colocar um token de uma API que é o token da api que eu já tenho aqui no da minha que eu criei mas obviamente vocês não vão poder copiar a minha se você tentar copiar a minha e usar no seu caso não vai funcionar Porque no momento que esse vídeo for pro ar eu já vou ter deletado essa chave de II ela não vai funcionar você tem que criar sua conta e fazer por conta própria Beleza então com isso daqui a gente já tem as coisas que a gente precisa para usar a ferramenta do lama agora a gente só precisa instalar a biblioteca do lama aqui pra gente e bom como eu falei com vocês a ferramenta que a gente vai usar dele é o lama pars lama pars Beleza então é esse cara aqui que a gente vai fazer a instalação então eu vou chegar aqui vou abrir o meu terminal e aqui no meu terminal vou adicionar um comando de prompt vazio e aqui eu vou digitar PIP install lama traço pors beleza e ele vai fazer a instalação tá vendo lama com dois L tá bom e ele vai fazer a instalação do lama parse pra gente então depois de fazer a instalação agora a gente pode importar ele então vou fazer assim from lama pars Import lama pars Beleza a gente vai importar tá a ferramenta do Lhama de fazer esse processo de parse sempre que eu falar processo de parse Entenda você meio que extrair né traduzir as informações que estão dentro do seu PDF para o formato que você quiser no caso aqui para um formato de texto e aí a gente vai criar então é a gente vai usar esse l parse e ele vai dar pra gente como resposta uma lista de documentos eu vou chamar de documentos você pode dar o nome que você quiser mas basicamente ele vai dar pra gente uma lista de documentos que ele vai conseguir ler Então você vai criar esse lama pars assim só l pars E aí como que você usa ele basicamente o que você vai precisar configurar dele aqui é primeiro qual o tipo de formato de resposta que você quer ele consegue fazer esse formato de resposta aqui esse essa variável aqui result Type se você entrar na documentação deles aqui você vai ver que ele consegue fazer eu não sei exatamente aonde ele vai mostrar isso mas lendo aqui aqui ó mostra aqui ó você pode fazer esse resultado em markdown ou então em texto Beleza então você pode colocar aqui simplesmente Text e ele vai F como um texto cru ou seja ele vai extrair todas as informaçõ daquele PDF e vai dar para você essas informações como um texto cru ou então o que é muito mais interessante é você pegar elas num formato markdown o que que é o formato markdown formato markdown é um formato de arquivo em que você consegue criar tabela você consegue colocar imagem você consegue colocar textos e tudo mais mas numa formatação simplificada ele tem um código por trás dele que muitas ferramentas conseguem ler esse código por trás dele então ele é um tipo de arquivo específico que digamos assim é muito mais fácil trabalhar do que um PDF né então quando você então basicamente o que lama vai fazer pra gente é ele vai ler Todas aquelas informações do PDF que foram feitas para não serem fáceis de ler fáceis de editar e tudo mais e vai transformar isso num formato markdown que é um formato muito melhor e muito mais fácil da gente trabalhar e aí para ele fazer isso você tem que rodar a função load data beleza e aqui na função load data você passa o arquivo que você quer que ele Leia então no nosso caso o arquivo é esse resultado.
pdf que tá aqui disponível para vocês então aqui eu vou colocar resultado. pdf lembrando eu posso colocar isso aqui direto porque o nosso arquivo tá no mesmo local do nosso código tá vendo nosso arquivo resultado tá no mesmo local do nosso código se ele tivesse um local diferente você aqui ia botar o caminho inteiro do arquivo repara Isso aqui vai dar pra gente como resposta uma lista de documentos o que que é essa lista de documentos basicamente o que lama pars vai fazer é ele vai pegar esse seu PDF e ele vai quebrar esse PDF em cada uma das páginas dele então ele vai dar para você uma lista de documentos em que cada documento eu tô dando esse nome documento porque é o nome que o lama par usa tá quando ele der resposta para você ele vai dar uma lista de documents tá e cada ento nada mais é do que uma página uma página do seu PDF então o resultado desses documentos aqui vai ser uma lista provavelmente com 29 páginas porque o nosso PDF tem 29 páginas vamos testar eu vou chegar aqui e vou printar o tamanho da minha lista de documentos depois dele rodar isso daqui ponto importante o lamap pars ele funciona com algumas ferramentas assíncronas dentro dele que que significa isso significa que ele roda processos em paralelo ali dentro se você tiver construindo esse código num editor de código como eu tô fazendo aqui tipo um vc de um p Charm da Vida em que ele executa todo o código de uma única vez ele vai funcionar numa boa só com isso daqui ele vai funcionar e vai dar tudo certo caso você Rode ele no Google no Google colab no Júpiter notebook que é por células essa divisão como o Google colab e o Jupiter notebook ele roda uma um pedaço do código ele armazena aquela informação e libera para você rodar outro pedaço do código os processos assíncronos ficam um pouco confusos e ele vai dar uns problemas com lama pars isso não significa que você não consegue usar o lum par você consegue mas se você fosse for usar no Jupiter Note O que que você tem que fazer você tem que rodar esses dois códigos aqui ó copiei aqui que eu tinha de um gabarito aqui para vocês você tem que antes de usar o lama pass de preferência até antes de importar ele você vai ter que colocar Esses códigos aqui ó Import nest ASO e nest assq P apply beleza para ele poder rodar esses processos se você rodar e der uma mensagem de erro na mensagem de erro ele vai falar roda esses dois comandos aqui antes de executar o lama pars para ele funcionar mas eu já tô avisando vocês Caso vocês usem um Júpiter notebook Beleza eu vou apagar isso aqui porque a gente não vai precisar mas só para você saber que isso vai acontecer então vamos ver agora qual o tamanho desse nosso documento e ver se ele tá conseguindo passear digamos assim ele tá conseguindo pegar as informações do nosso lama par de forma correta Olha só vou rodar o código rodei tã Olha lá ele vai demorar um pouquinho tá Por que que ele demora um pouquinho porque nesse processo aqui ele tá justamente fazendo esse trabalho de parcial o seu documento ou seja ele tá fazendo Justamente esse trabalho de entrar em contato aqui com o lama pass ou seja com api do do lama e conseguir fazer a e fazer essa esse pareamento né ou seja esse tratamento do PDF E aí tem uma inteligência artificial ali por trás que tá fazendo esse processo pra gente como tem uma inteligência artificial por trás fazendo processo pra gente ele demora um pouquinho que é o processo de tratamento mas ele disse pra gente olha só ST paring the file tá vendo Então ele começou fez o tratamento do do arquivo e depois no final ele falou que o nosso arquivo no final veio com 29 documentos ou seja essa variável documentos ela é uma lista com 29 itens se você quiser pegar cada um dos itens lembra que ele transforma esses caras em textos então para você pegar um texto específico você tem que pegar por exemplo documentos índice z0 P text isso aqui é o texto da primeira página do nosso PDF document snd 1. text é o texto da segunda página do nosso PDF são 29 páginas só pra gente pegar de exemplo vamos ver qual é o texto da terceira página do nosso PDF Tá vendo porque a primeira página deixa eu fechar aqui para ficar mais fácil de ver a primeira página tem uma imagem um título e tal a segunda página tem maor textão e a terceira página ela tem uma tabela que é exatamente o que a gente vai querer que ele extraia uma tabela e uns texto zinhos aqui embaixo tá vendo Então vamos ver como é que funciona isso eu vou pedir para ele printar para mim o documentos índice do que é a terceira página pon text beleza e vou rodar o código de novo olha o que que vai acontecer e olha que interessante isso daqui claro para ele funcionar eu tenho que colocar isso aqui dentro de um print senão ele não vai exibir nada para mim é lógico então coloquei dentro de um print rodei de novo aqui lembrando que cada vez que você vai rodando você tá consumindo aquele seu saldo diário lá de páginas mas como a gente tá mexendo com 29 páginas você vai ter que rodar esse código aqui pô várias e várias vezes para você ter problema com isso não acho que vai ser o caso mas olha que legal ele trouxe pra gente aqui ele printou para mim o texto do nosso documento dois né da nossa página dois aqui do documento da página três desculpa documentos dois e se você olhar o que que é esse texto ele fala olha principais indicadores tá vendo que tem e esse principais indicadores está entre Barras verticais aí vem primeiro trimestre quarto trimestre primeiro trimestre 23 primeiro trimestre 24 versus 4 23 primeiro 24 versus primeiro 23 o que que é isso isso é exatamente essa tabela que a gente estava vendo aqui na nossa página três olha só Ó você tem aqui as suas suas receitas ó R milhões principais itens indicadores E aí você tem primeiro trimestre 24 quarto trimestre 23 primeiro trimestre 23 a comparação de um e a comparação do outro que é exatamente o que ele deu para você aqui tá vendo principais indicadores primeiro trimestre quarto trimestre primeiro trimestre então ele automaticamente leu essa tabela e Conseguiu traduzir essa tabela aqui para você tá vendo receita de vendas receita de vendas o valor da receita de vendas o valor da receita o valor aqui do quarto trimestre 23 valor do quarto trimestre TR então cada célula o legal do formato markd é que é isso cada célula aqui ela vem separada agora por Barrinhas verticais dessas então quando a gente for chegar na segunda etapa do nosso desafio aqui do nosso projeto de Beleza agora eu quero pegar esses texos que estão vindo dali e transformar eles em arquivos Excel propriamente dito o trabalho que você vai ter que fazer agora vai ser um trabalho muito mais simples porque vai ser um trabalho simplesmente de beleza como é que eu faço para pegar uma tabela de um markdown que já tá formatado como tabela bonitinho como tabela e transformar numa tabela em Excel que não é obviamente trivial de duas linhas de código mas é isso que a gente vai fazer na próxima aula quando a gente for resolver então agora o que que eu quero fazer eu quero conseguir parar esse nosso documento inteiro e o legal do lama pars é que ele aqui dentro você pode passar para ele instruções então você pode passar aqui um parsing instruction E aí eu vou passar aqui uma instrução para ele de como que ele tem que fazer esse processo de parse do documento você aqui também pode fazer falar passar outras informações por exemplo você pode passar aqui a language para dizer qual é a língua desse documento para facilitar esse processo Então pensa que tem uma inteligência artificial fazendo esse processo de pars quanto mais direcionamentos e informações você for dando aqui para ela então você pode brincar com isso daqui depois se você quiser mais preciso talvez vai ser a resposta do que ele vai trazer para você né ou seja mais preciso vai ser esse tratamento essa extração de informação do PDF que você quer o que que eu vou passar aqui vou passar simplesmente um par instruction aqui pedindo para ele o seguinte olha Eh sei lá esse arquivo contém texto e tabelas E aí eu vou dar um enter aqui só para vocês poderem ver toda a informação que eu tô passando aqui em texto tá vendo Então esse arquivo contém texto e as tabelas eu quero pegar simplesmente as tabelas então I like to get only the table values não the tables from the text bem macarrônico aqui né dava para escrever melhor enfim detalhar melhor obviamente quanto melhor for essa sua instrução aqui melhor vai ser o tratamento que vai acontecer ali dentro mas no nosso caso aqui isso vai resolver a nossa situação né então basicamente eu tô pedindo para ele me dar resposta em markdown e tô passando a instrução para ele eu resolvi passar em inglês a instrução Você pode passar em português pode passar enfim na língua que você quiser qualquer coisa ele vai sinalizar para você eh algum detalhe mas como eu falei para você o lama pars tem eh ele consegue se adaptar em diferentes línguas tá então pronto vai ser isso daqui e aí agora galera O que que a gente vai fazer ele vai TR pra gente uma lista de documentos essa lista de documentos nada mais é do que uma lista com os textos de cada uma página de cada uma das páginas Mas eu não quero simplesmente esse texto aqui eu quero eu vou armazenar esses textos numa pasta Então vou criar uma pasta aqui por exemplo do meu PDF E aí para cada página Então pensa essa Isso aqui é uma lista com as páginas do nosso do nosso PDF então vou fazer assim ó para cada página dentro dos nossos documentos se eu quiser pegar o texto dessa página vou rodar o comando página pon Tex foi isso que a gente viu aqui ó documentos passa o índice que você quer pon Tex se eu tô percorrendo a minha lista de documentos cada item da lista se eu pegar o ponto text dele ele vai me dar o texto daquele documento então página pon text nada mais é do que o texto desse documento que ele tá lendo aqui o texto de cada uma das páginas que que eu quero que ele faça eu quero que ele salve o texto de cada uma das páginas no markdown não quero que ele printe para mim isso daqui eu quero que ele salve isso num arquivo de texto para depois a gente percorrer todos esses arquivos de texto e para cada um deles transformar em arquivo Excel pegar a tabela e transformar em Excel pegar a tabela transformar em Excel e assim vai beleza então para cada página Nossa nosso arquivo de documentos eu vou simplesmente pegar esse texto e salvar dentro de um arquivo Como que você faz para criar um arquivo de texto markdown como que você cria um arquivo de texto no p basicamente para criar um arquivo de texto no Python você usa a estrutura do with Então você faz assim ó with Open Ou seja você vai abrir um arquivo que você vai dar o nome para ele por exemplo arquivo.
txt em modo de ww em modo de escrita porque você vai escrever dentro do arquivo você vai editar o arquivo Beleza então você abre um arquivo de texto em modo de escrita w e dá um nome para ele uma variável associada a ele então chamei ele de arquivo E aí sempre que você quiser escrever alguma coisa nesse arquivo você bota arquivo. write e o texto que você quer escrever se eu rodar esse código que tá aqui o que que ele vai fazer ele vai criar um arquivo chamado arquivo.