Ce référentiel contient des exemples montrant comment PYMUPDF peut être utilisé comme flux de données pour les chatbots basés sur RAG.
Les exemples incluent des scripts qui commencent les chatbots - soit comme de simples programmes CLI en mode REP, soit par des GUIS basés sur le navigateur. Les scripts de chatbot suivent cette structure générale:
Le package Python sur PYPI PYMUPDF4LLM (il existe également un alias PDF4LLM) est capable de convertir les pages PDF en chaînes de texte au format Markdown (compatible GitHub). Cela inclut le texte standard ainsi que le texte basé sur la table dans une vue cohérente et intégrée - une fonctionnalité particulièrement importante dans les paramètres de RAG.
$ pip install -U pymupdf4llm
Cette commande installera automatiquement PYMUPDF si nécessaire.
Alors dans votre script
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 ())
Au lieu de la chaîne de nom de fichier comme ci-dessus, on peut également fournir un Document
PYMUPDF. Par défaut, toutes les pages du PDF seront traitées. Si vous le souhaitez, les pages=[...]
peuvent être utilisées pour fournir une liste de numéros de page basés sur zéro à considérer.
La création de texte de Markdown traite désormais également des pages multi-colonnes .
Pour créer de petits morceaux de texte - par opposition à la génération d'une grande chaîne pour l'ensemble du document - la nouvelle (V0.0.2) page_chunks=True
peut être utilisée. Le résultat de .to_markdown("input.pdf", page_chunks=True)
sera une liste de dictionnaires Python, un pour chaque page.
Également nouveau dans la version 0.0.2 est l' extraction facultative des images et des graphiques vectoriels: utilisation de paramètre write_images=True
. Les images PNG stockeront dans le dossier du document, et le texte Markdown se référera de manière appropriée. Les images sont nommées comme "input.pdf-page_number-index.png"
.
Documentation
API
Bien que PDF soit de loin le format de document le plus important dans le monde, il convient de mentionner que tous les exemples et scripts d'assistance fonctionnent de la même manière et sans changement pour tous les types de fichiers pris en charge.
Ainsi, pour un document XPS ou un ebook, fournissez simplement le nom de fichier par exemple comme "input.mobi"
et tout le reste fonctionnera comme avant.
PYMUPDF ajoute des liaisons et des abstractions Python à MUPDF, un PDF léger, un XPS et une visionneuse d'ebook , un rendu et une boîte à outils. PYMUPDF et MUPDF sont maintenus et développés par Artifex Software, Inc.
La page d'accueil de PYMUPDF est située sur GitHub.
Rejoignez-nous sur Discord ici: #PyMupdf.
PYMUPDF est disponible dans les accords AGPL et licences commerciales open source. Si vous déterminez que vous ne pouvez pas répondre aux exigences de l' AGPL , veuillez contacter ARTIFEX pour plus d'informations concernant une licence commerciale.