PageIndex: 더 정확하고 논리적인 검색을 위한 오픈소스 PDF 인덱싱 시스템 51

小编 ·

PageIndex: 더 정확하고 논리적인 검색을 위한 오픈소스 PDF 인덱싱 시스템

PageIndex는 오픈소스 PDF 문서 인덱싱 시스템으로, 긴 전문 문서의 검색 정확도와 LLM의 추론 능력을 향상시킵니다. PDF를 계층적인 트리 구조로 변환하여 전통적인 벡터 RAG 의미 유사도 검색을 대체함으로써, 더 정확하고 논리적인 검색을 구현합니다.

PageIndex: 더 정확하고 논리적인 검색을 위한 오픈소스 PDF 인덱싱 시스템

PageIndex란 무엇인가요?

PageIndex는 오픈 소스 PDF 문서 인덱싱 시스템으로, 긴 전문 문서의 검색 정확성과 LLM의 추론 능력을 향상시킵니다. PDF 문서를 계층적 트리 구조로 변환하여 전통적인 벡터 RAG 의미 유사도 검색을 대체함으로써, 보다 정밀하고 논리적인 검색을 구현합니다.

PageIndex의 핵심 기능에는 문서를 스마트 목차와 유사한 트리 구조로 변환하고, 정확한 페이지 위치를 제공하며, 임의의 청크(chunk) 분할을 방지하고, 초장문 문서를 지원하여 수백 페이지에서 수천 페이지에 이르는 콘텐츠를 손쉽게 처리하는 것이 포함됩니다.

작동 원리는 PDF 문서를 시맨틱 트리 구조로 변환하고, 쿼리 분석, 문서 선택, 노드 선택 및 콘텐츠 생성을 결합하여 최종적으로 정확한 답변을 제공하는 것입니다. 벡터 데이터베이스나 전통적인 청크 방식에 의존하는 시스템과 달리, PageIndex는 완전 무료이며 오픈 소스입니다. 특히 재무 보고서, 규제 파일, 학술 교과서, 법률 또는 기술 매뉴얼, 그리고 LLM의 컨텍스트 한도를 초과하는 모든 문서를 처리하는 데 적합합니다.

PageIndex:一个开源PDF文档索引系统.webp

PageIndex 핵심 기능

  • 문서 처리: 긴 문서, 특히 전문 문서를 처리할 수 있으며, 추론 기반 검색 증강 생성(RAG)을 준비하기 위해 검색 트리 구조를 구축합니다.

  • 목차 추출 및 처리

  • 문서에서 목차 내용을 추출하고, 목차에 페이지 번호가 있는지 여부에 따라 다양한 상황을 처리할 수 있습니다.

  • 목차를 변환하여 특정 JSON 형식으로 변환하여 후속 처리를 용이하게 합니다.

  • 페이지 번호 처리: 목차 항목에 물리적 인덱스를 추가하고, 페이지 번호가 누락되었거나 부정확한 경우를 처리하며, 여러 번의 시도를 통해 부정확한 목차 항목을 수정합니다.

  • 노드 처리: 대용량 노드를 재귀적으로 처리하여 토큰 수와 페이지 수 제한을 충족하도록 더 작은 노드로 분할합니다.

  • 검증 및 수정: 목차의 정확성을 검증하고, 정확도를 계산하며, 부정확한 결과를 수정합니다.

PageIndex 특징

  • 계층적 트리 구조: LLM이 문서를 논리적으로 탐색할 수 있도록 하며, 마치 LLM에 최적화된 스마트 목차와 같습니다.

  • 정확한 페이지 참조: 각 노드에는 요약과 시작/끝 페이지의 물리적 인덱스가 포함되어 있어 정확한 검색을 가능하게 합니다.

  • 임의 청크 분할 없음: 임의의 청크 분할을 사용하지 않으며, 노드는 문서의 자연스러운 구조를 따릅니다.

  • 대규모 문서 지원: 수백 페이지에서 수천 페이지에 이르는 문서를 손쉽게 처리하도록 설계되었습니다.

PageIndex 적용 시나리오

금융 분야

  • 재무 보고서 분석: 핵심 재무 데이터와 지표를 빠르게 파악합니다.

  • 규제 파일 해석: 규정 조항을 정확하게 검색하여 규정 준수를 보장합니다.

법률 분야

  • 법률 파일 검색: 법률 조항과 사례를 효율적으로 검색합니다.

  • 계약 검토: 계약서의 핵심 조항을 빠르게 파악합니다.

학술 연구

  • 학술 논문 검색: 연구 결과와 이론적 근거를 빠르게 찾습니다.

  • 교과서 학습: 특정 장과 지식 포인트를 편리하게 파악합니다.

기술 문서

  • 기술 매뉴얼: 작업 단계와 기술적 매개변수를 빠르게 검색합니다.

  • 프로젝트 문서: 프로젝트의 핵심 정보를 효율적으로 검색합니다.

기업 내부

  • 내부 보고서: 긴 보고서의 핵심 내용을 빠르게 파악합니다.

  • 지식 베이스 관리: 지식 공유 및 검색 효율성을 향상시킵니다.

의료 분야

  • 의학 문헌 검색: 연구 결과와 치료법을 빠르게 찾습니다.

  • 임상 가이드라인: 임상 운영 가이드라인을 정확하게 파악합니다.

교육 분야

  • 온라인 강좌 자료: 강의의 핵심 내용을 빠르게 검색합니다.

  • 시험 복습 자료: 복습 포인트를 효율적으로 파악합니다.

정부 기관

  • 정책 파일 해석: 정책 조항을 빠르게 검색합니다.

  • 공공 정보 검색: 공공 서비스 효율성을 향상시킵니다.

PageIndex 사용 방법

1. 의존성 패키지 설치

pip3 install -r requirements.txt

2. Openai API 키 설정

루트 디렉터리에 .env 파일을 생성하고 API 키를 추가하세요:

CHATGPT_API_KEY=your_openai_key_here

3. PDF에 대해 PageIndex 실행

python3 run_pageindex.py --pdf_path /path/to/your/document.pdf

추가 선택적 매개변수를 통해 처리 과정을 사용자 지정할 수도 있습니다. 예:

--model                 OpenAI model to use (default: gpt-4o-2024-11-20)
--toc-check-pages       Pages to check for table of contents (default: 20)
--max-pages-per-node    Max pages per node (default: 10)
--max-tokens-per-node   Max tokens per node (default: 20000)
--if-add-node-id        Add node ID (yes/no, default: yes)
--if-add-node-summary   Add node summary (yes/no, default: no)
--if-add-doc-description Add doc description (yes/no, default: yes)

Github:https://github.com/VectifyAI/PageIndex

프로젝트 공식 웹사이트:https://vectify.ai/pageindex