GitHub

docling-project/docling — Get your documents ready for gen AI

Docling — 생성형 AI에 바로 사용할 수 있도록 문서를 준비합니다

Docling은 PDF, DOCX, PPTX, XLSX, HTML, 이미지, 오디오·비디오 등 다양한 형식의 문서를 분석하고 생성형 AI가 활용하기 좋은 구조로 변환하는 오픈소스 도구입니다. 레이아웃·표·코드·수식·OCR을 지원하며 Markdown, HTML, JSON 등으로 내보내고 LangChain, LlamaIndex, MCP와 연동할 수 있습니다.

주제
문서 처리생성형 AI개발 도구

AI 요약

Docling은 다양한 형식의 문서를 파싱하고, 생성형 AI(Generative AI) 애플리케이션에서 사용할 수 있는 구조화된 데이터로 변환하는 오픈소스 문서 처리 도구입니다. 단순히 파일의 텍스트를 추출하는 데 그치지 않고 PDF의 페이지 레이아웃, 읽기 순서, 표 구조, 코드, 수식, 이미지 분류 등을 이해하도록 설계되어 있습니다. 프로젝트는 IBM Research Zurich의 AI for knowledge 팀에서 시작했으며, 현재 LF AI & Data Foundation의 프로젝트로 호스팅됩니다. 코드베이스에는 MIT 라이선스가 적용되지만, 개별 모델은 원래 패키지의 모델 라이선스를 확인해야 합니다.

■ 다양한 문서 형식과 입력 경로

Docling은 PDF와 DOCX, PPTX, XLSX, HTML, EPUB, Apple Pages, 일반 텍스트, Markdown 계열 파일, LaTeX, DocLang, 이미지 파일을 처리합니다. 이미지 입력에는 PNG, TIFF, JPEG 등이 포함되며, 이메일은 EML과 MSG 형식을 지원합니다. ODF(OpenDocument Format)의 텍스트 문서(.odt), 스프레드시트(.ods), 프레젠테이션(.odp)도 파싱할 수 있습니다. 전자책 형식인 EPUB, Apple Pages의 Pages 5+ 및 iWork ’09 컨테이너 세대도 처리 대상에 포함됩니다.

문서 외에도 오디오와 비디오를 입력으로 사용할 수 있습니다. WAV와 MP3 같은 오디오 파일은 ASR(Automatic Speech Recognition) 모델을 활용해 처리하며, MP4, AVI, MOV, MKV, WebM 비디오는 ASR 전사와 대표 키프레임을 함께 생성하는 방식으로 파싱합니다. 금융 보고서에 사용되는 XBRL(eXtensible Business Reporting Language), 특허와 학술 문서에 활용되는 USPTO 및 JATS XML 스키마도 지원합니다. 문서 메타데이터에서는 제목, 저자, 참고문헌, 언어 등을 추출할 수 있으며, 막대·원·선 차트는 표 또는 코드로 변환하고 상세 설명을 추가할 수 있습니다. 복잡한 화학 구조와 분자 구조에 대한 이해 기능도 제공합니다.

■ PDF 이해와 통합 문서 표현

Docling의 핵심 기능은 고급 PDF 이해(Advanced PDF Understanding)입니다. 페이지 안에서 요소가 어디에 배치되어 있는지, 어떤 순서로 읽어야 하는지, 표의 행과 열이 어떻게 구성되는지 분석할 수 있습니다. 코드와 수식, 이미지 분류도 처리 대상에 포함되며, 스캔된 PDF와 이미지 문서를 위한 OCR(Optical Character Recognition) 기능도 제공합니다. 따라서 PDF를 단순한 텍스트 덩어리로 변환하는 대신 문서의 구조와 시각적 맥락을 보존하면서 후속 처리에 활용할 수 있습니다.

변환 결과는 DoclingDocument라는 통합 표현 형식으로 제공됩니다. 이 표현은 서로 다른 입력 형식을 하나의 일관된 구조로 다루기 위한 기반이며, 결과를 Markdown, HTML, WebVTT, DocLang, DocTags, 손실 없는 JSON(lossless JSON) 등 여러 형식으로 내보낼 수 있습니다. 기본적인 CLI 사용 예에서는 PDF URL이나 로컬 파일을 입력해 현재 디렉터리에 구조화된 Markdown 파일을 생성할 수 있습니다. Python에서는 DocumentConverter를 생성한 뒤 URL 또는 로컬 경로를 전달하고, 변환 결과의 문서 객체에서 export_to_markdown()을 호출해 Markdown을 얻을 수 있습니다.

■ 생성형 AI와 개발 도구 연동

Docling은 문서 변환 결과를 생성형 AI 파이프라인에 연결할 수 있도록 LangChain, LlamaIndex, Crew AI, Haystack과의 플러그 앤 플레이 통합을 제공합니다. 에이전트형 AI 애플리케이션에서 문서 내용을 검색하거나 처리하는 흐름에 활용할 수 있으며, MCP(Model Context Protocol) 서버를 통해 어떤 에이전트와도 연결할 수 있습니다. API 서버인 docling-serve를 사용하면 Docling을 서비스 형태로 실행할 수 있고, 간단한 CLI도 제공하므로 애플리케이션 내부 라이브러리와 독립적인 명령줄 작업 모두에 대응합니다.

시각 정보까지 포함한 처리가 필요한 경우에는 GraniteDocling을 비롯한 여러 VLM(Visual Language Model)을 사용할 수 있습니다. CLI에서 VLM 파이프라인과 granite_docling 모델을 지정해 PDF를 처리하는 방식이 제공됩니다. 오디오와 비디오에서는 ASR 모델을 통해 음성 내용을 전사하므로 텍스트 문서뿐 아니라 멀티미디어 자료를 생성형 AI 입력으로 정리하는 흐름도 구성할 수 있습니다.

■ 설치와 실행 환경

설치는 Python 패키지 관리자를 통해 pip install docling 명령으로 진행합니다. Docling 2.70.0부터 Python 3.9 지원이 중단되었으므로 Python 3.10 이상이 필요합니다. macOS, Linux, Windows에서 실행할 수 있으며 x86_64와 arm64 아키텍처를 모두 지원합니다. 민감한 데이터를 외부 서비스로 보내기 어려운 환경을 위해 로컬 실행이 가능하고, 네트워크가 분리된 air-gapped 환경에서도 사용할 수 있는 실행 방식을 제공합니다. 문서 변환 기능과 설치 절차, 개념, 레시피, 확장 기능에 대한 추가 내용은 프로젝트 문서에서 확인할 수 있으며, 내부 동작은 Docling Technical Report에서 다룹니다.

Docling은 MIT 라이선스 기반의 코드, 통합된 문서 표현, 폭넓은 입력 형식, OCR과 VLM을 포함한 문서 이해, 그리고 생성형 AI 프레임워크 연동을 한 프로젝트 안에서 제공합니다. 문서를 AI 파이프라인에 투입하기 전에 형식별 파서를 별도로 구성하거나 결과 형식을 일일이 맞추는 대신, 여러 입력을 DoclingDocument로 통합한 뒤 필요한 출력 형식과 프레임워크로 연결하는 구조를 사용할 수 있습니다.

원문: GitHub / 번역·요약: Trawling