
    dh                        S SK Jr  S SKJrJrJrJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  \(       a  S SKJr   " S S	\
5      rg
)    )annotations)TYPE_CHECKINGIteratorListOptional)Document)
BaseLoader)Blob)!AzureAIDocumentIntelligenceParser)TokenCredentialc                  v    \ rS rSrSr       SSSS.                     S	S jjjr  S
S jrSrg)!AzureAIDocumentIntelligenceLoader   z,Load a PDF with Azure Document Intelligence.N)analysis_featuresazure_credentialc	          
         Uc  Uc
  Uc   S5       eUc
  U
c   S5       eUb
  U
b   S5       eX0l         X@l        XPl        [        UUUUUU	U
S9U l        g)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              m/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/doc_intelligence.py__init__*AzureAIDocumentIntelligenceLoader.__init__   s    J !X%9\=U	BA	BU "&6&B 	
B	
B "2": 	
I	
: # (7%#/-
    c              #    #    U R                   bD  [        R                  " U R                   5      nU R                  R	                  U5       Sh  vN   gU R
                  b.  U R                  R                  U R
                  5       Sh  vN   gU R                  b.  U R                  R                  U R                  5       Sh  vN   g[        S5      e N NM N7f)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_load+AzureAIDocumentIntelligenceLoader.lazy_loadr   s      >>%>>$..1D{{((...]]&{{,,T]];;;*{{..t/@/@AAA788 /;As6   ACC:C	C
:CCCCC)r   r   r   r   )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____firstlineno____doc__r   r(   __static_attributes__ 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   r5   r    r   <module>r=      s2    " : : - @ B 6m9
 m9r    