UnstructuredFileConverter

UnstructuredFileConverter

텍스트 파일과 디렉토리를 하나의 문서로 변환해 주는 컴포넌트예요. 다양한 파일 형식을 다루는 인덱싱 파이프라인의 시작점으로 쓰기 좋아요.

파이프라인에서 가장 흔한 위치: PreProcessor 앞, 또는 인덱싱 파이프라인의 맨 앞 필수 run 변수: paths — 경로 리스트들의 합집합 출력 변수: documents — 문서 리스트 API 레퍼런스: Unstructured GitHub 링크: https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/unstructured 패키지 이름: unstructured-fileconverter-haystack

출처: 문서

본문

개요 (Overview)

UnstructuredFileConverter는 Unstructured API를 사용해 파일과 디렉토리를 문서로 변환해요.

Unstructured은 LLM을 위한 ETL을 수행하는 여러 도구를 제공해요. UnstructuredFileConverter는 방대한 파일 형식에서 텍스트와 기타 정보를 추출하는 Unstructured API를 호출해요.

이 Converter는 Unstructured가 반환한 요소들로 문서를 만드는 여러 모드를 지원해요:

"one-doc-per-file": 파일마다 Haystack 문서 하나. 모든 요소가 하나의 텍스트 필드로 합쳐져요. "one-doc-per-page": 페이지마다 Haystack 문서 하나. 한 페이지의 모든 요소가 하나의 텍스트 필드로 합쳐져요. "one-doc-per-element": 요소마다 Haystack 문서 하나. 각 요소가 Haystack 문서로 변환돼요.

사용법 (Usage)

UnstructuredFileConverter 컴포넌트를 쓰려면 Unstructured 통합을 설치해요:

pip install unstructured-fileconverter-haystack

Unstructured API에는 무료 버전과 유료 버전이 있어요: Free Unstructured API와 Unstructured Serverless API.

Free Unstructured API:

API URL: https://api.unstructured.io/general/v0/general 이 버전은 무료지만 일정한 제한이 있어요.

Unstructured Serverless API:

유료 버전에 가입하면 Unstructured 계정에서 나만의 고유 API URL을 찾을 수 있어요. 이건 Unstructured의 풀 유료 티어예요.

두 티어에 대한 자세한 내용은 Unstructured FAQ를 참고하세요.

❗️ 무료 버전과 유료 버전의 API 키는 서로 다르며 바꿔 쓸 수 없어요.

어느 티어를 선택하든 Unstructured API 키를 환경 변수 UNSTRUCTURED_API_KEY로 설정하는 걸 권장해요:

export UNSTRUCTURED_API_KEY=your_api_key

단독으로 사용하기 (On its own)

import os
from haystack_integrations.components.converters.unstructured import (
    UnstructuredFileConverter,
)

converter = UnstructuredFileConverter()
documents = converter.run(paths=["a/file/path.pdf", "a/directory/path"])["documents"]

파이프라인 안에서 사용하기 (In a pipeline)

import os
from haystack import Pipeline
from haystack.components.writers import DocumentWriter
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack_integrations.components.converters.unstructured import (
    UnstructuredFileConverter,
)

document_store = InMemoryDocumentStore()
indexing = Pipeline()
indexing.add_component("converter", UnstructuredFileConverter())
indexing.add_component("writer", DocumentWriter(document_store))
indexing.connect("converter", "writer")
indexing.run({"converter": {"paths": ["a/file/path.pdf", "a/directory/path"]}})

Docker 사용하기 (With Docker)

Docker를 통해 UnstructuredFileConverter를 쓰려면 먼저 Unstructured Docker 컨테이너를 설정해요:

docker run -p 8000:8000 -d --rm --name unstructured-api quay.io/unstructured-io/unstructured-api:latest --port 8000 --host 0.0.0.0

컴포넌트를 초기화할 때 localhost URL을 지정해요:

from haystack_integrations.components.converters.unstructured import (
    UnstructuredFileConverter,
)

converter = UnstructuredFileConverter(
    api_url="http://localhost:8000/general/v0/general",
)

더 알아보기 (Learn more)