docling
무엇인가
Docling은 문서 파일을 LLM이 읽을 수 있는 구조화 표현으로 바꾸는 파싱 계층이다. RAG 파이프라인이나 에이전트에서 원본 파일과 모델 입력 사이에 놓인다. PDF, DOCX, PPTX, XLSX, HTML, EPUB, Apple Pages, LaTeX, 이메일(EML·MSG), 이미지, 오디오, 비디오, ODF, XBRL, 일반 텍스트를 입력으로 받는다.
어떻게 동작하나
포맷별 백엔드가 파서를 선택하고, PDF는 페이지 레이아웃·읽기 순서·표 구조·코드·수식·이미지 분류 모델을 순차 적용한다. 스캔 문서는 OCR로, 오디오와 비디오는 ASR 모델로 텍스트화하며 비디오는 대표 키프레임도 추출한다. 결과는 DoclingDocument라는 단일 표현으로 통합되고, 여기서 Markdown, HTML, WebVTT, DocLang, DocTags, 무손실 JSON으로 내보낸다. 같은 변환기를 MCP 서버와 docling-serve API 서버로도 노출한다.
무엇과 다른가
pdftotext 같은 텍스트 추출기는 문자 스트림만 뽑는 반면, Docling은 레이아웃과 표 구조를 복원해 읽기 순서를 유지한다. 클라우드 문서 AI 서비스와 달리 모델을 로컬에서 실행하므로 민감 데이터와 에어갭 환경에서도 쓸 수 있다. 출력 스키마가 하나이므로 후속 처리 코드가 입력 포맷마다 달라지지 않는다.
어떻게 쓰나
설치 후 CLI에서 파일 경로를 넘기면 현재 디렉터리에 .md 파일이 생성된다. Python에서는 DocumentConverter 객체로 변환하고 파이프라인 옵션과 내보내기 형식을 지정한다. LangChain, LlamaIndex, Haystack, Crew AI 연동이 제공되며 GraniteDocling 같은 시각 언어 모델을 CLI에서 백엔드로 지정할 수 있다.
전제와 한계
Python 3.10 이상이 필요하고 macOS, Linux, Windows의 x86_64와 arm64를 지원한다. OCR, VLM, ASR은 별도 모델 가중치를 내려받아야 하며 각 모델 라이선스를 따른다. 코드베이스는 MIT 라이선스다. 제목·저자·참조·언어 같은 메타데이터 추출과 복잡한 화학 구조 해석은 아직 제공되지 않는다.
유사 도구
- markerPDF·이미지·오피스 문서를 마크다운·JSON·HTML로 변환하는 Python CLI다. 레이아웃 검출과 OCR을 로컬 VLM 서버로 처리하고 LLM으로 정확도를 보강한다.
- markitdownPDF·오피스 문서·이미지·오디오를 Markdown으로 변환해 LLM 파이프라인에 넣는 Python CLI 겸 라이브러리다. 문서 구조를 보존한다.
- PaddleOCRPDF와 이미지를 Markdown·JSON으로 변환하는 OCR 툴킷이다. 100개 이상 언어를 지원하고 PaddleOCR-VL·PP-StructureV3 파이프라인으로 표·수식 좌표까지 뽑는다.
- synthadocPDF·스프레드시트·영상 등 원본 문서를 LLM으로 컴파일해 출처 인용이 붙은 로컬 Markdown 위키로 만드는 Python CLI다.
- knowhere비정형 문서를 계층·인용이 붙은 청크 메모리로 파싱하고, 에이전트가 MCP 도구로 탐색·인용하도록 절차를 주입하는 Claude Code용 스킬 팩이다.
- readerURL 앞에 https://r.jina.ai/ 를 붙이면 웹 페이지·PDF·오피스 문서를 LLM이 읽는 마크다운으로 변환하는 TypeScript 서비스다.