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)
- AzureDocumentIntelligenceConverter — Markdown 출력의 최신 컨버터
- Converters — 컨버터 개요