이 저장소에는 PyMUPDF가 Rag 기반 챗봇의 데이터 피드로 사용될 수있는 방법을 보여주는 예제가 포함되어 있습니다.
예를 들어 챗봇을 시작하는 스크립트 - REPL 모드의 간단한 CLI 프로그램 또는 브라우저 기반 GUI가 포함됩니다. 챗봇 스크립트는이 일반적인 구조를 따릅니다.
Pypi Pymupdf4llm의 Python 패키지 (Alias Pdf4llm도 있음)는 PDF 페이지를 Markdown 형식 (Github Compatible)의 텍스트 문자열 로 변환 할 수 있습니다. 여기에는 표준 텍스트 와 일관되고 통합 된 뷰의 테이블 기반 텍스트가 포함됩니다. RAG 설정에서 특히 중요한 기능입니다.
$ pip install -U pymupdf4llm
이 명령은 필요한 경우 PYMUPDF를 자동으로 설치합니다.
그런 다음 스크립트에서
import pymupdf4llm
md_text = pymupdf4llm . to_markdown ( "input.pdf" )
# now work with the markdown text, e.g. store as a UTF8-encoded file
import pathlib
pathlib . Path ( "output.md" ). write_bytes ( md_text . encode ())
위와 같이 파일 이름 문자열 대신 pymupdf Document
제공 할 수도 있습니다. 기본적으로 PDF의 모든 페이지가 처리됩니다. 원하는 경우 매개 변수 pages=[...]
사용하여 고려해야 할 제로 기반 페이지 번호 목록을 제공 할 수 있습니다.
Markdown 텍스트 작성은 이제 멀티 컬럼 페이지를 처리합니다.
전체 문서에 대해 하나의 큰 문자열을 생성하는 것과는 달리 작은 텍스트 덩어리를 생성하려면 새로운 (v0.0.2) 옵션 page_chunks=True
사용할 수 있습니다. .to_markdown("input.pdf", page_chunks=True)
의 결과는 각 페이지마다 하나의 Python Dictionaries 목록입니다.
또한 버전 0.0.2의 새로운 이미지 및 벡터 그래픽의 선택적 추출 입니다. 매개 변수 사용 write_images=True
. Will은 PNG 이미지를 문서 폴더에 저장하고 Markdown 텍스트는 적절하게 참조됩니다. 이미지는 "input.pdf-page_number-index.png"
와 같은 이름입니다.
선적 서류 비치
API
PDF는 전 세계적으로 가장 중요한 문서 형식이지만 모든 예제와 도우미 스크립트는 모든 지원되는 파일 유형에 대해 변경없이 동일한 방식으로 작동한다는 것을 언급 할 가치가 있습니다.
따라서 XPS 문서 나 eBook의 경우 "input.mobi"
와 같은 파일 이름을 단순히 제공하면 다른 모든 것이 이전과 같이 작동합니다.
Pymupdf는 Python 바인딩 및 추상화를 MUPDF, 경량 PDF , XPS 및 전자 책 뷰어, 렌더러 및 툴킷에 추가합니다. PymupDF 와 MUPDF는 모두 Artifex Software, Inc.에서 유지 관리 및 개발되었습니다.
Pymupdf의 홈페이지는 Github에 있습니다.
Discord 에서 우리와 함께하십시오 : #pymupdf.
PymupDF는 오픈 소스 AGPL 및 상업용 라이센스 계약에 따라 구입할 수 있습니다. AGPL 의 요구 사항을 충족시킬 수 없다고 판단하면 상업 라이센스에 대한 자세한 내용은 Artifex에 문의하십시오.