Azure Document Intelligence
haystack_integrations.components.converters.azure_doc_intelligence.converter
AzureDocumentIntelligenceConverter
Converts files to Documents using Azure's Document Intelligence service.
This component uses the azure-ai-documentintelligence package (v1.0.0+) and outputs GitHub Flavored Markdown for better integration with LLM/RAG applications.
Supported file formats: PDF, JPEG, PNG, BMP, TIFF, DOCX, XLSX, PPTX, HTML.
Key features:
- Markdown output with preserved structure (headings, tables, lists)
- Inline table integration (tables rendered as markdown tables)
- Improved layout analysis and reading order
- Support for section headings
To use this component, you need an active Azure account and a Document Intelligence or Cognitive Services resource. For setup instructions, see Azure documentation.
Usage example
import os
from haystack_integrations.components.converters.azure_doc_intelligence import (
AzureDocumentIntelligenceConverter,
)
from haystack.utils import Secret
converter = AzureDocumentIntelligenceConverter(
endpoint=os.environ["AZURE_DI_ENDPOINT"],
api_key=Secret.from_env_var("AZURE_DI_API_KEY"),
)
results = converter.run(sources=["invoice.pdf", "contract.docx"])
documents = results["documents"]
# Documents contain markdown with inline tables
print(documents[0].content)
init
__init__(
endpoint: str,
*,
api_key: Secret = Secret.from_env_var("AZURE_DI_API_KEY"),
model_id: str = "prebuilt-layout",
store_full_path: bool = False
) -> None
Creates an AzureDocumentIntelligenceConverter component.
Parameters:
- endpoint (
str) – The endpoint URL of your Azure Document Intelligence resource. Example: "https://YOUR_RESOURCE.cognitiveservices.azure.com/" - api_key (
Secret) – API key for Azure authentication. Can use Secret.from_env_var() to load from AZURE_DI_API_KEY environment variable. - model_id (
str) – Azure model to use for analysis. Options: - "prebuilt-layout": Layout analysis with table and structure detection (default)
- "prebuilt-read": Fast OCR for text extraction
- Custom model IDs from your Azure resource
- store_full_path (
bool) – If True, stores complete file path in metadata. If False, stores only the filename (default).
warm_up
Initializes the Azure Document Intelligence client.
run
run(
sources: list[str | Path | ByteStream],
meta: dict[str, Any] | list[dict[str, Any]] | None = None,
) -> dict[str, list[Document] | list[dict]]
Convert a list of files to Documents using Azure's Document Intelligence service.
Parameters:
- sources (
list[str | Path | ByteStream]) – List of file paths or ByteStream objects. - meta (
dict[str, Any] | list[dict[str, Any]] | None) – Optional metadata to attach to the Documents. This value can be either a list of dictionaries or a single dictionary. If it's a single dictionary, its content is added to the metadata of all produced Documents. If it's a list, the length of the list must match the number of sources, because the two lists will be zipped. Ifsourcescontains ByteStream objects, theirmetawill be added to the output Documents.
Returns:
dict[str, list[Document] | list[dict]]– A dictionary with the following keys:documents: List of created Documentsraw_azure_response: List of raw Azure responses used to create the Documents
to_dict
Serializes the component to a dictionary.
Returns:
dict[str, Any]– Dictionary with serialized data.
from_dict
Deserializes the component from a dictionary.
Parameters:
- data (
dict[str, Any]) – The dictionary to deserialize from.
Returns:
AzureDocumentIntelligenceConverter– The deserialized component.