MarkItDownConverter

MarkItDownConverter

Microsoft의 MarkItDown 라이브러리로 파일을 문서로 변환해주는 컴포넌트예요. 인덱싱 파이프라인 시작 부분이나 PreProcessor 앞에 두면 돼요.

출처: MarkItDownConverter

본문

개요

MarkItDownConverter는 Microsoft의 MarkItDown 라이브러리를 사용해 파일을 Haystack Document로 변환해요. MarkItDown은 PDF, Word(.docx), PowerPoint(.pptx), Excel(.xlsx), HTML 등 많은 파일 형식을 Markdown으로 변환해요. 모든 처리는 외부 API에 의존하지 않고 로컬에서 수행돼요.

컨버터는 파일 경로나 ByteStream 객체를 입력으로 받고, 변환 결과를 Document 목록으로 출력해요. meta 입력 파라미터로 Document에 메타데이터를 붙일 수 있어요.

참고: 이 컴포넌트는 Markdown 내용을 반환해요. 기본 설정의 DocumentCleaner()에 통과시키지 않는 게 좋아요. remove_extra_whitespaces=True와 remove_empty_lines=True가 줄바꿈을 붕괴시키고 헤딩·테이블·리스트·이미지 태그를 평탄화할 수 있기 때문이에요. 컨버터를 다음 컴포넌트에 직접 연결하거나, 커스텀 정리가 필요하면 해당 옵션을 비활성화하세요.

사용법

MarkItDown 통합을 설치해요.

pip install markitdown-haystack

단독 사용:

from haystack_integrations.components.converters.markitdown import MarkItDownConverter

converter = MarkItDownConverter()
result = converter.run(sources=["document.pdf", "report.docx"])
documents = result["documents"]

파이프라인 안에서:

from haystack import Pipeline
from haystack.components.preprocessors import DocumentSplitter
from haystack.components.writers import DocumentWriter
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack_integrations.components.converters.markitdown import MarkItDownConverter

document_store = InMemoryDocumentStore()

pipeline = Pipeline()
pipeline.add_component("converter", MarkItDownConverter())
pipeline.add_component(
    "splitter",
    DocumentSplitter(split_by="sentence", split_length=5),
)
pipeline.add_component("writer", DocumentWriter(document_store=document_store))
pipeline.connect("converter", "splitter")
pipeline.connect("splitter", "writer")

pipeline.run({"converter": {"sources": ["document.pdf", "report.docx"]}})

더 알아보기 (Learn more)