用于解析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解决方案友好的文本块。
| 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