Пакет для анализа PDF -файлов и анализа их контента с использованием LLMS.
Этот пакет является улучшением, основанным на концепции GPTPDF.
GPTPDF использует PYMUPDF для анализа PDF, идентифицируя как текстовые, так и не текстовые области. Затем он объединяет или фильтрует текстовые области на основе определенных правил и вводит конечные результаты в мультимодальную модель для анализа. Этот метод особенно эффективен.
Основываясь на этой концепции, я сделал некоторые незначительные улучшения.
Используя модель анализа макета, каждая страница PDF анализируется для определения типа каждой области, которая включает в себя текст, заголовок, рисунок, подпись рисунка, таблица, заголовок таблицы, заголовок, нижний колонтитул, ссылку и уравнение. Координаты каждой области также получены.
Анализ макета пример:
[{'header': ((101, 66, 436, 102), 0)},
{'header': ((1038, 81, 1088, 95), 1)},
{'title': ((106, 215, 947, 284), 2)},
{'text': ((101, 319, 835, 390), 3)},
{'text': ((100, 565, 579, 933), 4)},
{'text': ((100, 967, 573, 1025), 5)},
{'text': ((121, 1055, 276, 1091), 6)},
{'reference': ((101, 1124, 562, 1429), 7)},
{'text': ((610, 565, 1089, 930), 8)},
{'text': ((613, 976, 1006, 1045), 9)},
{'title': ((612, 1114, 726, 1129), 10)},
{'text': ((611, 1165, 1089, 1431), 11)},
{'title': ((1011, 1471, 1084, 1492), 12)}]
Этот результат включает в себя тип, координаты и порядок чтения каждого региона. Используя этот результат, более точные правила могут быть установлены для анализа PDF.
Наконец, введите изображения соответствующих областей в мультимодальную модель, такую как GPT-4O или QWEN-VL, чтобы непосредственно получить текстовые блоки, которые дружелюбны к Rag Solutions.
| img_path | тип | page_no | имя файла | содержание | FilePath |
|---|---|---|---|---|---|
| {Absolute_Path} /page_1_title.png | Заголовок | 1 | внимание - это все, что вам нужно | [Текстовый блок 1] | {file_absolute_path} |
| {Absolute_Path} /page_1_Text.png | Текст | 1 | внимание - это все, что вам нужно | [Текстовый блок 2] | {file_absolute_path} |
| {Absolute_Path} /page_2_figure.png | Фигура | 2 | внимание - это все, что вам нужно | [Текстовый блок 3] | {file_absolute_path} |
| {absolute_path} /page_2_figure_caption.png | Подпись рисунка | 2 | внимание - это все, что вам нужно | [Текстовый блок 4] | {file_absolute_path} |
| {Absolute_Path} /Page_3_Table.png | Стол | 3 | внимание - это все, что вам нужно | [Текстовый блок 5] | {file_absolute_path} |
| {Absolute_Path} /page_3_Table_caption.png | Подпись таблицы | 3 | внимание - это все, что вам нужно | [Текстовый блок 6] | {file_absolute_path} |
| {Absolute_Path} /page_1_header.png | Заголовок | 1 | внимание - это все, что вам нужно | [Текстовый блок 7] | {file_absolute_path} |
| {absolute_path} /page_2_footer.png | Нижний колонтитул | 2 | внимание - это все, что вам нужно | [Текстовый блок 8] | {file_absolute_path} |
| {Absolute_Path} /Page_3_Reference.png | Ссылка | 3 | внимание - это все, что вам нужно | [Текстовый блок 9] | {file_absolute_path} |
| {Absolute_Path} /Page_1_Equation.png | Уравнение | 1 | внимание - это все, что вам нужно | [Текстовый блок 10] | {file_absolute_path} |
Смотрите больше в LLM_PARSER.PY Основная функция.
pip install llmdocparser
Чтобы установить этот проект из источника, выполните следующие действия:
Клонировать репозиторий:
Во -первых, клонируйте репозиторий на местную машину. Откройте свой терминал и запустите следующие команды:
git clone https://github.com/lazyFrogLOL/llmdocparser.git
cd llmdocparserУстановить зависимости:
Этот проект использует поэзию для управления зависимостями. Убедитесь, что у вас установлена поэзия. Если нет, вы можете следовать инструкциям в Руководстве по установке поэзии.
Как только поэзия установлена, запустите следующую команду в корневом каталоге проекта, чтобы установить зависимости:
poetry install Это будет читать файл pyproject.toml и установить все необходимые зависимости для проекта.
from llmdocparser . llm_parser import get_image_content
content , cost = get_image_content (
llm_type = "azure" ,
pdf_path = "path/to/your/pdf" ,
output_dir = "path/to/output/directory" ,
max_concurrency = 5 ,
azure_deployment = "azure-gpt-4o" ,
azure_endpoint = "your_azure_endpoint" ,
api_key = "your_api_key" ,
api_version = "your_api_version"
)
print ( content )
print ( cost )Параметры
llm_type: str
Варианты - Azure, Openai, DashScope.
pdf_path: str
Путь к файлу PDF.
output_dir: str
Выводной каталог для хранения всех анализовых изображений.
max_concurrency: int
Количество потоков работников GPT. Пакетная вызова подробности: поддержка партии
При использовании Azure необходимо передавать параметры Azure_deployment и Azure_endpoint; В противном случае необходимо предоставить только ключ API.
base_url: str
OpenAI совместимый с сервером URL. Подробная информация: OpenAI-совместимый сервер
Используя «Внимание-это все, что вам нужно» для анализа, выбранная модель-GPT-4O, стоимость которого стоит следующим образом:
Total Tokens: 44063
Prompt Tokens: 33812
Completion Tokens: 10251
Total Cost (USD): $0.322825
Средняя стоимость за страницу: 0,0215 долл. США