PDF를 구문 분석하고 LLM을 사용하여 콘텐츠를 분석하는 패키지.
이 패키지는 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 |
|---|---|---|---|---|---|
| {절대 _path} /page_1_title.png | 제목 | 1 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 1] | {file_absolute_path} |
| {절대 _path} /page_1_text.png | 텍스트 | 1 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 2] | {file_absolute_path} |
| {절대 _path} /page_2_figure.png | 수치 | 2 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 3] | {file_absolute_path} |
| {절대 _path} /page_2_figure_caption.png | 그림 캡션 | 2 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 4] | {file_absolute_path} |
| {절대 _path} /page_3_table.png | 테이블 | 3 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 5] | {file_absolute_path} |
| {절대 _path} /page_3_table_caption.png | 테이블 캡션 | 3 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 6] | {file_absolute_path} |
| {절대 _path} /page_1_header.png | 헤더 | 1 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 7] | {file_absolute_path} |
| {절대 _path} /page_2_footer.png | 보행인 | 2 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 8] | {file_absolute_path} |
| {절대 _path} /page_3_reference.png | 참조 | 3 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 9] | {file_absolute_path} |
| {절대 _path} /page_1_equation.png | 방정식 | 1 | 주의를 기울이기 만하면됩니다 | [텍스트 블록 10] | {file_absolute_path} |
llm_parser.py main function에서 자세한 내용을 참조하십시오.
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