AzureOCRDocumentConverter

AzureOCRDocumentConverter

AzureOCRDocumentConverter는 Azure의 Document Intelligence 서비스를 사용해 파일을 문서로 변환해요. 지원 파일 형식: PDF(검색 가능 및 이미지 전용), JPEG, PNG, BMP, TIFF, DOCX, XLSX, PPTX, HTML.

파이프라인에서 가장 흔한 위치: PreProcessors 앞, 또는 인덱싱 파이프라인의 맨 앞 필수 init 변수: endpoint(Azure 리소스의 엔드포인트), api_key(Azure 리소스의 API 키. AZURE_AI_API_KEY 환경 변수로 설정 가능) 필수 run 변수: sources — 파일 경로 목록 출력 변수: documents(문서 목록), raw_azure_response(Azure의 원시 응답 목록) API reference: Azure Form Recognizer GitHub link: https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/azure_form_recognizer Package name: azure-form-recognizer-haystack

출처: 문서

본문

Overview

AzureOCRDocumentConverter는 파일 경로 또는 ByteStream 객체 목록을 입력으로 받아 Azure 서비스로 파일을 문서 목록으로 변환해요. 선택적으로 meta 입력 파라미터로 문서에 메타데이터를 붙일 수 있어요. 이 통합을 쓰려면 활성 Azure 계정과 Document Intelligence 또는 Cognitive Services 리소스가 필요합니다. 리소스 설정은 Azure 문서의 단계를 따르세요.

컴포넌트는 기본적으로 AZURE_AI_API_KEY 환경 변수를 사용해요. 또는 초기화 때 api_key를 전달할 수 있습니다 — 아래 코드 예시를 참고하세요.

컴포넌트를 초기화할 때 사용할 모델을 가리키는 model_id를 선택적으로 설정할 수 있어요. 사용 가능한 모델 목록은 Azure 문서를 참고하세요. 기본 모델은 "prebuilt-read"입니다.

AzureOCRDocumentConverter는 표를 페이지 텍스트에 인라인으로 남기지 않아요. 각 표에 대해 별도의 Document를 만들고, 표를 문서 콘텐츠에서 CSV로 렌더링하며 preceding_context, following_context, page를 메타데이터에 추가합니다.

Usage

AzureOCRDocumentConverter는 azure-form-recognizer-haystack 통합 패키지의 일부예요. 다음과 같이 설치하세요:

pip install azure-form-recognizer-haystack

On its own

from pathlib import Path
from haystack_integrations.components.converters.azure_form_recognizer import (
    AzureOCRDocumentConverter,
)
from haystack.utils import Secret

converter = AzureOCRDocumentConverter(
    endpoint="azure_resource_url",
    api_key=Secret.from_token("<your-api-key>"),
)
converter.run(sources=[Path("my_file.pdf")])

In a pipeline

from haystack import Pipeline
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack_integrations.components.converters.azure_form_recognizer import (
    AzureOCRDocumentConverter,
)
from haystack.components.preprocessors import DocumentCleaner
from haystack.components.preprocessors import DocumentSplitter
from haystack.components.writers import DocumentWriter
from haystack.utils import Secret

document_store = InMemoryDocumentStore()
pipeline = Pipeline()
pipeline.add_component(
    "converter",
    AzureOCRDocumentConverter(
        endpoint="azure_resource_url",
        api_key=Secret.from_token("<your-api-key>"),
    ),
)
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")

file_names = ["my_file.pdf"]
pipeline.run({"converter": {"sources": file_names}})

더 알아보기 (Learn more)