แพ็คเกจสำหรับการแยกวิเคราะห์ PDFs และวิเคราะห์เนื้อหาโดยใช้ LLMS
แพ็คเกจนี้เป็นการปรับปรุงตามแนวคิดของ GPTPDF
GPTPDF ใช้ PYMUPDF เพื่อแยกวิเคราะห์ PDFS ระบุทั้งข้อความและข้อความที่ไม่ใช่ข้อความ จากนั้นจะรวมหรือกรองภูมิภาคข้อความตามกฎบางอย่างและป้อนผลลัพธ์สุดท้ายลงในโมเดลหลายรูปแบบสำหรับการแยกวิเคราะห์ วิธีนี้มีประสิทธิภาพโดยเฉพาะ
จากแนวคิดนี้ฉันได้ทำการปรับปรุงเล็กน้อย
การใช้แบบจำลองการวิเคราะห์เลย์เอาต์แต่ละหน้าของ 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 | ชื่อไฟล์ | เนื้อหา | ฟีเจอร์ |
|---|---|---|---|---|---|
| {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
URL เซิร์ฟเวอร์ที่เข้ากันได้ของ OpenAI รายละเอียด: เซิร์ฟเวอร์ที่เข้ากันได้กับ OpenAI
การใช้กระดาษ 'ความสนใจคือสิ่งที่คุณต้องการ' สำหรับการวิเคราะห์แบบจำลองที่เลือกคือ GPT-4O ราคาดังนี้:
Total Tokens: 44063
Prompt Tokens: 33812
Completion Tokens: 10251
Total Cost (USD): $0.322825
ค่าใช้จ่ายเฉลี่ยต่อหน้า: $ 0.0215