§
    šŠtj~  ã                  óÖ   — d Z ddlmZ ddlZddlZddlmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ  eddd¬¦  «         G d„ de¦  «        ¦   «         ZdS )z Azure OpenAI embeddings wrapper.é    )ÚannotationsN)ÚAnyÚ	AwaitableÚCallableÚDictÚOptionalÚUnion)Ú
deprecated)Úget_from_dict_or_env)ÚFieldÚmodel_validator)ÚSelf)ÚOpenAIEmbeddings)Úis_openai_v1z0.0.9z1.0z&langchain_openai.AzureOpenAIEmbeddings)ÚsinceÚremovalÚalternative_importc                  óT  — e Zd ZU dZdZded<   	  edd¬¦  «        Zded<   	  edd	¬¦  «        Zded
<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	  edd¬¦  «        Zded<   	 dZded<    ed¬¦  «        ed!d„¦   «         ¦   «         Z ed¬¦  «        d"d„¦   «         Zed#d „¦   «         ZdS )$ÚAzureOpenAIEmbeddingsz`Azure OpenAI` Embeddings API.NzUnion[str, None]Úazure_endpointÚazure_deployment)ÚdefaultÚaliaszOptional[str]Ú
deploymentÚapi_keyÚopenai_api_keyÚazure_ad_tokenzUnion[Callable[[], str], None]Úazure_ad_token_providerz)Union[Callable[[], Awaitable[str]], None]Úazure_ad_async_token_providerÚapi_versionÚopenai_api_versionTÚboolÚvalidate_base_urlÚbefore)ÚmodeÚvaluesr   Úreturnr   c                óº  — |                      d¦  «        p't          j        d¦  «        pt          j        d¦  «        |d<   |                      d¦  «        pt          j        d¦  «        |d<   |                      d¦  «        pt          j        dd¬	¦  «        |d<   t          |d
dd¬	¦  «        |d
<   |                      d¦  «        p't          j        d¦  «        pt          j        d¦  «        |d<   t          |ddd¬	¦  «        |d<   |                      d¦  «        pt          j        d¦  «        |d<   |                      d¦  «        pt          j        d¦  «        |d<   t	          |d         d¦  «        |d<   	 ddl}n# t          $ r t          d¦  «        ‚w xY wt          ¦   «         r²|d         }|r¨|d         r d|vr1|dxx         dz  cc<   t          j	        d|› d|d         › d �¦  «         |d!         rct          j	        d"¦  «         |d!         |d         vr:t          j	        d#|› d|d         › d �¦  «         |dxx         d$|d!         z   z  cc<   d|d!<   |S )%z?Validate that api key and python package exists in environment.r   ÚAZURE_OPENAI_API_KEYÚOPENAI_API_KEYÚopenai_api_baseÚOPENAI_API_BASEr!   ÚOPENAI_API_VERSIONz
2023-05-15)r   Úopenai_api_typeÚOPENAI_API_TYPEÚazureÚopenai_organizationÚOPENAI_ORG_IDÚOPENAI_ORGANIZATIONÚopenai_proxyÚOPENAI_PROXYÚ r   ÚAZURE_OPENAI_ENDPOINTr   ÚAZURE_OPENAI_AD_TOKENÚ
chunk_sizei   r   NzTCould not import openai python package. Please install it with `pip install openai`.r#   z/openaiz¥As of openai>=1.0.0, Azure endpoints should be specified via the `azure_endpoint` param not `openai_api_base` (or alias `base_url`). Updating `openai_api_base` from z to ú.r   zØAs of openai>=1.0.0, if `deployment` (or alias `azure_deployment`) is specified then `openai_api_base` (or alias `base_url`) should not be. Instead use `deployment` (or alias `azure_deployment`) and `azure_endpoint`.zÈAs of openai>=1.0.0, if `openai_api_base` (or alias `base_url`) is specified it is expected to be of the form https://example-resource.azure.openai.com/openai/deployments/example-deployment. Updating z/deployments/)
ÚgetÚosÚgetenvr   ÚminÚopenaiÚImportErrorr   ÚwarningsÚwarn)Úclsr&   r?   r+   s       úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/embeddings/azure_openai.pyÚvalidate_environmentz*AzureOpenAIEmbeddings.validate_environment@   sa  € ð �JŠJÐ'Ñ(Ô(ð +ÝŒyÐ/Ñ0Ô0ð+åŒyÐ)Ñ*Ô*ð 	ÐÑ ð
 %+§J¢JÐ/@Ñ$AÔ$Að %
ÅRÄYØñF
ô F
ˆÐ Ñ!ð (.§z¢zÐ2FÑ'GÔ'Gð (
Í2Ì9Ø ¨,ðL
ñ L
ô L
ˆÐ#Ñ$õ %9ØÐ%Ð'8À'ð%
ñ %
ô %
ˆÐ Ñ!ð �JŠJÐ,Ñ-Ô-ð 0ÝŒy˜Ñ)Ô)ð0åŒyÐ.Ñ/Ô/ð 	Ð$Ñ%õ
 "6ØØØØð	"
ñ "
ô "
ˆˆ~Ñð $*§:¢:Ð.>Ñ#?Ô#?ð $
Å2Ä9Ø#ñD
ô D
ˆÐÑ ð $*§:¢:Ð.>Ñ#?Ô#?ð $
Å2Ä9Ø#ñD
ô D
ˆÐÑ õ  # 6¨,Ô#7¸Ñ>Ô>ˆˆ|Ñð	ØˆMˆMˆMˆMøÝð 	ð 	ð 	Ýð?ñô ð ð	øøøõ
 ‰>Œ>ð !	0ð %Ð%6Ô7ˆOØð 0 6Ð*=Ô#>ð 0Ø OÐ3Ð3ØÐ,Ð-Ð-Ô-°Ñ:Ð-Ð-Ñ-Ý”MðMð +ðMð Mð 17Ð7HÔ0IðMð Mð Mñô ð ð ˜,Ô'ð 0Ý”Mð0ñô ð ð ˜lÔ+°6Ð:KÔ3LÐLÐLÝ œð<ð )8ð	<ð <ð
  &Ð&7Ô8ð<ð <ð <ñô ð ð Ð0Ð1Ð1Ô1Ø+¨f°\Ô.BÑBñÐ1Ð1Ñ1ð ,0�F˜<Ñ(Øˆs   Å9E> Å>FÚafterr   c                ót  — ddl }t          ¦   «         r™| j        | j        | j        | j        | j        | j        | j        | j	        | j
        | j        i | j        pi ¥ddi¥| j        | j        dœ} |j        di |¤Žj        | _        | j        r
| j        |d<    |j        di |¤Žj        | _        n|j        | _        | S )z"Validate that the base url is set.r   Nz
User-Agentz"langchain-comm-python-azure-openai)r    r   r   r   r   r   ÚorganizationÚbase_urlÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientr   © )r?   r   r!   r   r   r   r   r   r1   r+   Úrequest_timeoutrK   rL   rM   rN   ÚAzureOpenAIÚ
embeddingsÚclientr   ÚAsyncAzureOpenAIÚasync_clientÚ	Embedding)Úselfr?   Úclient_paramss      rD   Úpost_init_validatorz)AzureOpenAIEmbeddings.post_init_validator•   s   € ð 	ˆˆˆå‰>Œ>ð 	+à#Ô6Ø"&Ô"5Ø$(¤OØÔ.Ø"&Ô"5Ø+/Ô+GØ $Ô 8Ø Ô0ØÔ/Ø#Ô/ð$ØÔ+Ð1¨rð$à Ð"Fð$ð $ð "&Ô!3Ø#Ô/ð!ð ˆMð$ -˜&Ô,Ð=Ð=¨}Ð=Ð=ÔHˆDŒKàÔ1ð àÔ6ð Ð7Ñ8ð !8 Ô 7Ð HÐ H¸-Ð HÐ HÔ SˆDÔÐà Ô*ˆDŒKØˆó    Ústrc                ó   — dS )Nzazure-openai-chatrO   )rW   s    rD   Ú	_llm_typezAzureOpenAIEmbeddings._llm_type¹   s   € à"Ð"rZ   )r&   r   r'   r   )r'   r   )r'   r[   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   r   r   r!   r#   r   ÚclassmethodrE   rY   Úpropertyr]   rO   rZ   rD   r   r      sŽ  € € € € € € ð )Ð(à'+€NÐ+Ð+Ð+Ñ+ðð !& ¨dÐ:LÐ MÑ MÔ M€JÐMÐMÐMÑMðð
 (- u°TÀÐ'KÑ'KÔ'K€NÐKÐKÐKÑKØUØ'+€NÐ+Ð+Ð+Ñ+ðð ?CÐÐBÐBÐBÑBðð
 PTÐ!ÐSÐSÐSÑSðð ).¨°dÀ-Ð(PÑ(PÔ(PÐÐPÐPÐPÑPØSØ"ÐÐ"Ð"Ð"Ñ"à€_˜(Ð#Ñ#Ô#ØðQð Qð Qñ „[ñ $Ô#ðQðf €_˜'Ð"Ñ"Ô"ð!ð !ð !ñ #Ô"ð!ðF ð#ð #ð #ñ „Xð#ð #ð #rZ   r   )ra   Ú
__future__r   r<   rA   Útypingr   r   r   r   r   r	   Úlangchain_core._api.deprecationr
   Úlangchain_core.utilsr   Úpydanticr   r   Útyping_extensionsr   Ú%langchain_community.embeddings.openair   Ú langchain_community.utils.openair   r   rO   rZ   rD   ú<module>rm      s9  ðØ &Ð &à "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø "Ð "Ð "Ð "Ð "Ð "à BÐ BÐ BÐ BÐ BÐ BØ 9Ð 9Ð 9Ð 9Ð 9Ð 9ð €Ø
ØØ?ðñ ô ð
d#ð d#ð d#ð d#ð d#Ð,ñ d#ô d#ñô ð
d#ð d#ð d#rZ   