microsoft/markitdown
Python4 / 0
다양한 문서와 미디어를 LLM 파이프라인용 Markdown으로 변환하는 Python SDK와 CLI 도구입니다.
TL;DR
MarkItDown은 Microsoft가 제공하는 Python library-SDK 겸 CLI 도구로, 여러 파일과 Office 문서를 LLM 처리에 적합한 Markdown으로 바꿉니다. PDF·PowerPoint·Word·Excel·이미지·오디오·HTML·CSV·JSON·XML·ZIP·YouTube URL·EPUB 등을 지원하며 Python API, 표준 입출력, Docker 실행을 제공합니다. 필요한 형식만 optional dependency로 설치할 수 있고 plugin으로 OCR 같은 기능을 확장하며, Azure Document Intelligence와 Azure Content Understanding을 통해 클라우드 기반 OCR과 구조화 field extraction도 선택할 수 있습니다. 다만 현재 프로세스 권한으로 파일과 네트워크 자원에 접근하므로 신뢰할 수 없는 입력을 그대로 전달하지 말고 사용 목적에 맞는 좁은 `convert_*` API를 선택해야 합니다.
핵심 포인트
- MarkItDown은 Python 기반 library-SDK이면서 CLI 도구로, PDF·Office 문서·이미지·오디오·HTML·구조화 텍스트를 Markdown으로 변환합니다. 변환 결과는 사람이 읽는 고정밀 문서보다 LLM과 텍스트 분석 파이프라인의 입력에 맞춰 headings·lists·tables·links 같은 구조를 보존합니다. Python 3.10 이상에서 `pip install 'markitdown[all]'`로 설치할 수 있어 문서 수집 단계에 바로 연결하기 좋습니다.
- 입력 형식별 optional dependency를 `[pdf]`, `[docx]`, `[pptx]`처럼 선택 설치할 수 있어 필요한 변환기만 포함할 수 있습니다. `convert()`는 로컬 파일·원격 URI·byte stream을 폭넓게 처리하고, `convert_local()`·`convert_response()`·`convert_stream()`은 입력 경로와 네트워크 접근 범위를 좁히는 방식입니다. 서버나 hosted application에서 사용자 입력을 처리할 때는 파일 경로·URI scheme·네트워크 목적지를 별도로 검증해야 합니다.
- CLI와 Python API를 함께 제공하며, 표준 입력과 출력 파일 지정도 지원해 배치 변환이나 파이프라인 연결에 사용할 수 있습니다. 기본 변환 외에 Azure Document Intelligence와 Azure Content Understanding을 선택적으로 연결하면 클라우드 layout extraction·OCR·YAML front matter 기반 field extraction을 사용할 수 있습니다. Content Understanding 경로는 호출마다 과금되는 Azure API를 사용하므로 `cu_file_types`로 적용 형식을 제한해야 합니다.
- plugin-extension-skill 생태계도 제공하며 plugin은 기본 비활성화 상태에서 `--list-plugins`와 `--use-plugins`로 관리합니다. `markitdown-ocr` plugin은 PDF·DOCX·PPTX·XLSX 내부 이미지에 LLM Vision OCR을 적용하고 `llm_client`와 `llm_model`을 재사용합니다. 새로운 형식이나 애플리케이션을 본체에 넣기보다 third-party plugin 또는 별도 패키지로 확장하는 구조입니다.
180.1k
STARS
13.3k
FORKS
+771
TRENDING
4
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.