Этот репозиторий содержит примеры, показывающие, как PyMupDF можно использовать в качестве подачи данных для чат-ботов на основе RAG.
Примеры включают в себя сценарии, которые запускают чат -боты - либо в виде простых программ CLI в режиме Repl или Guis на основе браузера. Скрипты чат -ботов следуют этой общей структуре:
Пакет Python на pypi pymupdf4llm (также есть псевдоним pdf4llm), способен преобразовать PDF -страницы в текстовые строки в формате разметки (совместимый с GitHub). Это включает в себя стандартный текст , а также текст на основе таблицы в последовательном и интегрированном представлении - функция, особенно важная в настройках RAG.
$ pip install -U pymupdf4llm
Эта команда автоматически установит PYMUPDF, если это необходимо.
Затем в вашем сценарии
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 ())
Вместо строки имени файла, как указано выше, можно также предоставить Document
PYMUPDF. По умолчанию все страницы в PDF будут обработаны. При желании, параметры pages=[...]
могут использоваться для предоставления списка номеров на основе нуля для рассмотрения.
Создание текста Marckdown теперь также обрабатывает многоцелевые страницы .
Для создания небольших кусков текста - в отличие от генерации одной большой строки для всего документа - новая (V0.0.2) опция page_chunks=True
может быть использован. Результатом .to_markdown("input.pdf", page_chunks=True)
будет список словарей Python, по одному для каждой страницы.
Также новым в версии 0.0.2 является дополнительным извлечением изображений и векторной графики: использование параметра write_images=True
. Будут хранить изображения PNG в папке документа, и текст разметки будет соответствующим образом ссылаться на них. Изображения называются "input.pdf-page_number-index.png"
.
Документация
API
Хотя PDF является наиболее важным форматом документов по всему миру, стоит упомянуть, что все примеры и вспомогательные сценарии работают одинаково и без изменений для всех поддерживаемых типов файлов.
Таким образом, для документа XPS или электронной книги просто предоставьте имя файла, например, как "input.mobi"
, а все остальное будет работать, как и раньше.
Pymupdf добавляет привязки и абстракции Python к MUPDF, легким PDF , XPS и Ebook Viewer, Renderer и Toolkit. Как PYMUPDF , так и MUPDF поддерживаются и разработаны Artifex Software, Inc.
Домашняя страница Pymupdf расположена на GitHub.
Присоединяйтесь к нам на Discord здесь: #pymupdf.
PYMUPDF доступен в рамках соглашений AGPL с открытым исходным кодом и коммерческих лицензионных соглашений. Если вы определите, что не можете удовлетворить требования AGPL , пожалуйста, свяжитесь с Artifex для получения дополнительной информации о коммерческой лицензии.