TextFileToDocument
TextFileToDocument
텍스트 파일을 검색 가능한 문서(Document)로 바꾸고 싶을 때 쓰는 변환기예요. 텍스트 파일의 내용을 읽어서 Haystack이 다루는 문서 객체로 만들어 주죠.
출처: 공식문서
이 컴포넌트가 하는 일
TextFileToDocument 컴포넌트는 텍스트 파일을 문서로 변환합니다. 인덱싱 파이프라인에서 이걸 쓰면 텍스트 파일의 내용을 Document Store에 색인할 수 있어요. 입력으로는 파일 경로 목록이나 ByteStream 객체를 받고, 변환된 결과를 문서 목록으로 내보냅니다. 필요하면 meta 입력 파라미터로 문서에 메타데이터를 붙일 수도 있어요.
컴포넌트를 초기화할 때 encoding 파라미터로 텍스트 파일의 기본 인코딩을 설정할 수 있습니다. 값을 주지 않으면 기본값으로 "utf-8"을 사용해요. 다만 입력으로 들어온 ByteStream의 메타데이터에 인코딩이 지정돼 있으면, 그 값이 이 파라미터 설정을 덮어씁니다.
사용 예시
단독으로 쓰기
from pathlib import Path
from haystack.components.converters import TextFileToDocument
converter = TextFileToDocument()
docs = converter.run(sources=[Path("my_file.txt")])
파이프라인 안에서 쓰기
from haystack import Pipeline
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.converters import TextFileToDocument
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", TextFileToDocument())
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}})