PyMuPDF 2.0 업그레이드: 복잡함은 덜고, 하나로 합쳤습니다

지금까지 PyMuPDF로 PDF에서 근거가 아주 탄탄한, LLM에 바로 넣을 수 있는 깔끔한 콘텐츠를 얻으려면 여러 라이브러리를 직접 조합해야 했습니다. 엔진 역할을 하는 PyMuPDF를 설치하고, 페이지를 LLM이 바로 활용하고 전처리할 수 있는 구조화된 데이터로 뽑아내려면 PyMuPDF4LLM을 추가로 설치했죠.
여기에 읽기 순서, 머리글과 바닥글, 표, 다단 구성 같은 레이아웃까지 제대로 파악하려면 PyMuPDF Layout도 필요했습니다. 게다가 이 패키지는 반드시 다른 것들보다 먼저, 정해진 순서대로 import해야만 했습니다.
물론 이 방식은 잘 동작했고, 속도도 빨랐습니다. 하지만 패키지 3개, 관리해야 할 버전 3개에 import 순서 규칙까지 신경 써야할 필요가 있었죠. 솔직히 인정하기 민망할 만큼 많은 개발자분들이 이 순서 규칙 때문에 애를 먹었다는 피드백이 있었습니다.
PyMuPDF 2.0에서는 이런 번거로움이 모두 사라집니다. 이제 PyMuPDF4LLM과 PyMuPDF Layout이 모두 PyMuPDF 안으로 들어왔습니다. 패키지도 하나, 설치도 한 번, import도 한 줄이면 됩니다. import 한 줄로 문서 구조를 이해하는 파싱 기능을 모두 쓸 수 있도록 하나로 통합한 것입니다.
왜 하나로 합쳤을까요?
import해야 하는 라이브러리가 하나 늘어날 때마다 문제가 생기거나, 문제처럼 보일 여지도 함께 늘어납니다. 그동안 저희는 사용자분들이 세 패키지의 버전을 각각 고정해 두고 서로 잘 맞기만을 바라는 모습을 지켜봐 왔습니다. 나머지 라이브러리의 편의성을 미처 모른 채 PyMuPDF만 가져다 쓰는 분들도 많았습니다. 처음부터 PyMuPDF 라이브러리를 모두 함께 썼다면 해결됐을 문제가 버그 리포트로 들어오는 일도 있었습니다.
PyMuPDF4LLM 없이 PyMuPDF만 설치해 써 보고는 결과물이 기대에 못 미친다고 판단하는 경우도 있었고요. 실제로는 결과가 얼마나 좋아질 수 있는지 모른 채 말입니다.
사실 이 도구들은 함께 성장해 왔습니다. 그러니 더 이상 따로 배포할 이유가 없었습니다. AI 중심 솔루션과 레이아웃을 이해하는 추출 기능은 이제 '있으면 좋은' 부가 기능이 아닙니다.
문서를 열면 당연히 기대하는 기본 기능이 됐고, 그래서 이제 핵심 패키지에 포함해 함께 제공합니다.
실제로는 이렇게 달라집니다
변경 전
|
변경 후
|
이게 끝입니다. GNN 기반 레이아웃 분석이 기본으로 적용되고, Markdown, JSON, 일반 텍스트 출력도 기본으로 내장되어 있습니다.
따로 외워 둘 것도, 하나하나 맞춰야 할 것도 없습니다.
바로 사용 가능한 기능
- PDF를 '이미지'가 아닌 '문서'로 이해하는 레이아웃 분석
대부분의 레이아웃 도구는 페이지를 하나하나 이미지로 렌더링한 다음, 그 이미지를 비전 모델로 분석합니다. 반면 PyMuPDF의 레이아웃 엔진은 그래프 신경망으로 문서의 내부 구조를 직접 분석합니다. 그래서 GPU 없이도 빠르고도 정확합니다.
- 신뢰도 높은 읽기 순서 적용
다단 논문, 사이드바, 각주도 사람이 읽는 순서 그대로 추출됩니다. 머리글과 바닥글은 감지해서 제거할 수 있어, 청크에 불필요한 내용이 섞이지 않습니다.
- 스마트 OCR
텍스트를 추출하기 전에 먼저 페이지를 살펴봅니다. 검토 후에 OCR이 필요한 영역에만 OCR을 적용하고, 인식이 가능한 텍스트는 원래 있던 디지털 텍스트와 함께 페이지에 합쳐 줍니다. OCR에 드는 시간과 비용을 획기적으로 낮춥니다.
- LLM에 맞춘 출력
프롬프트와 청커에 넣기 좋은 Markdown, 구조화된 파이프라인용으로 바운딩 박스와 요소 유형 정보까지 담은 JSON, 텍스트만 필요할 때 쓰는 일반 텍스트를 모두 지원합니다.
메타데이터가 포함된 페이지 단위 청킹도 지원해 벡터 DB에 바로 넣을 수 있습니다.
- 프레임워크 연동
LlamaIndex와 LangChain도 기본으로 지원합니다.
- 여전히 CPU만으로, 여전히 빠르게
GPU도, 클라우드 호출도, 모델 서버도 필요 없습니다. Python이 돌아가는 곳이라면 어디서든 PyMuPDF도 돌아갑니다.
- 클라우드도 필요 없습니다
PyMuPDF는 모든 처리를 로컬 PC에서 하기 때문에 문서가 외부로 나갈 일이 없습니다. API 키도, 페이지당 과금도, 네트워크 지연도 없습니다.
인터넷과 분리된 폐쇄망 서버에서도 다른 환경과 똑같이 잘 동작합니다.
Upgrading
이미 PyMuPDF4LLM을 쓰고 계셨다면 기존 코드는 그대로 동작합니다. import pymupdf4llm도 호환성 레이어로 계속 지원하기 때문입니다.
한마디로, PyMuPDF 2.0을 설치해도 기존 코드는 손댈 필요가 없습니다.
업그레이드 후에도 변하지 않는 점
기반이 되는 MuPDF 엔진, 속도, 라이선스 정책은 그대로입니다. 렌더링, 편집, 민감 정보 마스킹(redaction), 주석, 변환 등 지금까지 PyMuPDF로 해 오던 작업도 모두 이전과 똑같이 동작합니다.
모든 것을 위한 단 하나의 라이브러리
PyMuPDF는 Python에서 PDF를 가장 빠르게 열고 다룰 수 있는 라이브러리로 출발했습니다. 2.0부터는 어떤 문서든 LLM이 곧바로 활용하기에 안성맞춤인 신뢰도 높은 결과물로 만들어주는 단 하나의 라이브러리가 됩니다. 특히, 여러 패키지를 조합할 필요도 없죠.
|
여러분을 가장 골치 아프게 하는 PDF로 직접 테스트해 보시고, 어떠셨는지 들려주세요!
PyMuPDF를 사용하시면서 궁금한 점이나 공유하고 싶은 내용이 있다면, Discord 채널과 포럼을 방문해보세요.
👉🏻PyMuPDF Discord 채널 참여하기
👉🏻 PyMuPDF 포럼 방문하기
🎉 Happy Coding! 🙂
CPU 기반의 데이터 추출 도구(파서) PyMuPDF에 대해 더 궁금하시다면, 이파피루스 홈페이지를 방문해주세요!