Dane-se os OCRs tradicionais ou bibliotecas pesadas para obter dados de PDFs, o GenAI faz um trabalho melhor!
AIPDF é uma biblioteca Python pura autônoma, minimalista, mas poderosa, que aproveita modelos de IA de geração multimodal (OpenAI, llama3 ou alternativas compatíveis) para extrair dados de PDFs e convertê-los em vários formatos, como Markdown ou JSON.
pip install aipdf
no macOS você precisará instalar o poppler
brew install poppler
from aipdf import ocr
# Your OpenAI API key
api_key = 'your_openai_api_key'
file = open ( 'somepdf.pdf' , 'rb' )
markdown_pages = ocr ( file , api_key )
Você pode usar com qualquer modelo multimodal ollama
ocr ( pdf_file , api_key = 'ollama' , model = "llama3.2" , base_url = 'http://localhost:11434/v1' , prompt = ...)
Optamos que você passe um objeto de arquivo, pois assim fica flexível você usar isso com qualquer tipo de sistema de arquivos, s3, localfiles, urls etc.
pdf_file = io . BytesIO ( requests . get ( 'https://arxiv.org/pdf/2410.02467' ). content )
# extract
pages = ocr ( pdf_file , api_key , prompt = "extract tables, return each table in json" )
s3 = boto3 . client ( 's3' , config = Config ( signature_version = 's3v4' ),
aws_access_key_id = access_token ,
aws_secret_access_key = '' , # Not needed for token-based auth
aws_session_token = access_token )
pdf_file = io . BytesIO ( s3 . get_object ( Bucket = bucket_name , Key = object_key )[ 'Body' ]. read ())
# extract
pages = ocr ( pdf_file , api_key , prompt = "extract charts data, turn it into tables that represent the variables in the chart" )
Manteremos isso super limpo, apenas 3 bibliotecas obrigatórias:
Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE para obter detalhes.
Contribuições são bem-vindas! Sinta-se à vontade para enviar uma solicitação pull.
Se você encontrar algum problema ou tiver alguma dúvida, abra um problema no repositório GitHub.
AIPDF torna a extração de dados PDF simples, flexível e poderosa. Experimente e simplifique seu fluxo de trabalho de processamento de PDF hoje mesmo!