MarkItDownConverter
MarkItDownConverter
Microsoft의 MarkItDown 라이브러리로 파일을 문서로 변환해주는 컴포넌트예요. 인덱싱 파이프라인 시작 부분이나 PreProcessor 앞에 두면 돼요.
본문
개요
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"]}})