ó
    ûÞ j-‘  ã                  óD  • S SK Jr  S SKrS SKrS SKJrJrJrJrJ	r	J
r
JrJr  S SKJrJr  S SKrSSKJrJr  SSKJrJrJrJrJrJr  SSKJrJrJr  SS	KJ r J!r!  SS
K"J#r#  SSK$J%r%  SSK&J'r'J(r(  SSK)J*r*  SSK+J,r,J-r-  SSK.J/r/  SSK0J1r1  SSK2J3r3J4r4  SSK5J6r6  \7" / SQ5      r8\	/ \94   r:\	/ S4   r;\" S\\Rx                  \Rz                  4   S9r>\" S\\,\   \-\   4   S9r?SR�                  / SQ5      rAS-S jrBS.S jrCSrDS/S jrES0S jrFS0S jrG " S  S!\15      rH\" S"\\9\	S#\4   4   S9rI\" S$\	S#\4   S9rJ        S1S% jrK              S2S& jrL " S' S(\4\>\?4   5      rM " S) S*\M\Rx                  \,\   4   \ 5      rN " S+ S,\M\Rz                  \-\   4   \!5      rOg)3é    )ÚannotationsN)ÚAnyÚUnionÚMappingÚTypeVarÚCallableÚ	AwaitableÚcastÚoverload)ÚSelfÚoverrideé   )ÚWorkloadIdentityÚX509WorkloadIdentity)Ú	NOT_GIVENÚOmitÚQueryÚHeadersÚTimeoutÚNotGiven)Úis_givenÚ
is_mappingÚpath_template)ÚOpenAIÚAsyncOpenAI)Ú
model_copy)Únormalize_httpx_url)ÚSecurityOptionsÚFinalRequestOptions)Ú	_Provider)ÚStreamÚAsyncStream)Úis_x509_workload_identity)ÚOpenAIError)ÚDEFAULT_MAX_RETRIESÚ
BaseClient)ÚDataResidency)z/completionsz/chat/completionsz/embeddingsz/audio/transcriptionsz/audio/translationsz/audio/speechz/images/generationsz/images/editszstr | Awaitable[str]Ú_HttpxClientT)ÚboundÚ_DefaultStreamTÚ )Ú<zmissing API keyÚ>c                óN   ^• TR                  5       m[        U4S jU  5       5      $ )Nc              3  óF   >#   • U H  oR                  5       T:H  v •  M     g 7f©N)Úlower)Ú.0ÚkeyÚheaders     €ÚJ/var/www/html/gaurav/venv/lib/python3.13/site-packages/openai/lib/azure.pyÚ	<genexpr>Ú_has_header.<locals>.<genexpr>4   s   øé € Ð8±¨�y‰y‹{˜fÖ$²ùs   ƒ!)r1   Úany)Úheadersr4   s    `r5   Ú_has_headerr:   2   s   ø€ Ø�\‰\‹^€FÜÔ8±Ó8Ó8Ð8ó    c                ó@   • [        U S5      =(       d    [        U S5      $ )NÚAuthorizationúapi-key)r:   )r9   s    r5   Ú_has_auth_headerr?   7   s   € Ü�w Ó0×S´KÀÈÓ4SÐSr;   zopenai.azure_auth_originc                óŽ   • U R                   nUc  SSS.R                  U R                  5      nU R                  U R                  U4$ )NéP   i»  )ÚhttpÚhttps)ÚportÚgetÚschemeÚhost)ÚurlrD   s     r5   Ú_originrI   >   s>   € Ø�8‰8€DØ�|Ø SÑ)×-Ñ-¨c¯j©jÓ9ˆØ�:‰:�s—x‘x Ð%Ð%r;   c                ó¶   • U R                   R                  [        5      nUb7  U[        U R                  5      :w  a  U R
                  R                  SS 5        g g g )Nr>   )Ú
extensionsrE   Ú_AZURE_AUTH_ORIGINrI   rH   r9   Úpop)ÚrequestÚorigins     r5   Ú _strip_azure_api_key_on_redirectrP   E   sK   € Ø×Ñ×#Ñ#Ô$6Ó7€FØÑ˜f¬°·±Ó(<Ó<Ø�‰×Ñ˜I tÕ,ð =Ðr;   c              ƒ  ó"   #   • [        U 5        g 7fr0   )rP   )rN   s    r5   Ú&_async_strip_azure_api_key_on_redirectrR   K   s   é € Ü$ WÕ-ùs   ‚c                  ó,   ^ • \ rS rSrSU 4S jjrSrU =r$ )ÚMutuallyExclusiveAuthErroréO   c                ó$   >• [         TU ]  S5        g )Nz€The `api_key`, `azure_ad_token` and `azure_ad_token_provider` arguments are mutually exclusive; Only one can be passed at a time)ÚsuperÚ__init__)ÚselfÚ	__class__s    €r5   rX   Ú#MutuallyExclusiveAuthError.__init__P   s   ø€ Ü‰Ñð Oõ	
r;   © )ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rX   Ú__static_attributes__Ú__classcell__©rZ   s   @r5   rT   rT   O   s   ø† ÷
õ 
r;   rT   Ú_AzureApiKeyT.Ú_AzureTokenProviderTc                ó  • [        U S L=(       a	    U [        :g  US LUS L45      S:”  a
  [        5       eU nU cG  UcD  UcA  [        R                  R                  S5      nUc  [        R                  R                  S5      nX1U4$ )Né   ÚAZURE_OPENAI_AD_TOKENÚAZURE_OPENAI_API_KEY)ÚsumÚAPI_KEY_SENTINELrT   ÚosÚenvironrE   )Úapi_keyÚazure_ad_tokenÚazure_ad_token_providerÚresolved_api_keys       r5   Ú_resolve_azure_authrt   Z   sš   € ô 	à˜tÐ#×C¨Ô3CÑ(CØ dÐ*Ø'¨tÐ3ðó	
ð ó	ô )Ó*Ð*ð 4;ÐØ�˜>Ñ1Ð6MÑ6UÜŸ™Ÿ™Ð(?Ó@ˆØÑ!Ü!Ÿz™zŸ~™~Ð.DÓEÐàÐ-DÐDÐDr;   c               óv   • U c  Uc  Uc  U=(       d    [         XE4$ [        XU5      u  pgnU=(       d    [         Xx4$ r0   )rm   rt   )	rp   rq   rr   Úcurrent_api_keyÚcurrent_tokenÚcurrent_providerr3   ÚtokenÚproviders	            r5   Ú_copy_azure_authr{   w   sJ   € ð �˜>Ñ1Ð6MÑ6UØ×2Ô"2°MÐSÐSô /¨wÐH_Ó`Ñ€C�Ø×"Ô" EÐ3Ð3r;   c                  óx   ^ • \ rS rSr% S\S'   S\S'   \SS.     SU 4S jjj5       r\SU 4S	 jj5       rS
rU =r	$ )ÚBaseAzureClientéˆ   zhttpx2.URL | NoneÚ_azure_endpointú
str | NoneÚ_azure_deploymentr   ©Úretries_takenc               ó„  >• UR                   [        ;   aw  [        UR                  5      (       a]  UR                  R	                  S5      nUb?  S[        U R                  R                  5      ;  a  [        SUS9UR                   -   Ul         [        TU ])  XS9n[        UR                   5      UR                  [        '   U$ )NÚmodelz/deploymentsz/deployments/{model})r…   r‚   )rH   Ú_deployments_endpointsr   Ú	json_datarE   ÚstrÚbase_urlÚpathr   rW   Ú_build_requestrI   rK   rL   )rY   Úoptionsrƒ   r…   rN   rZ   s        €r5   r‹   ÚBaseAzureClient._build_requestŒ   s¢   ø€ ð �;‰;Ô0Ó0´ZÀ×@QÑ@Q×5RÑ5RØ×%Ñ%×)Ñ)¨'Ó2ˆEØÑ  ^¼3¸t¿}¹}×?QÑ?QÓ;RÓ%RÜ+Ð,BÈ%ÑPÐSZ×S^ÑS^Ñ^�”ä‘'Ñ(¨Ð(ÐNˆô 29¸¿¹Ó1Eˆ×ÑÔ-Ñ.Øˆr;   c                ó†  >• U R                   (       a¡  U R                  (       a�  U[        ;  a†  [        R                  " U5      nUR
                  (       a]  U R                  R                  R                  S5      S-   UR                  R                  S5      -   nU R                  R                  US9$ U$ [        TU ]-  U5      $ )z×Adjust the URL if the client was configured with an Azure endpoint + deployment
and the API feature being called is **not** a deployments-based endpoint
(i.e. requires /deployments/deployment-name in the URL path).
ó   /s   /openai/©Úraw_path)r�   r   r†   Úhttpx2ÚURLÚis_relative_urlr‘   ÚrstripÚlstripÚ	copy_withrW   Ú_prepare_url)rY   rH   Ú	merge_urlÚmerge_raw_pathrZ   s       €r5   r˜   ÚBaseAzureClient._prepare_urlž   s¡   ø€ ð ×!×! d×&:×&:¸sÔJ`Ó?`ÜŸ
š
 3›ˆIØ×(×(à×(Ñ(×1Ñ1×8Ñ8¸Ó>ÀÑLÈy×OaÑOa×OhÑOhÐimÓOnÑnð ð ×+Ñ+×5Ñ5¸~Ð5ÐNÐNàÐä‰wÑ# CÓ(Ð(r;   r\   )rŒ   r   rƒ   Úintr]   úhttpx2.Request)rH   rˆ   r]   ú
httpx2.URL)
r_   r`   ra   rb   Ú__annotations__r   r‹   r˜   rc   rd   re   s   @r5   r}   r}   ˆ   sV   ø‡ Ø&Ó&Ø!Ó!àð
 ñ	à$ðð ð	ð
 
÷ó ðð" ö)ó ö)r;   r}   c                  ó  ^ • \ rS rSr\SSSSSSSSS\\SSSSSS.                                   SS jj5       r\SSSSSSSSS\\SSSSSS.                                 SS jj5       r\SSSSSSSS\\SSSSSS.                                 SS	 jj5       rSSSSSSSSSSSSS\\SSSSSS
.                                         SU 4S jjjr\SSS\SSSSSSS\S\S\SSSSS0 S.                                             SU 4S jjj5       r	\	r
SS jr\SS j5       r\SS j5       r\SS j5       rSS jrSrU =r$ )ÚAzureOpenAIé±   NFT)Úazure_deploymentÚapi_versionrp   Úadmin_api_keyrq   rr   ÚorganizationÚwebhook_secretÚwebsocket_base_urlÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ_strict_response_validationÚ_enforce_credentialsc               ó   • g r0   r\   )rY   Úazure_endpointr£   r¤   rp   r¥   rq   rr   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   s                     r5   rX   ÚAzureOpenAI.__init__²   ó   € ð* r;   c               ó   • g r0   r\   )rY   r£   r¤   rp   r¥   rq   rr   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   s                    r5   rX   r²   É   ó   € ð( r;   )r¤   rp   r¥   rq   rr   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   c               ó   • g r0   r\   )rY   r‰   r¤   rp   r¥   rq   rr   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   s                    r5   rX   r²   ß   rµ   r;   )r¤   r±   r£   rp   r¥   Úworkload_identityrq   rr   r¦   Úprojectr§   r¨   r‰   r©   rª   r«   r¬   r­   r®   r¯   c               ó4  >• [        U5      (       a  [        S5      e[        XGU5      u  pGnU(       a  Uc  Uc  Uc  [        S5      eUc  [        R                  R                  S5      nUc  [        S5      eUc  SU0nO0 UESU0EnUc_  Uc  [        R                  R                  S5      nUc  [        S5      eUb  UR                  S	5       S
U 3nO#UR                  S	5       S3nOUb  [        S5      eUc  [        n[        TU ])  UUU	U
UUUUUUUUUUS9  Xl        Xpl        X€l        U(       a  UOSU l        U(       a  [        R                   " U5      OSU l        U R$                  R&                  S   n[(        U;  a  UR+                  [(        5        gg)aù  Construct a new synchronous azure openai client instance.

This automatically infers the following arguments from their corresponding environment variables if they are not provided:
- `api_key` from `AZURE_OPENAI_API_KEY`
- `organization` from `OPENAI_ORG_ID`
- `project` from `OPENAI_PROJECT_ID`
- `azure_ad_token` from `AZURE_OPENAI_AD_TOKEN`
- `api_version` from `OPENAI_API_VERSION`
- `azure_endpoint` from `AZURE_OPENAI_ENDPOINT`

Pass at most one of `api_key`, `azure_ad_token`, or `azure_ad_token_provider`.
An explicit credential takes precedence over Azure credential environment variables.
With no explicit credential, `AZURE_OPENAI_AD_TOKEN` takes precedence over `AZURE_OPENAI_API_KEY`.

Args:
    azure_endpoint: Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`

    azure_ad_token: Your Azure Active Directory token, https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id

    azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.

    azure_deployment: A model deployment, if given with `azure_endpoint`, sets the base client URL to include `/deployments/{azure_deployment}`.
        Not supported with Assistants APIs.
ú9X.509 workload identity is not supported by Azure clientsNú¯Missing credentials. Please pass one of `api_key`, `azure_ad_token`, `azure_ad_token_provider`, or the `AZURE_OPENAI_API_KEY` or `AZURE_OPENAI_AD_TOKEN` environment variables.ÚOPENAI_API_VERSIONú_Must provide either the `api_version` argument or the `OPENAI_API_VERSION` environment variableúapi-versionÚAZURE_OPENAI_ENDPOINTúuMust provide one of the `base_url` or `azure_endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variableÚ/ú/openai/deployments/ú/openaiú2base_url and azure_endpoint are mutually exclusive©rp   r¥   r¦   r¸   r§   r‰   r©   rª   r«   r¬   r­   r¨   r®   r¯   rN   )r#   r$   rt   rn   ro   rE   Ú
ValueErrorr•   rm   rW   rX   Ú_api_versionÚ_azure_ad_tokenÚ_azure_ad_token_providerr�   r’   r“   r   Ú_clientÚevent_hooksrP   Úappend)rY   r¤   r±   r£   rp   r¥   r·   rq   rr   r¦   r¸   r§   r¨   r‰   r©   rª   r«   r¬   r­   r®   r¯   ÚhooksrZ   s                         €r5   rX   r²   õ   sã  ø€ ôb %Ð%6×7Ñ7ÜÐYÓZÐZä;NØÐ%<ó<
Ñ8ˆÐ!8ö   G¡O¸Ñ8NÐSjÑSrÜð Bóð ð ÑÜŸ*™*Ÿ.™.Ð)=Ó>ˆKàÑÜØqóð ð Ñ Ø*¨KÐ8‰MàI˜}ÐI¨m¸[ÑIˆMàÑØÑ%Ü!#§¡§¡Ð0GÓ!H�àÑ%Ü ð Lóð ð  Ñ+Ø,×3Ñ3°CÓ8Ð9Ð9MÐN^ÐM_Ð`‘à,×3Ñ3°CÓ8Ð9¸ÐA‘àÑ)Ü Ð!UÓVÐVà‰?ä&ˆGä‰ÑØØ'Ø%ØØ)ØØØ#Ø+Ø'Ø#Ø1Ø(CØ!5ð 	ñ 	
ð  (ÔØ-ÔØ(?Ô%Þ5CÑ!1ÈˆÔÞ=KœvŸzšz¨.Ô9ÐQUˆÔà—‘×(Ñ(¨Ñ3ˆÜ+°5Ó8Ø�L‰LÔ9Õ:ð 9r;   ©rp   r¥   r·   rz   r¦   r¸   r§   r¨   r¤   rq   rr   r‰   Údata_residencyr©   r­   rª   r«   Úset_default_headersr¬   Úset_default_queryr¯   Ú_extra_kwargsc               ó¸  >• Ub  [        S5      e[        U[        5      (       a  SOUn[        U[        5      (       d  [        S5      e[        U5      (       a  [        S5      e[	        UU
UU R
                  =(       d    U R                  U R                  U R                  S9u  pn[        TU ])  UUUUUUUUUUUUUUUUU	=(       d    U R                  U
US.UES9$ )ún
Create a new client instance re-using the same options given to the current client with optional overriding.
Nú4`data_residency` is only supported by OpenAI clientszFConfigure `provider` on `OpenAI`, not on `AzureOpenAI.with_options()`.rº   ©rv   rw   rx   ©r¤   rq   rr   ©rp   r¥   r·   r¦   r¸   r§   r¨   r‰   r©   r­   rª   r«   rÐ   r¬   rÑ   r¯   rÒ   ©r$   Ú
isinstancer   r#   r{   Ú_api_key_providerrp   rÈ   rÉ   rW   ÚcopyrÇ   ©rY   rp   r¥   r·   rz   r¦   r¸   r§   r¨   r¤   rq   rr   r‰   rÏ   r©   r­   rª   r«   rÐ   r¬   rÑ   r¯   rÒ   rZ   s                          €r5   rÜ   ÚAzureOpenAI.copyn  s  ø€ ð< Ñ%ÜÐTÓUÐUÜ% h´×9Ñ9‘4¸xˆÜ˜(¤H×-Ñ-ÜÐfÓgÐgÜ$Ð%6×7Ñ7ÜÐYÓZÐZä;KØØØ#Ø ×2Ñ2×B°d·l±lØ×.Ñ.Ø!×:Ñ:ñ<
Ñ8ˆÐ!8ô ‰w‰|ØØ'Ø/Ø%ØØ)Ø1ØØØ#Ø#Ø+Ø 3Ø'Ø/Ø!5à*×?¨d×.?Ñ.?Ø"0Ø+Bñð  ð	ð# ð 
ð 	
r;   c                ó$  • U R                   b  U R                   $ U R                  nUbh  [        [        U" 5       5      n[	        U[
        5      (       a  [
        R                  U5      n[	        U[
        5      (       a  U(       d  [        S5      eU$ g ©NzIExpected `azure_ad_token_provider` argument to return a non-empty string.)rÈ   rÉ   r
   ÚobjectrÚ   rˆ   Ú__str__rÆ   ©rY   rz   ry   s      r5   Ú_get_azure_ad_tokenÚAzureOpenAI._get_azure_ad_token¸  sw   € Ø×ÑÑ+Ø×'Ñ'Ð'à×0Ñ0ˆØÑÜœ¡£Ó,ˆEÜ˜%¤×%Ñ%äŸ™ EÓ*�Ü˜e¤S×)Ñ)¶Ü Ð!lÓmÐmØˆLàr;   c                ó¨   • U R                   b  SSU R                    30$ U R                  (       a"  U R                  [        :w  a  SU R                  0$ 0 $ ©Nr=   úBearer r>   ©rÈ   rp   rm   ©rY   Úsecuritys     r5   Ú_auth_headersÚAzureOpenAI._auth_headersÈ  óN   € à×ÑÑ+Ø# w¨t×/CÑ/CÐ.DÐ%EÐFÐFà�<�<˜DŸL™LÔ,<Ó<Ø˜tŸ|™|Ð,Ð,àˆ	r;   c                óZ   • [        U5      (       d  [        U5      (       a  g [        S5      e©NzÔ"Could not resolve authentication method. Expected either api_key, azure_ad_token or azure_ad_token_provider to be set. Or for one of the `Authorization` or `api-key` headers to be explicitly supplied or omitted"©r?   Ú	TypeError©rY   r9   Úcustom_headerss      r5   Ú_validate_headersÚAzureOpenAI._validate_headersÒ  ó.   € ä˜G×$Ñ$Ô(8¸×(HÑ(HØäð có
ð 	
r;   c                ó  • U R                   b  U R                  5         [        UR                  5      (       a  0 UR                  EO0 n[	        U5      nX!l        U R                  5       nUb  [        US5      (       d  SU 3US'   U$ U R                  (       a6  U R                  [        :w  a"  [        US5      (       d  U R                  US'   U$ [        U5      (       d  [        U R                  5      (       a   U$ [        S5      e©Nr=   rè   r>   zUnable to handle auth©rÛ   Ú_refresh_api_keyr   r9   r   rä   r:   rp   rm   r?   r«   rÆ   ©rY   rŒ   r9   rq   s       r5   Ú_prepare_optionsÚAzureOpenAI._prepare_optionsÛ  sð   € à×!Ñ!Ñ-Ø×!Ñ!Ô#ä@HÈÏÉ×@YÑ@YÐ)<¨G¯O©OÑ)<Ð_aˆä˜WÓ%ˆØ!Œà×1Ñ1Ó3ˆØÑ%Ü˜w¨×8Ñ8Ø-4°^Ð4DÐ+E�˜Ñ(ð ˆð �\�\˜dŸl™lÔ.>Ó>Ü˜w¨	×2Ñ2Ø%)§\¡\�˜	Ñ"ð ˆô ˜g×&Ñ&Ô*:¸4×;OÑ;O×*PÑ*PØð
 ˆô Ð4Ó5Ð5r;   c                óö  • 0 n0 UEU R                   U R                  =(       d    US.EnU R                  (       a  U R                  S:w  a  SU R                  0nOU R                  5       nU(       a  SSU 30nU R                  bC  [        U R                  5      nUR                  R                  S5      S-   nUR                  US9nO U R                  S	5      nUR                  S
S9nUR                  0 UES9n	X“4$ ©N)r¾   Ú
deploymentz<missing API key>r>   r=   rè   r�   s	   /realtimer�   z	/realtimeÚwss)rF   )Úparams©
rÇ   r�   rp   rä   r¨   r   r‘   r•   r—   r˜   ©
rY   r…   Úextra_queryÚauth_headersÚqueryry   r‰   rš   Úrealtime_urlrH   s
             r5   Ú_configure_realtimeÚAzureOpenAI._configure_realtimeô  s  € Øˆð
Øð
à×,Ñ,Ø×0Ñ0×9°Eò
ˆð
 �<�<˜DŸL™LÐ,?Ó?Ø% t§|¡|Ð4‰Là×,Ñ,Ó.ˆEÞØ /°7¸5¸'Ð1BÐC�à×"Ñ"Ñ.Ü*¨4×+BÑ+BÓCˆHØ%×.Ñ.×5Ñ5°dÓ;¸lÑJˆNØ#×-Ñ-°~Ð-ÐF‰Là×(Ñ(¨Ó5ˆHØ#×-Ñ-°UÐ-Ð;ˆLà×$Ñ$¨I¨u¨IÐ$Ð6ˆØÐ Ð r;   ©rÇ   rÈ   rÉ   r�   r   )$r±   rˆ   r£   r€   r¤   r€   rp   ústr | Callable[[], str] | Noner¥   r€   rq   r€   rr   úAzureADTokenProvider | Noner¦   r€   r§   r€   r¨   ústr | httpx2.URL | Noner©   ú!float | Timeout | None | NotGivenrª   rœ   r«   úMapping[str, str] | Noner¬   úMapping[str, object] | Noner­   úhttpx2.Client | Noner®   Úboolr¯   r  r]   r^   )"r£   r€   r¤   r€   rp   r  r¥   r€   rq   r€   rr   r  r¦   r€   r§   r€   r¨   r  r©   r  rª   rœ   r«   r  r¬   r  r­   r  r®   r  r¯   r  r]   r^   )"r‰   rˆ   r¤   r€   rp   r  r¥   r€   rq   r€   rr   r  r¦   r€   r§   r€   r¨   r  r©   r  rª   rœ   r«   r  r¬   r  r­   r  r®   r  r¯   r  r]   r^   )*r¤   r€   r±   r€   r£   r€   rp   r  r¥   r€   r·   ú.WorkloadIdentity | X509WorkloadIdentity | Nonerq   r€   rr   r  r¦   r€   r¸   r€   r§   r€   r¨   r  r‰   r€   r©   r  rª   rœ   r«   r  r¬   r  r­   r  r®   r  r¯   r  r]   r^   ).rp   r  r¥   r€   r·   r  rz   ú_Provider | None | NotGivenr¦   r€   r¸   r€   r§   r€   r¨   r  r¤   r€   rq   r€   rr   r  r‰   ú"str | httpx2.URL | None | NotGivenrÏ   úDataResidency | Noner©   r  r­   r  rª   úint | NotGivenr«   r  rÐ   r  r¬   r  rÑ   r  r¯   úbool | NonerÒ   úMapping[str, Any]r]   r   ©r]   r€   ©rë   r   r]   zdict[str, str]©r9   r   rô   r   r]   r^   ©rŒ   r   r]   r   ©r…   rˆ   r  r   r]   z!tuple[httpx2.URL, dict[str, str]]©r_   r`   ra   rb   r   r   r%   rX   r   rÜ   Úwith_optionsrä   rì   rõ   rý   r
  rc   rd   re   s   @r5   r¡   r¡   ±   s¶  ø† Øð
 (,Ø"&Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)ñ'ð ðð %ð	ð
  ðð 0ðð "ðð #ðð "=ðð !ðð #ðð 4ðð 3ðð ðð 2ðð  3ð!ð" *ð#ð$ &*ð%ð& #ð'ð( 
ô)ó ðð, ð (,Ø"&Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)ñ%ð %ðð  ð	ð
 0ðð "ðð #ðð "=ðð !ðð #ðð 4ðð 3ðð ðð 2ðð 3ðð  *ð!ð" &*ð#ð$ #ð%ð& 
ô'ó ðð* ð
 #'Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)ñ%ð ðð  ð	ð
 0ðð "ðð #ðð "=ðð !ðð #ðð 4ðð 3ðð ðð 2ðð 3ðð  *ð!ð" &*ð#ð$ #ð%ð& 
ô'ó ðð0 #'Ø%)Ø'+Ø26Ø$(àLPØ%)Ø?CØ#'Ø"Ø%)Ø6:Ø#Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)ñ/w;ð  ðw;ð #ð	w;ð
 %ðw;ð 0ðw;ð "ðw;ð Jðw;ð #ðw;ð "=ðw;ð !ðw;ð ðw;ð #ðw;ð 4ðw;ð  ð!w;ð" 3ð#w;ð$ ð%w;ð& 2ð'w;ð( 3ð)w;ð* *ð+w;ð, &*ð-w;ð. #ð/w;ð0 
÷1w;ð w;ðr ð 37Ø$(ØLPØ09Ø#'Ø"Ø%)Ø6:Ø"&Ø%)Ø?CØ7@Ø/3Ø5>Ø,0Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ1E
ð 0ðE
ð "ð	E
ð
 JðE
ð .ðE
ð !ðE
ð ðE
ð #ðE
ð 4ðE
ð  ðE
ð #ðE
ð "=ðE
ð 5ðE
ð -ðE
ð  3ð!E
ð" *ð#E
ð$ $ð%E
ð& 2ð'E
ð( 6ð)E
ð* 3ð+E
ð, 7ð-E
ð. *ð/E
ð0 )ð1E
ð2 
÷3E
ó ðE
ðN €Lôð  óó ðð ó
ó ð
ð óó ð÷0!ò !r;   r¡   c                  ó.  ^ • \ rS rSr\SSSSSSSSSS\\SSSSSS.                                     SS jj5       r\SSSSSSSSSS\\SSSSSS.                                   SS jj5       r\SSSSSSSSS\\SSSSSS.                                   SS	 jj5       rSSSSSSSSSSSSS\\SSSSSS
.                                         SU 4S jjjr\SSS\SSSSSSS\S\S\SSSSS0 S.                                             SU 4S jjj5       r	\	r
SS jr\SS j5       r\SS j5       r\SS j5       rSS jrSrU =r$ )ÚAsyncAzureOpenAIi  NFT)r£   r¤   rp   r¥   rq   rr   r¦   r¸   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   c               ó   • g r0   r\   )rY   r±   r£   r¤   rp   r¥   rq   rr   r¦   r¸   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   s                      r5   rX   ÚAsyncAzureOpenAI.__init__  s   € ð, r;   c               ó   • g r0   r\   )rY   r£   r¤   rp   r¥   rq   rr   r¦   r¸   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   s                     r5   rX   r&  '  r³   r;   )r¤   rp   r¥   rq   rr   r¦   r¸   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   c               ó   • g r0   r\   )rY   r‰   r¤   rp   r¥   rq   rr   r¦   r¸   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   s                     r5   rX   r&  >  r³   r;   )r±   r£   r¤   rp   r¥   r·   rq   rr   r¦   r¸   r§   r‰   r¨   r©   rª   r«   r¬   r­   r®   r¯   c               ó4  >• [        U5      (       a  [        S5      e[        XGU5      u  pGnU(       a  Uc  Uc  Uc  [        S5      eUc  [        R                  R                  S5      nUc  [        S5      eUc  SU0nO0 UESU0EnUc_  Uc  [        R                  R                  S5      nUc  [        S5      eUb  UR                  S	5       S
U 3nO#UR                  S	5       S3nOUb  [        S5      eUc  [        n[        TU ])  UUU	U
UUUUUUUUUUS9  X0l        Xpl        X€l        U(       a  UOSU l        U(       a  [        R                   " U5      OSU l        U R$                  R&                  S   n[(        U;  a  UR+                  [(        5        gg)aú  Construct a new asynchronous azure openai client instance.

This automatically infers the following arguments from their corresponding environment variables if they are not provided:
- `api_key` from `AZURE_OPENAI_API_KEY`
- `organization` from `OPENAI_ORG_ID`
- `project` from `OPENAI_PROJECT_ID`
- `azure_ad_token` from `AZURE_OPENAI_AD_TOKEN`
- `api_version` from `OPENAI_API_VERSION`
- `azure_endpoint` from `AZURE_OPENAI_ENDPOINT`

Pass at most one of `api_key`, `azure_ad_token`, or `azure_ad_token_provider`.
An explicit credential takes precedence over Azure credential environment variables.
With no explicit credential, `AZURE_OPENAI_AD_TOKEN` takes precedence over `AZURE_OPENAI_API_KEY`.

Args:
    azure_endpoint: Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`

    azure_ad_token: Your Azure Active Directory token, https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id

    azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.

    azure_deployment: A model deployment, if given with `azure_endpoint`, sets the base client URL to include `/deployments/{azure_deployment}`.
        Not supported with Assistants APIs.
rº   Nr»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rN   )r#   r$   rt   rn   ro   rE   rÆ   r•   rm   rW   rX   rÇ   rÈ   rÉ   r�   r’   r“   r   rÊ   rË   rR   rÌ   )rY   r±   r£   r¤   rp   r¥   r·   rq   rr   r¦   r¸   r§   r‰   r¨   r©   rª   r«   r¬   r­   r®   r¯   rÍ   rZ   s                         €r5   rX   r&  U  sã  ø€ ôb %Ð%6×7Ñ7ÜÐYÓZÐZä;NØÐ%<ó<
Ñ8ˆÐ!8ö   G¡O¸Ñ8NÐSjÑSrÜð Bóð ð ÑÜŸ*™*Ÿ.™.Ð)=Ó>ˆKàÑÜØqóð ð Ñ Ø*¨KÐ8‰MàI˜}ÐI¨m¸[ÑIˆMàÑØÑ%Ü!#§¡§¡Ð0GÓ!H�àÑ%Ü ð Lóð ð  Ñ+Ø,×3Ñ3°CÓ8Ð9Ð9MÐN^ÐM_Ð`‘à,×3Ñ3°CÓ8Ð9¸ÐA‘àÑ)Ü Ð!UÓVÐVà‰?ä&ˆGä‰ÑØØ'Ø%ØØ)ØØØ#Ø+Ø'Ø#Ø1Ø(CØ!5ð 	ñ 	
ð  (ÔØ-ÔØ(?Ô%Þ5CÑ!1ÈˆÔÞ=KœvŸzšz¨.Ô9ÐQUˆÔà—‘×(Ñ(¨Ñ3ˆÜ1¸Ó>Ø�L‰LÔ?Õ@ð ?r;   rÎ   c               ó¸  >• Ub  [        S5      e[        U[        5      (       a  SOUn[        U[        5      (       d  [        S5      e[        U5      (       a  [        S5      e[	        UU
UU R
                  =(       d    U R                  U R                  U R                  S9u  pn[        TU ])  UUUUUUUUUUUUUUUUU	=(       d    U R                  U
US.UES9$ )rÔ   NrÕ   zPConfigure `provider` on `AsyncOpenAI`, not on `AsyncAzureOpenAI.with_options()`.rº   rÖ   r×   rØ   rÙ   rÝ   s                          €r5   rÜ   ÚAsyncAzureOpenAI.copyÎ  s  ø€ ð< Ñ%ÜÐTÓUÐUÜ% h´×9Ñ9‘4¸xˆÜ˜(¤H×-Ñ-ÜÐpÓqÐqÜ$Ð%6×7Ñ7ÜÐYÓZÐZä;KØØØ#Ø ×2Ñ2×B°d·l±lØ×.Ñ.Ø!×:Ñ:ñ<
Ñ8ˆÐ!8ô ‰w‰|ØØ'Ø/Ø%ØØ)Ø1ØØØ#Ø#Ø+Ø 3Ø'Ø/Ø!5à*×?¨d×.?Ñ.?Ø"0Ø+Bñð  ð	ð# ð 
ð 	
r;   c              ƒ  óz  #   • U R                   b  U R                   $ U R                  nUb�  [        [        U" 5       5      n[        R
                  " U5      (       a
  UI S h  v•N n[        U[        5      (       a  [        R                  U5      n[        U[        5      (       a  U(       d  [        S5      eU$ g  NX7frà   )
rÈ   rÉ   r
   rá   ÚinspectÚisawaitablerÚ   rˆ   râ   rÆ   rã   s      r5   rä   Ú$AsyncAzureOpenAI._get_azure_ad_token  s—   é € Ø×ÑÑ+Ø×'Ñ'Ð'à×0Ñ0ˆØÑÜœ¡£Ó,ˆEÜ×"Ò" 5×)Ñ)Ø#Ÿ�Ü˜%¤×%Ñ%äŸ™ EÓ*�Ü˜e¤S×)Ñ)¶Ü Ð!lÓmÐmØˆLàñ $ùs   ‚AB;Á B9Á!AB;c                ó¨   • U R                   b  SSU R                    30$ U R                  (       a"  U R                  [        :w  a  SU R                  0$ 0 $ rç   ré   rê   s     r5   rì   ÚAsyncAzureOpenAI._auth_headers*  rî   r;   c                óZ   • [        U5      (       d  [        U5      (       a  g [        S5      erð   rñ   ró   s      r5   rõ   Ú"AsyncAzureOpenAI._validate_headers4  r÷   r;   c              ƒ  ó<  #   • U R                   b  U R                  5       I S h  v•N   [        UR                  5      (       a  0 UR                  EO0 n[	        U5      nX!l        U R                  5       I S h  v•N nUb  [        US5      (       d  SU 3US'   U$ U R                  (       a6  U R                  [        :w  a"  [        US5      (       d  U R                  US'   U$ [        U5      (       d  [        U R                  5      (       a   U$ [        S5      e Nô N£7frù   rú   rü   s       r5   rý   Ú!AsyncAzureOpenAI._prepare_options=  s  é € à×!Ñ!Ñ-Ø×'Ñ'Ó)×)Ð)ä@HÈÏÉ×@YÑ@YÐ)<¨G¯O©OÑ)<Ð_aˆä˜WÓ%ˆØ!Œà#×7Ñ7Ó9×9ˆØÑ%Ü˜w¨×8Ñ8Ø-4°^Ð4DÐ+E�˜Ñ(ð ˆð �\�\˜dŸl™lÔ.>Ó>Ü˜w¨	×2Ñ2Ø%)§\¡\�˜	Ñ"ð ˆô ˜g×&Ñ&Ô*:¸4×;OÑ;O×*PÑ*PØð
 ˆô Ð4Ó5Ð5ñ% *ñ :ùs#   ‚!D£D¤ADÁ6DÁ7B"DÄDc              ƒ  ó  #   • 0 n0 UEU R                   U R                  =(       d    US.EnU R                  (       a  U R                  S:w  a  SU R                  0nO&U R                  5       I S h  v•N nU(       a  SSU 30nU R                  bC  [        U R                  5      nUR                  R                  S5      S-   nUR                  US9nO U R                  S	5      nUR                  S
S9nUR                  0 UES9n	X“4$  N–7fr   r  r  s
             r5   r
  Ú$AsyncAzureOpenAI._configure_realtimeV  s  é € Øˆð
Øð
à×,Ñ,Ø×0Ñ0×9°Eò
ˆð
 �<�<˜DŸL™LÐ,?Ó?Ø% t§|¡|Ð4‰Là×2Ñ2Ó4×4ˆEÞØ /°7¸5¸'Ð1BÐC�à×"Ñ"Ñ.Ü*¨4×+BÑ+BÓCˆHØ%×.Ñ.×5Ñ5°dÓ;¸lÑJˆNØ#×-Ñ-°~Ð-ÐF‰Là×(Ñ(¨Ó5ˆHØ#×-Ñ-°UÐ-Ð;ˆLà×$Ñ$¨I¨u¨IÐ$Ð6ˆØÐ Ð ñ 5ùs   ‚A,DÁ.DÁ/BDr  )&r±   rˆ   r£   r€   r¤   r€   rp   ú)str | Callable[[], Awaitable[str]] | Noner¥   r€   rq   r€   rr   ú AsyncAzureADTokenProvider | Noner¦   r€   r¸   r€   r§   r€   r¨   r  r©   r  rª   rœ   r«   r  r¬   r  r­   úhttpx2.AsyncClient | Noner®   r  r¯   r  r]   r^   )$r£   r€   r¤   r€   rp   r8  r¥   r€   rq   r€   rr   r9  r¦   r€   r¸   r€   r§   r€   r¨   r  r©   r  rª   rœ   r«   r  r¬   r  r­   r:  r®   r  r¯   r  r]   r^   )$r‰   rˆ   r¤   r€   rp   r8  r¥   r€   rq   r€   rr   r9  r¦   r€   r¸   r€   r§   r€   r¨   r  r©   r  rª   rœ   r«   r  r¬   r  r­   r:  r®   r  r¯   r  r]   r^   )*r±   r€   r£   r€   r¤   r€   rp   r8  r¥   r€   r·   r  rq   r€   rr   r9  r¦   r€   r¸   r€   r§   r€   r‰   r€   r¨   r  r©   r  rª   rœ   r«   r  r¬   r  r­   r:  r®   r  r¯   r  r]   r^   ).rp   r8  r¥   r€   r·   r  rz   r  r¦   r€   r¸   r€   r§   r€   r¨   r  r¤   r€   rq   r€   rr   r9  r‰   r  rÏ   r  r©   r  r­   r:  rª   r  r«   r  rÐ   r  r¬   r  rÑ   r  r¯   r  rÒ   r  r]   r   r  r  r  r  r   r!  re   s   @r5   r$  r$    sú  ø† Øð
 (,Ø"&Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)ñ)ð ðð %ð	ð
  ðð ;ðð "ðð #ðð "Bðð !ðð ðð #ðð 4ðð 3ðð ðð  2ð!ð" 3ð#ð$ /ð%ð& &*ð'ð( #ð)ð* 
ô+ó ðð. ð (,Ø"&Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)ñ'ð %ðð  ð	ð
 ;ðð "ðð #ðð "Bðð !ðð ðð #ðð 4ðð 3ðð ðð 2ðð  3ð!ð" /ð#ð$ &*ð%ð& #ð'ð( 
ô)ó ðð, ð
 #'Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)ñ'ð ðð  ð	ð
 ;ðð "ðð #ðð "Bðð !ðð ðð #ðð 4ðð 3ðð ðð 2ðð  3ð!ð" /ð#ð$ &*ð%ð& #ð'ð( 
ô)ó ðð2 &*Ø'+Ø"&Ø=AØ$(àLPØ%)ØDHØ#'Ø"Ø%)Ø#Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)ñ/wAð #ðwAð %ð	wAð
  ðwAð ;ðwAð "ðwAð JðwAð #ðwAð "BðwAð !ðwAð ðwAð #ðwAð ðwAð  4ð!wAð" 3ð#wAð$ ð%wAð& 2ð'wAð( 3ð)wAð* /ð+wAð, &*ð-wAð. #ð/wAð0 
÷1wAð wAðr ð >BØ$(ØLPØ09Ø#'Ø"Ø%)Ø6:Ø"&Ø%)ØDHØ7@Ø/3Ø5>Ø15Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ1E
ð ;ðE
ð "ð	E
ð
 JðE
ð .ðE
ð !ðE
ð ðE
ð #ðE
ð 4ðE
ð  ðE
ð #ðE
ð "BðE
ð 5ðE
ð -ðE
ð  3ð!E
ð" /ð#E
ð$ $ð%E
ð& 2ð'E
ð( 6ð)E
ð* 3ð+E
ð, 7ð-E
ð. *ð/E
ð0 )ð1E
ð2 
÷3E
ó ðE
ðN €Lôð$ óó ðð ó
ó ð
ð óó ð÷0!ò !r;   r$  )r9   r   r4   rˆ   r]   r  )r9   r   r]   r  )rH   rž   r]   ztuple[str, str, int | None])rN   r�   r]   r^   )rp   ú_AzureApiKeyT | Nonerq   r€   rr   ú_AzureTokenProviderT | Noner]   zJtuple[_AzureApiKeyT | str | None, str | None, _AzureTokenProviderT | None])rp   r;  rq   r€   rr   r<  rv   z_AzureApiKeyT | strrw   r€   rx   r<  r]   zCtuple[_AzureApiKeyT | str, str | None, _AzureTokenProviderT | None])PÚ
__future__r   rn   r-  Útypingr   r   r   r   r   r	   r
   r   Útyping_extensionsr   r   r’   Úauthr   r   Ú_typesr   r   r   r   r   r   Ú_utilsr   r   r   rÊ   r   r   Ú_compatr   Ú_httpx2r   Ú_modelsr   r   Ú	_providerr    Ú
_streamingr!   r"   Ú
auth._x509r#   Ú_exceptionsr$   Ú_base_clientr%   r&   Ú_data_residencyr'   Úsetr†   rˆ   ÚAzureADTokenProviderÚAsyncAzureADTokenProviderÚClientÚAsyncClientr(   r*   Újoinrm   r:   r?   rL   rI   rP   rR   rT   rf   rg   rt   r{   r}   r¡   r$  r\   r;   r5   Ú<module>rR     s  ðÝ "ã 	Û ß T× TÓ Tß ,ã ç 9ß G× Gß 8Ñ 8ß )Ý  Ý )ß :Ý !ß ,Ý 2Ý %ß :Ý +áò	óÐ ð    C Ñ(Ð Ø$ RÐ)?Ð%?Ñ@Ð Ù˜¨u°V·]±]ÀF×DVÑDVÐ5VÑ/WÑX€ÙÐ+°5¸À¹ÀkÐRUÑFVÐ9VÑ3WÑX€ð —7‘7Ò8Ó9Ð ô9ô
Tð 0Ð ô&ô-ô.ô
 ô 
ñ ˜¨u°S¸(À3ÈÀ8Ñ:LÐ5LÑ/MÑN€ÙÐ5¸XÀcÈ3ÀhÑ=OÑPÐ ðEØ!ðEàðEð 9ðEð Pô	Eð:4Ø!ð4àð4ð 9ð4ð
 )ð4ð ð4ð 2ð4ð Iô4ô"&)�j °Ð!?Ñ@ô &)ôRZ!�/ &§-¡-°¸±Ð"<Ñ=¸vô Z!ôz
_!� v×'9Ñ'9¸;ÀsÑ;KÐ'KÑLÈkõ _!r;   