TikaDocumentConverter
TikaDocumentConverter
TikaDocumentConverter 는 다양한 형식의 파일(PDF, DOCX, HTML 등)을 문서(Document)로 변환하는 통합 컴포넌트예요. 인덱싱 파이프라인에서 파일 내용을 Document Store에 인덱싱할 때 쓰여요.
출처: 문서
본문
개요 (Overview)
TikaDocumentConverter 컴포넌트는 다양한 형식의 파일(pdf, docx, html 등)을 문서로 변환해요. 인덱싱 파이프라인에서 파일 내용을 Document Store에 인덱싱할 때 쓸 수 있어요. 파일 경로 또는 ByteStream 객체 목록을 입력으로 받아 변환 결과를 문서 목록으로 출력해요. 선택적으로 meta 입력 파라미터로 문서에 메타데이터를 첨부할 수 있어요.
이 통합은 파일을 파싱하는 Apache Tika를 사용하며, 실행 중인 Tika 서버가 필요해요.
Tika를 실행하는 가장 쉬운 방법은 Docker를 쓰는 거예요: docker run -d -p 127.0.0.1:9998:9998 apache/tika:latest. Docker에서 Tika를 실행하는 더 많은 옵션은 Tika 문서를 참고하세요.
TikaDocumentConverter 컴포넌트를 초기화할 때 tika_url 파라미터로 사용 중인 Tika 서버의 커스텀 URL을 지정할 수 있어요. 기본 URL은 "http://localhost:9998/tika" 예요.
사용법 (Usage)
TikaDocumentConverter 컴포넌트를 쓰려면 tika-haystack 패키지를 설치하세요:
pip install tika-haystack
단독으로 쓰기
from haystack_integrations.components.converters.tika import TikaDocumentConverter
from pathlib import Path
converter = TikaDocumentConverter()
converter.run(sources=[Path("my_file.pdf")])
파이프라인에서 쓰기
from haystack import Pipeline
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack_integrations.components.converters.tika import TikaDocumentConverter
from haystack.components.preprocessors import DocumentCleaner
from haystack.components.preprocessors import DocumentSplitter
from haystack.components.writers import DocumentWriter
document_store = InMemoryDocumentStore()
pipeline = Pipeline()
pipeline.add_component("converter", TikaDocumentConverter())
pipeline.add_component("cleaner", DocumentCleaner())
pipeline.add_component(
"splitter",
DocumentSplitter(split_by="sentence", split_length=5),
)
pipeline.add_component("writer", DocumentWriter(document_store=document_store))
pipeline.connect("converter", "cleaner")
pipeline.connect("cleaner", "splitter")
pipeline.connect("splitter", "writer")
pipeline.run({"converter": {"sources": file_paths}})
더 알아보기 (Learn more)
- PreProcessors — 변환 후 문서 정리·분할
- ByteStream — 바이너리 입력 데이터 구조
- Tika API 참조
- GitHub 저장소