
    h                    ~    d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ erd dlmZ  G d d	e
      Zy
)    )annotations)TYPE_CHECKINGIteratorListOptional)Document)
BaseLoader)Blob)!AzureAIDocumentIntelligenceParser)TokenCredentialc                  f    e Zd ZdZ	 	 	 	 	 	 	 dddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 ddZy)	!AzureAIDocumentIntelligenceLoaderz,Load a PDF with Azure Document Intelligence.N)analysis_featuresazure_credentialc	          	         ||	|J d       |	|
J d       |	|
J d       || _         || _        || _        t        ||||||	|
      | _        y)a
  
        Initialize the object for file processing with Azure Document Intelligence
        (formerly Form Recognizer).

        This constructor initializes a AzureAIDocumentIntelligenceParser object to be
        used for parsing files using the Azure Document Intelligence API. The load
        method generates Documents whose content representations are determined by the
        mode parameter.

        Parameters:
        -----------
        api_endpoint: str
            The API endpoint to use for DocumentIntelligenceClient construction.
        api_key: str
            The API key to use for DocumentIntelligenceClient construction.
        file_path : Optional[str]
            The path to the file that needs to be loaded.
            Either file_path, url_path or bytes_source must be specified.
        url_path : Optional[str]
            The URL to the file that needs to be loaded.
            Either file_path, url_path or bytes_source must be specified.
        bytes_source : Optional[bytes]
            The bytes array of the file that needs to be loaded.
            Either file_path, url_path or bytes_source must be specified.
        api_version: Optional[str]
            The API version for DocumentIntelligenceClient. Setting None to use
            the default value from `azure-ai-documentintelligence` package.
        api_model: str
            Unique document model name. Default value is "prebuilt-layout".
            Note that overriding this default value may result in unsupported
            behavior.
        mode: Optional[str]
            The type of content representation of the generated Documents.
            Use either "single", "page", or "markdown". Default value is "markdown".
        analysis_features: Optional[List[str]]
            List of optional analysis features, each feature should be passed
            as a str that conforms to the enum `DocumentAnalysisFeature` in
            `azure-ai-documentintelligence` package. Default value is None.
        azure_credential: Optional[TokenCredential]
            The credentials to use for DocumentIntelligenceClient construction, when
            using credentials other than api_key (like AD).

        Examples:
        ---------
        >>> obj = AzureAIDocumentIntelligenceLoader(
        ...     file_path="path/to/file",
        ...     api_endpoint="https://endpoint.azure.com",
        ...     api_key="APIKEY",
        ...     api_version="2023-10-31-preview",
        ...     api_model="prebuilt-layout",
        ...     mode="markdown"
        ... )
        Nz4file_path, url_path or bytes_source must be providedz4Either api_key or azure_credential must be provided.z;Only one of api_key or azure_credential should be provided.)api_endpointapi_keyapi_version	api_modelmoder   r   )	file_pathurl_pathbytes_sourcer   parser)selfr   r   r   r   r   r   r   r   r   r   s              s/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/document_loaders/doc_intelligence.py__init__z*AzureAIDocumentIntelligenceLoader.__init__   s    J !X%9\=U	BA	BU "&6&B 	
B	
B "2": 	
I	
: # (7%#/-
    c              #    K   | j                   Ct        j                  | j                         }| j                  j	                  |      E d{    y| j
                  .| j                  j                  | j
                        E d{    y| j                  .| j                  j                  | j                        E d{    yt        d      7 7 L7 w)z Lazy load the document as pages.NzNo data source provided.)
r   r
   	from_pathr   parser   	parse_urlr   parse_bytes
ValueError)r   blobs     r   	lazy_loadz+AzureAIDocumentIntelligenceLoader.lazy_loadr   s      >>%>>$..1D{{((...]]&{{,,T]];;;*{{..t/@/@AAA788 /;As6   A
CC9CC9C CCCC)NNNNNzprebuilt-layoutmarkdown)r   strr   Optional[str]r   r)   r   r)   r   zOptional[bytes]r   r)   r   r(   r   r(   r   zOptional[List[str]]r   zOptional['TokenCredential']returnNone)r*   zIterator[Document])__name__
__module____qualname____doc__r   r&    r   r   r   r      s    6
 "&#'"&(,%)*\
 268<\
\
 \
 !	\

  \
 &\
 #\
 \
 \
 /\
 6\
 
\
|9	9r   r   N)
__future__r   typingr   r   r   r   langchain_core.documentsr   )langchain_community.document_loaders.baser	   1langchain_community.document_loaders.blob_loadersr
   ,langchain_community.document_loaders.parsersr   azure.core.credentialsr   r   r0   r   r   <module>r8      s2    " : : - @ B 6m9
 m9r   