docling

Document to MarkdownCLIPython

★ 66,333주당 +703조회 5

무엇인가

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 라이선스다. 제목·저자·참조·언어 같은 메타데이터 추출과 복잡한 화학 구조 해석은 아직 제공되지 않는다.

유사 도구