Ë
    @²Xjy  ã                  ó„  — 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
mZmZ d dlmZmZ d dlZddlmZ ddlmZmZmZmZmZmZ ddlmZmZ dd	lmZmZ dd
l m!Z! ddl"m#Z#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) ddl*m+Z+ ddl,m-Z-m.Z.  e/g d¢«      Z0e	g e1f   Z2e	g df   Z3 edeejh                  ejj                  f   ¬«      Z6 edee(e   e)e   f   ¬«      Z7djq                  g d¢«      Z9d!d„Z:d"d„Z; G d„ de+«      Z< G d„ de.e6e7f   «      Z= G d„ de=ejh                  e(e   f   e«      Z> G d„ d e=ejj                  e)e   f   e«      Z?y)#é    )ÚannotationsN)ÚAnyÚUnionÚMappingÚTypeVarÚCallableÚ	AwaitableÚcastÚoverload)ÚSelfÚoverrideé   )ÚWorkloadIdentity)Ú	NOT_GIVENÚOmitÚQueryÚHeadersÚTimeoutÚNotGiven)Úis_givenÚ
is_mapping)ÚOpenAIÚAsyncOpenAI)Ú
model_copy)ÚSecurityOptionsÚFinalRequestOptions)Ú	_Provider)ÚStreamÚAsyncStream)ÚOpenAIError)ÚDEFAULT_MAX_RETRIESÚ
BaseClient)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                óL   ‡— ‰j                  «       Št        ˆfd„| D «       «      S )Nc              3  óD   •K  — | ]  }|j                  «       ‰k(  –— Œ y ­w©N)Úlower)Ú.0ÚkeyÚheaders     €úV/var/www/html/content_generation/venv/lib/python3.12/site-packages/openai/lib/azure.pyÚ	<genexpr>z_has_header.<locals>.<genexpr>1   s   øè ø€ Ð8±¨ˆs�y‰y‹{˜fÕ$±ùs   ƒ )r,   Úany)Úheadersr/   s    `r0   Ú_has_headerr4   /   s   ø€ Ø�\‰\‹^€FÜÓ8±Ó8Ó8Ð8ó    c                ó6   — t        | d«      xs t        | d«      S )NÚAuthorizationúapi-key)r4   )r3   s    r0   Ú_has_auth_headerr9   4   s   € Ü�w Ó0ÒS´KÀÈÓ4SÐSr5   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚMutuallyExclusiveAuthErrorc                ó$   •— t         ‰| �  d«       y )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    €r0   r>   z#MutuallyExclusiveAuthError.__init__9   s   ø€ Ü‰Ñð Oõ	
r5   )ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r>   Ú__classcell__©r@   s   @r0   r;   r;   8   s   ø„ ÷
ñ 
r5   r;   c                  óf   ‡ — e Zd ZU ded<   ded<   eddœ	 	 	 	 	 d	ˆ fd„«       Zed
ˆ fd„«       Zˆ xZS )ÚBaseAzureClientzhttpx.URL | NoneÚ_azure_endpointú
str | NoneÚ_azure_deploymentr   ©Úretries_takenc               ó  •— |j                   t        v rit        |j                  «      rT|j                  j	                  d«      }|�7dt        | j                  j                  «      vrd|› |j                   › �|_         t        ‰| �%  ||¬«      S )NÚmodelz/deploymentsz/deployments/rM   )
ÚurlÚ_deployments_endpointsr   Ú	json_dataÚgetÚstrÚbase_urlÚpathr=   Ú_build_request)r?   ÚoptionsrN   rP   r@   s       €r0   rX   zBaseAzureClient._build_requestC   s|   ø€ ð �;‰;Ô0Ñ0´ZÀ×@QÑ@QÔ5RØ×%Ñ%×)Ñ)¨'Ó2ˆEØÐ  ^¼3¸t¿}¹}×?QÑ?QÓ;RÑ%RØ -¨e¨W°W·[±[°MÐB�”ä‰wÑ% g¸]Ð%ÓKÐKr5   c                óh  •— | j                   r—| j                  r‹|t        vrƒt        j                  |«      }|j
                  r`| j                  j                  j                  d«      dz   |j                  j                  d«      z   }| j                  j                  |¬«      S |S t        ‰| �-  |«      S )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)rL   rJ   rR   ÚhttpxÚURLÚis_relative_urlr]   ÚrstripÚlstripÚ	copy_withr=   Ú_prepare_url)r?   rQ   Ú	merge_urlÚmerge_raw_pathr@   s       €r0   rd   zBaseAzureClient._prepare_urlQ   s¡   ø€ ð ×!Ò! d×&:Ò&:¸sÔJ`Ñ?`ÜŸ	™	 #›ˆIØ×(Ò(à×(Ñ(×1Ñ1×8Ñ8¸Ó>ÀÑLÈy×OaÑOa×OhÑOhÐimÓOnÑnð ð ×+Ñ+×5Ñ5¸~Ð5ÓNÐNàÐä‰wÑ# CÓ(Ð(r5   )rY   r   rN   ÚintrA   zhttpx.Request)rQ   rU   rA   z	httpx.URL)rC   rD   rE   Ú__annotations__r   rX   rd   rF   rG   s   @r0   rI   rI   ?   s[   ø… Ø%Ó%Ø!Ó!àð
 ñ	Là$ðLð ð	Lð
 
ôLó ðLð ô)ó ô)r5   rI   c                  óì  ‡ — e Zd Zedddddddddeeddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zedddddddddeeddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zeddddddddeeddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zdddddddddddddeedddddd	œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd
„Zedddeddddddddededddddi dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„«       ZeZ	dd„Z
edd„«       Zedd„«       Zedd„«       Zdd„Zˆ xZS )ÚAzureOpenAINFT)Úazure_deploymentÚapi_versionÚapi_keyÚadmin_api_keyÚazure_ad_tokenÚazure_ad_token_providerÚorganizationÚwebhook_secretÚwebsocket_base_urlÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ_strict_response_validationÚ_enforce_credentialsc                ó   — y r+   © )r?   Úazure_endpointrk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                     r0   r>   zAzureOpenAI.__init__e   ó   € ð* r5   c                ó   — y r+   r|   )r?   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                    r0   r>   zAzureOpenAI.__init__|   ó   € ð( r5   )rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   c                ó   — y r+   r|   )r?   rV   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                    r0   r>   zAzureOpenAI.__init__’   r€   r5   )rl   r}   rk   rm   rn   Úworkload_identityro   rp   rq   Úprojectrr   rs   rV   rt   ru   rv   rw   rx   ry   rz   c               óÒ  •— |€t         j                  j                  d«      }|€t         j                  j                  d«      }|r|€|€|€t        d«      ‚|€t         j                  j                  d«      }|€t	        d«      ‚|€d|i}ni |¥d|i¥}|€\|€t         j                  j                  d«      }|€t	        d	«      ‚|�|j                  d
«      › d|› �}n"|j                  d
«      › d�}n|�t	        d«      ‚|€t        }t        ‰| �!  |||	|
||||||||||¬«       || _	        || _
        || _        |r|nd| _        |rt        j                  |«      | _        yd| _        y)aa  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`

        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.
        NÚAZURE_OPENAI_API_KEYÚAZURE_OPENAI_AD_TOKENú¯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©rm   rn   rq   rƒ   rr   rV   rt   ru   rv   rw   rx   rs   ry   rz   ©ÚosÚenvironrT   r    Ú
ValueErrorra   ÚAPI_KEY_SENTINELr=   r>   Ú_api_versionÚ_azure_ad_tokenÚ_azure_ad_token_providerrL   r^   r_   rJ   )r?   rl   r}   rk   rm   rn   r‚   ro   rp   rq   rƒ   rr   rs   rV   rt   ru   rv   rw   rx   ry   rz   r@   s                        €r0   r>   zAzureOpenAI.__init__¨   óÁ  ø€ ðZ ˆ?Ü—j‘j—n‘nÐ%;Ó<ˆGàÐ!ÜŸZ™ZŸ^™^Ð,CÓDˆNá 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ÈˆÔÙ<JœuŸy™y¨Ó8ˆÕÐPTˆÕr5   ©rm   rn   r‚   Úproviderrq   rƒ   rr   rs   rl   ro   rp   rV   rt   rx   ru   rv   Úset_default_headersrw   Úset_default_queryrz   Ú_extra_kwargsc               óÚ   •— t        |t        «      st        d«      ‚t        ‰| �  |||||||||||||||||	xs | j
                  |
xs | j                  |xs | j                  dœ|¥¬«      S )ú~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        zFConfigure `provider` on `OpenAI`, not on `AzureOpenAI.with_options()`.©rl   ro   rp   ©rm   rn   r‚   rq   rƒ   rr   rs   rV   rt   rx   ru   rv   r�   rw   rž   rz   rŸ   ©Ú
isinstancer   r    r=   Úcopyr—   r˜   r™   ©r?   rm   rn   r‚   rœ   rq   rƒ   rr   rs   rl   ro   rp   rV   rt   rx   ru   rv   r�   rw   rž   rz   rŸ   r@   s                         €r0   r¦   zAzureOpenAI.copy  sš   ø€ ô: ˜(¤HÔ-ÜÐfÓgÐgä‰w‰|ØØ'Ø/Ø%ØØ)Ø1ØØØ#Ø#Ø+Ø 3Ø'Ø/Ø!5à*Ò?¨d×.?Ñ.?Ø"0Ò"H°D×4HÑ4HØ+BÒ+cÀd×FcÑFcñð  ð	ð# ó 
ð 	
r5   c                ó¢   — | j                   �| j                   S | j                  }|�) |«       }|rt        |t        «      st	        d|› �«      ‚|S y ©NzOExpected `azure_ad_token_provider` argument to return a string but it returned )r˜   r™   r¥   rU   r•   ©r?   rœ   Útokens      r0   Ú_get_azure_ad_tokenzAzureOpenAI._get_azure_ad_tokenS  sa   € Ø×ÑÐ+Ø×'Ñ'Ð'à×0Ñ0ˆØÐÙ“JˆEÙ¤
¨5´#Ô 6Ü ØeÐfkÐelÐmóð ð ˆLàr5   c                óš   — | j                   �dd| j                   › �iS | j                  r!| j                  t        k7  rd| j                  iS i S ©Nr7   úBearer r8   ©r˜   rm   r–   ©r?   Úsecuritys     r0   Ú_auth_headerszAzureOpenAI._auth_headersb  óN   € à×ÑÐ+Ø# w¨t×/CÑ/CÐ.DÐ%EÐFÐFà�<Š<˜DŸL™LÔ,<Ò<Ø˜tŸ|™|Ð,Ð,àˆ	r5   c                óF   — t        |«      st        |«      ry t        d«      ‚©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"©r9   Ú	TypeError©r?   r3   Úcustom_headerss      r0   Ú_validate_headerszAzureOpenAI._validate_headersl  ó(   € ä˜GÔ$Ô(8¸Ô(HØäð có
ð 	
r5   c                ó”  — t        |j                  «      ri |j                  ¥ni }t        |«      }||_        | j                  «       }|�t	        |d«      sd|› �|d<   |S | j
                  r0| j
                  t        k7  rt	        |d«      s| j
                  |d<   |S t        |«      st        | j                  «      r	 |S t        d«      ‚©Nr7   r¯   r8   zUnable to handle auth©
r   r3   r   r¬   r4   rm   r–   r9   rv   r•   ©r?   rY   r3   ro   s       r0   Ú_prepare_optionszAzureOpenAI._prepare_optionsu  sË   € ä@HÈÏÉÔ@YÐ)<¨G¯O©OÑ)<Ð_aˆä˜WÓ%ˆØ!ˆŒà×1Ñ1Ó3ˆØÐ%Ü˜w¨Ô8Ø-4°^Ð4DÐ+E�˜Ñ(ð ˆð �\Š\˜dŸl™lÔ.>Ò>Ü˜w¨	Ô2Ø%)§\¡\�˜	Ñ"ð ˆô ˜gÔ&Ô*:¸4×;OÑ;OÔ*PØð
 ˆô Ð4Ó5Ð5r5   c                óü  — i }i |¥| j                   | j                  xs |dœ¥}| j                  r| j                  dk7  rd| j                  i}n| j                  «       }|rdd|› �i}| j                  �Pt        j                  | j                  «      }|j                  j                  d«      dz   }|j                  |¬«      }n#| j                  d	«      }|j                  d
¬«      }|j                  i |¥¬«      }	|	|fS ©N)rŠ   Ú
deploymentz<missing API key>r8   r7   r¯   r[   s	   /realtimer\   z	/realtimeÚwss)Úscheme)Úparams©r—   rL   rm   r¬   rs   r^   r_   r]   ra   rc   rd   ©
r?   rP   Úextra_queryÚauth_headersÚqueryr«   rV   rf   Úrealtime_urlrQ   s
             r0   Ú_configure_realtimezAzureOpenAI._configure_realtime‹  s
  € Øˆð
Øð
à×,Ñ,Ø×0Ñ0Ò9°Eò
ˆð
 �<Š<˜DŸL™LÐ,?Ò?Ø% t§|¡|Ð4‰Là×,Ñ,Ó.ˆEÙØ /°7¸5¸'Ð1BÐC�à×"Ñ"Ð.Ü—y‘y ×!8Ñ!8Ó9ˆHØ%×.Ñ.×5Ñ5°dÓ;¸lÑJˆNØ#×-Ñ-°~Ð-ÓF‰Là×(Ñ(¨Ó5ˆHØ#×-Ñ-°UÐ-Ó;ˆLà×$Ñ$¨I¨u¨IÐ$Ó6ˆØ�LÐ Ð r5   )$r}   rU   rk   rK   rl   rK   rm   ústr | Callable[[], str] | Nonern   rK   ro   rK   rp   úAzureADTokenProvider | Nonerq   rK   rr   rK   rs   ústr | httpx.URL | Nonert   ú!float | Timeout | None | NotGivenru   rg   rv   úMapping[str, str] | Nonerw   úMapping[str, object] | Nonerx   úhttpx.Client | Nonery   Úboolrz   rÖ   rA   rB   )"rk   rK   rl   rK   rm   rÏ   rn   rK   ro   rK   rp   rÐ   rq   rK   rr   rK   rs   rÑ   rt   rÒ   ru   rg   rv   rÓ   rw   rÔ   rx   rÕ   ry   rÖ   rz   rÖ   rA   rB   )"rV   rU   rl   rK   rm   rÏ   rn   rK   ro   rK   rp   rÐ   rq   rK   rr   rK   rs   rÑ   rt   rÒ   ru   rg   rv   rÓ   rw   rÔ   rx   rÕ   ry   rÖ   rz   rÖ   rA   rB   )*rl   rK   r}   rK   rk   rK   rm   rÏ   rn   rK   r‚   úWorkloadIdentity | Nonero   rK   rp   rÐ   rq   rK   rƒ   rK   rr   rK   rs   rÑ   rV   rK   rt   rÒ   ru   rg   rv   rÓ   rw   rÔ   rx   rÕ   ry   rÖ   rz   rÖ   rA   rB   ),rm   rÏ   rn   rK   r‚   r×   rœ   ú_Provider | None | NotGivenrq   rK   rƒ   rK   rr   rK   rs   rÑ   rl   rK   ro   rK   rp   rÐ   rV   rÑ   rt   rÒ   rx   rÕ   ru   úint | NotGivenrv   rÓ   r�   rÓ   rw   rÔ   rž   rÔ   rz   úbool | NonerŸ   úMapping[str, Any]rA   r   ©rA   rK   ©r²   r   rA   zdict[str, str]©r3   r   rº   r   rA   rB   ©rY   r   rA   r   ©rP   rU   rÊ   r   rA   z tuple[httpx.URL, dict[str, str]]©rC   rD   rE   r   r   r!   r>   r   r¦   Úwith_optionsr¬   r³   r»   rÁ   rÎ   rF   rG   s   @r0   rj   rj   d   s™  ø„ Øð
 (,Ø"&Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø59Ø5>Ø.Ø48Ø59Ø+/Ø,1Ø%)ñ'ð ðð %ð	ð
  ðð 0ðð "ðð #ðð "=ðð !ðð #ðð 3ðð 3ðð ðð 2ðð  3ð!ð" )ð#ð$ &*ð%ð& #ð'ð( 
ò)ó ðð, ð (,Ø"&Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø59Ø5>Ø.Ø48Ø59Ø+/Ø,1Ø%)ñ%ð %ðð  ð	ð
 0ðð "ðð #ðð "=ðð !ðð #ðð 3ðð 3ðð ðð 2ðð 3ðð  )ð!ð" &*ð#ð$ #ð%ð& 
ò'ó ðð* ð
 #'Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø59Ø5>Ø.Ø48Ø59Ø+/Ø,1Ø%)ñ%ð ðð  ð	ð
 0ðð "ðð #ðð "=ðð !ðð #ðð 3ðð 3ðð ðð 2ðð 3ðð  )ð!ð" &*ð#ð$ #ð%ð& 
ò'ó ðð0 #'Ø%)Ø'+Ø26Ø$(à59Ø%)Ø?CØ#'Ø"Ø%)Ø59Ø#Ø5>Ø.Ø48Ø59Ø+/Ø,1Ø%)ñ/nUð  ðnUð #ð	nUð
 %ðnUð 0ðnUð "ðnUð 3ðnUð #ðnUð "=ðnUð !ðnUð ðnUð #ðnUð 3ðnUð  ð!nUð" 3ð#nUð$ ð%nUð& 2ð'nUð( 3ð)nUð* )ð+nUð, &*ð-nUð. #ð/nUð0 
õ1nUð` ð 37Ø$(Ø59Ø09Ø#'Ø"Ø%)Ø59Ø"&Ø%)Ø?CØ+/Ø5>Ø+/Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ/6
ð 0ð6
ð "ð	6
ð
 3ð6
ð .ð6
ð !ð6
ð ð6
ð #ð6
ð 3ð6
ð  ð6
ð #ð6
ð "=ð6
ð )ð6
ð 3ð6
ð  )ð!6
ð" $ð#6
ð$ 2ð%6
ð& 6ð'6
ð( 3ð)6
ð* 7ð+6
ð, *ð-6
ð. )ð/6
ð0 
ô16
ó ð6
ðp €Lóð òó ðð ò
ó ð
ð òó ð÷*!r5   rj   c                  óþ  ‡ — e Zd Zeddddddddddeeddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zeddddddddddeeddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zedddddddddeeddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zdddddddddddddeedddddd	œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd
„Zedddeddddddddededddddi dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„«       ZeZ	dd„Z
edd„«       Zedd„«       Zedd„«       Zdd„Zˆ xZS )ÚAsyncAzureOpenAINFT)rk   rl   rm   rn   ro   rp   rq   rƒ   rr   rs   rt   ru   rv   rw   rx   ry   rz   c                ó   — y r+   r|   )r?   r}   rk   rl   rm   rn   ro   rp   rq   rƒ   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                      r0   r>   zAsyncAzureOpenAI.__init__¦  s   € ð, r5   c                ó   — y r+   r|   )r?   rk   rl   rm   rn   ro   rp   rq   rƒ   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                     r0   r>   zAsyncAzureOpenAI.__init__¾  r~   r5   )rl   rm   rn   ro   rp   rq   rƒ   rr   rs   rt   ru   rv   rw   rx   ry   rz   c                ó   — y r+   r|   )r?   rV   rl   rm   rn   ro   rp   rq   rƒ   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                     r0   r>   zAsyncAzureOpenAI.__init__Õ  r~   r5   )r}   rk   rl   rm   rn   r‚   ro   rp   rq   rƒ   rr   rV   rs   rt   ru   rv   rw   rx   ry   rz   c               óÒ  •— |€t         j                  j                  d«      }|€t         j                  j                  d«      }|r|€|€|€t        d«      ‚|€t         j                  j                  d«      }|€t	        d«      ‚|€d|i}ni |¥d|i¥}|€\|€t         j                  j                  d«      }|€t	        d	«      ‚|�|j                  d
«      › d|› �}n"|j                  d
«      › d�}n|�t	        d«      ‚|€t        }t        ‰| �!  |||	|
||||||||||¬«       || _	        || _
        || _        |r|nd| _        |rt        j                  |«      | _        yd| _        y)ab  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`

        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.
        Nr…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   )r?   r}   rk   rl   rm   rn   r‚   ro   rp   rq   rƒ   rr   rV   rs   rt   ru   rv   rw   rx   ry   rz   r@   s                        €r0   r>   zAsyncAzureOpenAI.__init__ì  rš   r5   r›   c               óÚ   •— t        |t        «      st        d«      ‚t        ‰| �  |||||||||||||||||	xs | j
                  |
xs | j                  |xs | j                  dœ|¥¬«      S )r¡   zPConfigure `provider` on `AsyncOpenAI`, not on `AsyncAzureOpenAI.with_options()`.r¢   r£   r¤   r§   s                         €r0   r¦   zAsyncAzureOpenAI.copy\  sš   ø€ ô: ˜(¤HÔ-ÜÐpÓqÐqä‰w‰|ØØ'Ø/Ø%ØØ)Ø1ØØØ#Ø#Ø+Ø 3Ø'Ø/Ø!5à*Ò?¨d×.?Ñ.?Ø"0Ò"H°D×4HÑ4HØ+BÒ+cÀd×FcÑFcñð  ð	ð# ó 
ð 	
r5   c              ƒ  ó  K  — | j                   �| j                   S | j                  }|�_ |«       }t        j                  |«      r
|ƒ d {  –—† }|rt	        t        t        |«      t        «      st        d|› �«      ‚t        |«      S y 7 Œ>­wr©   )	r˜   r™   ÚinspectÚisawaitabler¥   r
   r   rU   r•   rª   s      r0   r¬   z$AsyncAzureOpenAI._get_azure_ad_token—  s‹   è ø€ Ø×ÑÐ+Ø×'Ñ'Ð'à×0Ñ0ˆØÐÙ“JˆEÜ×"Ñ" 5Ô)Ø#Ÿ�Ù¤
¬4´°UÓ+;¼SÔ AÜ ØeÐfkÐelÐmóð ô �u“:Ðàð $ús   ‚ABÁ
B	Á?Bc                óš   — | j                   �dd| j                   › �iS | j                  r!| j                  t        k7  rd| j                  iS i S r®   r°   r±   s     r0   r³   zAsyncAzureOpenAI._auth_headers¨  r´   r5   c                óF   — t        |«      st        |«      ry t        d«      ‚r¶   r·   r¹   s      r0   r»   z"AsyncAzureOpenAI._validate_headers²  r¼   r5   c              ƒ  ó°  K  — t        |j                  «      ri |j                  ¥ni }t        |«      }||_        | j                  «       ƒ d {  –—† }|�t	        |d«      sd|› �|d<   |S | j
                  r0| j
                  t        k7  rt	        |d«      s| j
                  |d<   |S t        |«      st        | j                  «      r	 |S t        d«      ‚7 Œ†­wr¾   r¿   rÀ   s       r0   rÁ   z!AsyncAzureOpenAI._prepare_options»  s×   è ø€ ä@HÈÏÉÔ@YÐ)<¨G¯O©OÑ)<Ð_aˆä˜WÓ%ˆØ!ˆŒà#×7Ñ7Ó9×9ˆØÐ%Ü˜w¨Ô8Ø-4°^Ð4DÐ+E�˜Ñ(ð ˆð �\Š\˜dŸl™lÔ.>Ò>Ü˜w¨	Ô2Ø%)§\¡\�˜	Ñ"ð ˆô ˜gÔ&Ô*:¸4×;OÑ;OÔ*PØð
 ˆô Ð4Ó5Ð5ð :ús   ‚ACÁCÁBCc              ƒ  ó  K  — i }i |¥| j                   | j                  xs |dœ¥}| j                  r| j                  dk7  rd| j                  i}n!| j                  «       ƒ d {  –—† }|rdd|› �i}| j                  �Pt        j                  | j                  «      }|j                  j                  d«      dz   }|j                  |¬«      }n#| j                  d	«      }|j                  d
¬«      }|j                  i |¥¬«      }	|	|fS 7 Œ¤­wrÃ   rÈ   rÉ   s
             r0   rÎ   z$AsyncAzureOpenAI._configure_realtimeÑ  s  è ø€ Øˆð
Øð
à×,Ñ,Ø×0Ñ0Ò9°Eò
ˆð
 �<Š<˜DŸL™LÐ,?Ò?Ø% t§|¡|Ð4‰Là×2Ñ2Ó4×4ˆEÙØ /°7¸5¸'Ð1BÐC�à×"Ñ"Ð.Ü—y‘y ×!8Ñ!8Ó9ˆHØ%×.Ñ.×5Ñ5°dÓ;¸lÑJˆNØ#×-Ñ-°~Ð-ÓF‰Là×(Ñ(¨Ó5ˆHØ#×-Ñ-°UÐ-Ó;ˆLà×$Ñ$¨I¨u¨IÐ$Ó6ˆØ�LÐ Ð ð 5ús   ‚A!D
Á#DÁ$B%D
)&r}   rU   rk   rK   rl   rK   rm   ú)str | Callable[[], Awaitable[str]] | Nonern   rK   ro   rK   rp   ú AsyncAzureADTokenProvider | Nonerq   rK   rƒ   rK   rr   rK   rs   rÑ   rt   rÒ   ru   rg   rv   rÓ   rw   rÔ   rx   úhttpx.AsyncClient | Nonery   rÖ   rz   rÖ   rA   rB   )$rk   rK   rl   rK   rm   rñ   rn   rK   ro   rK   rp   rò   rq   rK   rƒ   rK   rr   rK   rs   rÑ   rt   rÒ   ru   rg   rv   rÓ   rw   rÔ   rx   ró   ry   rÖ   rz   rÖ   rA   rB   )$rV   rU   rl   rK   rm   rñ   rn   rK   ro   rK   rp   rò   rq   rK   rƒ   rK   rr   rK   rs   rÑ   rt   rÒ   ru   rg   rv   rÓ   rw   rÔ   rx   ró   ry   rÖ   rz   rÖ   rA   rB   )*r}   rK   rk   rK   rl   rK   rm   rñ   rn   rK   r‚   r×   ro   rK   rp   rò   rq   rK   rƒ   rK   rr   rK   rV   rK   rs   rÑ   rt   rÒ   ru   rg   rv   rÓ   rw   rÔ   rx   ró   ry   rÖ   rz   rÖ   rA   rB   ),rm   rñ   rn   rK   r‚   r×   rœ   rØ   rq   rK   rƒ   rK   rr   rK   rs   rÑ   rl   rK   ro   rK   rp   rò   rV   rÑ   rt   rÒ   rx   ró   ru   rÙ   rv   rÓ   r�   rÓ   rw   rÔ   rž   rÔ   rz   rÚ   rŸ   rÛ   rA   r   rÜ   rÝ   rÞ   rß   rà   rá   rG   s   @r0   rä   rä   ¥  sÆ  ø„ Øð
 (,Ø"&Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø59Ø5>Ø.Ø48Ø59Ø04Ø,1Ø%)ñ)ð ðð %ð	ð
  ðð ;ðð "ðð #ðð "Bðð !ðð ðð #ðð 3ðð 3ðð ðð  2ð!ð" 3ð#ð$ .ð%ð& &*ð'ð( #ð)ð* 
ò+ó ðð. ð (,Ø"&Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø59Ø5>Ø.Ø48Ø59Ø04Ø,1Ø%)ñ'ð %ðð  ð	ð
 ;ðð "ðð #ðð "Bðð !ðð ðð #ðð 3ðð 3ðð ðð 2ðð  3ð!ð" .ð#ð$ &*ð%ð& #ð'ð( 
ò)ó ðð, ð
 #'Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø59Ø5>Ø.Ø48Ø59Ø04Ø,1Ø%)ñ'ð ðð  ð	ð
 ;ðð "ðð #ðð "Bðð !ðð ðð #ðð 3ðð 3ðð ðð 2ðð  3ð!ð" .ð#ð$ &*ð%ð& #ð'ð( 
ò)ó ðð2 &*Ø'+Ø"&Ø=AØ$(à59Ø%)ØDHØ#'Ø"Ø%)Ø#Ø59Ø5>Ø.Ø48Ø59Ø04Ø,1Ø%)ñ/nUð #ðnUð %ð	nUð
  ðnUð ;ðnUð "ðnUð 3ðnUð #ðnUð "BðnUð !ðnUð ðnUð #ðnUð ðnUð  3ð!nUð" 3ð#nUð$ ð%nUð& 2ð'nUð( 3ð)nUð* .ð+nUð, &*ð-nUð. #ð/nUð0 
õ1nUð` ð >BØ$(Ø59Ø09Ø#'Ø"Ø%)Ø59Ø"&Ø%)ØDHØ+/Ø5>Ø04Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ/6
ð ;ð6
ð "ð	6
ð
 3ð6
ð .ð6
ð !ð6
ð ð6
ð #ð6
ð 3ð6
ð  ð6
ð #ð6
ð "Bð6
ð )ð6
ð 3ð6
ð  .ð!6
ð" $ð#6
ð$ 2ð%6
ð& 6ð'6
ð( 3ð)6
ð* 7ð+6
ð, *ð-6
ð. )ð/6
ð0 
ô16
ó ð6
ðp €Lóð" òó ðð ò
ó ð
ð òó ð÷*!r5   rä   )r3   r   r/   rU   rA   rÖ   )r3   r   rA   rÖ   )@Ú
__future__r   r“   rë   Útypingr   r   r   r   r   r	   r
   r   Útyping_extensionsr   r   r^   Úauthr   Ú_typesr   r   r   r   r   r   Ú_utilsr   r   Ú_clientr   r   Ú_compatr   Ú_modelsr   r   Ú	_providerr   Ú
_streamingr   r   Ú_exceptionsr    Ú_base_clientr!   r"   ÚsetrR   rU   ÚAzureADTokenProviderÚAsyncAzureADTokenProviderÚClientÚAsyncClientr#   r%   Újoinr–   r4   r9   r;   rI   rj   rä   r|   r5   r0   Ú<module>r     s9  ðÝ "ã 	Û ß T× TÓ Tß ,ã å #ß G× Gß )ß )Ý  ß :Ý !ß ,Ý %ß :áò	óÐ ð    C Ñ(Ð Ø$ RÐ)?Ð%?Ñ@Ð Ù˜¨u°U·\±\À5×CTÑCTÐ5TÑ/UÔV€ÙÐ+°5¸À¹ÀkÐRUÑFVÐ9VÑ3WÔX€ð —7‘7Ò8Ó9Ð ó9ó
Tô
 ô 
ô")�j °Ð!?Ñ@ô ")ôJ~!�/ %§,¡,°°s±Ð";Ñ<¸fô ~!ôB
C!� u×'8Ñ'8¸+ÀcÑ:JÐ'JÑKÈ[õ C!r5   