Este repositório contém exemplos mostrando como o pymupdf pode ser usado como um feed de dados para chatbots baseados em RAG.
Os exemplos incluem scripts que iniciam chatbots - como programas simples da CLI no modo REPL ou GUIs baseados em navegador. Os scripts de chatbot seguem esta estrutura geral:
O pacote python no Pypi pymupdf4llm (também existe um alias pdf4llm) é capaz de converter páginas em PDF em seqüências de texto no formato de marcação (compatível com o github). Isso inclui texto padrão , bem como texto baseado em tabela em uma visualização consistente e integrada - um recurso particularmente importante nas configurações de RAG.
$ pip install -U pymupdf4llm
Este comando instalará automaticamente o pymupdf, se necessário.
Então, em seu script, faça
import pymupdf4llm
md_text = pymupdf4llm . to_markdown ( "input.pdf" )
# now work with the markdown text, e.g. store as a UTF8-encoded file
import pathlib
pathlib . Path ( "output.md" ). write_bytes ( md_text . encode ())
Em vez da sequência de nome do arquivo como acima, também é possível fornecer um Document
pymupdf. Por padrão, todas as páginas do PDF serão processadas. Se desejado, as pages=[...]
podem ser usadas para fornecer uma lista de números de página baseados em zero a serem considerados.
A criação de texto de marcação agora também processa as páginas de várias colunas .
Para criar pequenos pedaços de texto - em vez de gerar uma string grande para todo o documento - a nova opção (v0.0.2) page_chunks=True
pode ser usada. O resultado de .to_markdown("input.pdf", page_chunks=True)
será uma lista de dicionários python, um para cada página.
Também novo na versão 0.0.2 é a extração opcional de imagens e gráficos vetoriais: uso de parâmetro write_images=True
. A Will armazenará imagens PNG na pasta do documento, e o texto de marcação se refere adequadamente a elas. As imagens são nomeadas como "input.pdf-page_number-index.png"
.
Documentação
API
Embora o PDF seja de longe o formato de documento mais importante em todo o mundo, vale a pena mencionar que todos os exemplos e scripts auxiliares funcionam da mesma maneira e sem alterações para todos os tipos de arquivos suportados.
Portanto, para um documento XPS ou um e -book, basta fornecer o nome do arquivo, por exemplo, como "input.mobi"
e tudo o mais funcionará como antes.
O pymupdf adiciona ligações e abstrações Python ao MUPDF, um PDF leve, XPS e visualizador de e -books , renderizador e kit de ferramentas. Tanto o pymupdf quanto o MUPDF são mantidos e desenvolvidos pela Artifex Software, Inc.
A página inicial do Pymupdf está localizada no Github.
Junte -se a nós na discórdia aqui: #pymupdf.
O PymupDF está disponível sob acordos de licença AGPL de código aberto e de licença comercial. Se você determinar que não pode atender aos requisitos da AGPL , entre em contato com o Artifex para obter mais informações sobre uma licença comercial.