DOCXToDocument
DOCXToDocument
DOCX 문서를 검색 가능한 문서(Document)로 바꾸는 변환기예요. 워드 파일 안의 텍스트와 표를 Haystack이 다루는 문서 객체로 만들어 줍니다.
출처: 공식문서
이 컴포넌트가 하는 일
DOCXToDocument 컴포넌트는 DOCX 파일을 문서로 변환합니다. 입력으로는 파일 경로 목록이나 ByteStream 객체를 받고, 변환 결과를 문서 목록으로 내보내요. 표 형식(CSV 또는 Markdown)을 지정하면 DOCX 파일 안의 표를 추출하는 데에도 쓸 수 있습니다. 필요하면 meta 입력 파라미터로 문서에 메타데이터를 붙일 수도 있어요.
사용 예시
이 변환기를 쓰려면 먼저 python-docx 패키지를 설치해야 합니다.
pip install python-docx
단독으로 쓰기
from haystack.components.converters.docx import DOCXToDocument, DOCXTableFormat
converter = DOCXToDocument()
# or define the table format
converter = DOCXToDocument(table_format=DOCXTableFormat.CSV)
results = converter.run(
sources=["sample.docx"],
meta={"date_added": datetime.now().isoformat()},
)
documents = results["documents"]
print(documents[0].content)
# 'This is the text from the DOCX file.'
파이프라인 안에서 쓰기
from haystack import Pipeline
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.converters import DOCXToDocument
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", DOCXToDocument())
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_names}})