[docs]classAzureAIDocumentIntelligenceParser(BaseBlobParser):"""Loads a PDF with Azure Document Intelligence (formerly Forms Recognizer)."""
[docs]def__init__(self,api_endpoint:str,api_key:Optional[str]=None,api_version:Optional[str]=None,api_model:str="prebuilt-layout",mode:str="markdown",analysis_features:Optional[List[str]]=None,azure_credential:Optional["TokenCredential"]=None,):fromazure.ai.documentintelligenceimportDocumentIntelligenceClientfromazure.ai.documentintelligence.modelsimportDocumentAnalysisFeaturefromazure.core.credentialsimportAzureKeyCredentialkwargs={}ifapi_keyisNoneandazure_credentialisNone:raiseValueError("Either api_key or azure_credential must be provided.")ifapi_keyandazure_credential:raiseValueError("Only one of api_key or azure_credential should be provided.")ifapi_versionisnotNone:kwargs["api_version"]=api_versionifanalysis_featuresisnotNone:_SUPPORTED_FEATURES=[DocumentAnalysisFeature.OCR_HIGH_RESOLUTION,]analysis_features=[DocumentAnalysisFeature(feature)forfeatureinanalysis_features]ifany([featurenotin_SUPPORTED_FEATURESforfeatureinanalysis_features]):logger.warning(f"The current supported features are: "f"{[f.valueforfin_SUPPORTED_FEATURES]}. ""Using other features may result in unexpected behavior.")self.client=DocumentIntelligenceClient(endpoint=api_endpoint,credential=azure_credentialorAzureKeyCredential(api_key),headers={"x-ms-useragent":"langchain-parser/1.0.0"},features=analysis_features,**kwargs,)self.api_model=api_modelself.mode=modeassertself.modein["single","page","markdown"]