사람이 하는 것과 같은 방식으로 복잡한 문서를 쉽게 청크할 수 있습니다.
문서 청킹은 모든 RAG 시스템을 뒷받침하는 어려운 작업입니다. 성공적인 AI 애플리케이션에는 고품질 결과가 매우 중요하지만 대부분의 오픈 소스 라이브러리는 복잡한 문서를 처리하는 능력이 제한되어 있습니다.
Open Parse는 문서 레이아웃을 시각적으로 식별하고 효과적으로 청크할 수 있는 유연하고 사용하기 쉬운 라이브러리를 제공하여 이러한 격차를 메우도록 설계되었습니다.
텍스트 분할은 파일을 원시 텍스트로 변환하고 분할합니다.
레이아웃 파서(layout-parser)와 같은 환상적인 라이브러리가 있습니다.
? 시각적 기반: Open-Parse는 단순한 텍스트 분할을 넘어 우수한 LLM 입력을 위해 문서를 시각적으로 분석합니다.
✍️ 마크다운 지원: 제목, 볼드체 및 이탤릭체 구문 분석을 위한 기본 마크다운 지원.
고정밀 테이블 지원: 기존 도구를 능가하는 정확도로 테이블을 깔끔한 마크다운 형식으로 추출합니다.
확장 가능: 자체 후처리 단계를 쉽게 구현합니다.
직관적: 훌륭한 편집자 지원. 어디서나 완성. 디버깅 시간이 단축됩니다.
쉬움: 쉽게 사용하고 배울 수 있도록 설계되었습니다. 문서를 읽는 시간이 줄어듭니다.
import openparse
basic_doc_path = "./sample-docs/mobile-home-manual.pdf"
parser = openparse . DocumentParser ()
parsed_basic_doc = parser . parse ( basic_doc_path )
for node in parsed_basic_doc . nodes :
print ( node )
? 여기에서 샘플 노트북을 사용해 보세요.
문서 청킹은 근본적으로 유사한 의미 노드를 그룹화하는 것입니다. 각 노드의 텍스트를 삽입함으로써 유사성을 기준으로 함께 클러스터링할 수 있습니다.
from openparse import processing , DocumentParser
semantic_pipeline = processing . SemanticIngestionPipeline (
openai_api_key = OPEN_AI_KEY ,
model = "text-embedding-3-large" ,
min_tokens = 64 ,
max_tokens = 1024 ,
)
parser = DocumentParser (
processing_pipeline = semantic_pipeline ,
)
parsed_content = parser . parse ( basic_doc_path )
? 샘플 노트는 여기
후드 아래에서 pydantic을 사용하여 결과를 직렬화할 수 있습니다.
parsed_content . dict ()
# or to convert to a valid json dict
parsed_content . json ()
파이썬 3.8+
PDF 다루기:
테이블 추출:
pip install openparse
OCR 지원 활성화 :
PyMuPDF에는 OCR 기능을 지원하는 모든 논리가 이미 포함되어 있습니다. 그러나 추가로 Tesseract의 언어 지원 데이터가 필요하므로 Tesseract-OCR 설치가 여전히 필요합니다.
언어 지원 폴더 위치는 환경 변수 "TESSDATA_PREFIX"에 저장하거나 해당 기능의 매개변수로 전달해야 합니다.
따라서 OCR 기능이 작동하려면 다음 체크리스트를 완료해야 합니다.
테서랙트를 설치합니다.
Tesseract의 언어 지원 폴더를 찾으세요. 일반적으로 다음에서 찾을 수 있습니다.
윈도우: C:/Program Files/Tesseract-OCR/tessdata
유닉스 시스템: /usr/share/tesseract-ocr/5/tessdata
macOS(Homebrew를 통해 설치):
/opt/homebrew/share/tessdata
/opt/homebrew/Cellar/tesseract/<version>/share/tessdata/
환경 변수 TESSDATA_PREFIX 설정
Windows: setx TESSDATA_PREFIX "C:/Program Files/Tesseract-OCR/tessdata"
Unix 시스템: declare -x TESSDATA_PREFIX=/usr/share/tesseract-ocr/5/tessdata
macOS(Homebrew를 통해 설치): export TESSDATA_PREFIX=$(brew --prefix tesseract)/share/tessdata
참고: Windows 시스템에서는 스크립트를 시작하기 전에 Python 외부에서 이 작업이 수행되어야 합니다. os.environ을 조작하는 것만으로는 작동하지 않습니다!
이 리포지토리는 다양한 딥 러닝 모델을 사용하여 테이블의 콘텐츠를 구문 분석하는 선택적 기능을 제공합니다.
pip install "openparse[ml]"
그런 다음 모델 가중치를 다운로드하십시오.
openparse-download
다음을 사용하여 구문 분석을 실행할 수 있습니다.
parser = openparse . DocumentParser (
table_args = {
"parsing_algorithm" : "unitable" ,
"min_table_confidence" : 0.8 ,
},
)
parsed_nodes = parser . parse ( pdf_path )
현재 모든 테이블 감지에 테이블 변환기를 사용하고 있으며 성능이 수준 이하인 것으로 나타났습니다. 이는 Unitable의 다운스트림 결과에 부정적인 영향을 미칩니다. 더 나은 모델을 알고 있다면 이슈를 열어주세요. Unitable 팀에서는 이 모델도 곧 추가할 것이라고 언급했습니다.
https://github.com/Filimoa/open-parse/tree/main/src/cookbooks
https://filimoa.github.io/open-parse/
사용 사례에 특별한 것이 필요합니까? 손을 뻗으세요.