Ë
    sPêjJy  ã                  ó�  — 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# 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/m0Z0  e1g d¢«      Z2e	g e3f   Z4e	g df   Z5 edeejl                  ejn                  f   ¬«      Z8 edee*e   e+e   f   ¬«      Z9dju                  g d¢«      Z;d"d„Z<d#d„Z= G d„ de-«      Z> G d„ de0e8e9f   «      Z? G d„ de?ejl                  e*e   f   e«      Z@ G d „ d!e?ejn                  e+e   f   e«      ZAy)$é    )Ú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)Únormalize_httpx_url)Ú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     €úU/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/openai/lib/azure.pyú	<genexpr>z_has_header.<locals>.<genexpr>2   s   øè ø€ Ò8¨ˆs�y‰y‹{˜fÕ$Ñ8ùs   ƒ )r-   Úany)Úheadersr0   s    `r1   Ú_has_headerr5   0   s   ø€ Ø�\‰\‹^€FÜÓ8°Ô8Ó8Ð8ó    c                ó6   — t        | d«      xs t        | d«      S )NÚAuthorizationúapi-key)r5   )r4   s    r1   Ú_has_auth_headerr:   5   s   € Ü�w Ó0ÒS´KÀÈÓ4SÐSr6   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    €r1   r?   z#MutuallyExclusiveAuthError.__init__:   s   ø€ Ü‰Ñð Oõ	
r6   )ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r?   Ú__classcell__©rA   s   @r1   r<   r<   9   s   ø„ ÷
ñ 
r6   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/rN   )
ÚurlÚ_deployments_endpointsr   Ú	json_dataÚgetÚstrÚbase_urlÚpathr>   Ú_build_request)r@   ÚoptionsrO   rQ   rA   s       €r1   rY   zBaseAzureClient._build_requestD   s|   ø€ ð �;‰;Ô0Ñ0´ZÀ×@QÑ@QÔ5RØ×%Ñ%×)Ñ)¨'Ó2ˆEØÐ  ^¼3¸t¿}¹}×?QÑ?QÓ;RÑ%RØ -¨e¨W°W·[±[°MÐB�”ä‰wÑ% g¸]Ð%ÓKÐKr6   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)rM   rK   rS   ÚhttpxÚURLÚis_relative_urlr^   ÚrstripÚlstripÚ	copy_withr>   Ú_prepare_url)r@   rR   Ú	merge_urlÚmerge_raw_pathrA   s       €r1   re   zBaseAzureClient._prepare_urlR   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Ó(Ð(r6   )rZ   r   rO   ÚintrB   zhttpx.Request)rR   rV   rB   z	httpx.URL)rD   rE   rF   Ú__annotations__r   rY   re   rG   rH   s   @r1   rJ   rJ   @   s[   ø… Ø%Ó%Ø!Ó!àð
 ñ	Là$ðLð ð	Lð
 
ôLó ðLð ô)ó ô)r6   rJ   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_endpointrl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   s                     r1   r?   zAzureOpenAI.__init__f   ó   € ð* r6   c                ó   — y r,   r}   )r@   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   s                    r1   r?   zAzureOpenAI.__init__}   ó   € ð( r6   )rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   c                ó   — y r,   r}   )r@   rW   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   s                    r1   r?   zAzureOpenAI.__init__“   r�   r6   )rm   r~   rl   rn   ro   Úworkload_identityrp   rq   rr   Úprojectrs   rt   rW   ru   rv   rw   rx   ry   rz   r{   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©rn   ro   rr   r„   rs   rW   ru   rv   rw   rx   ry   rt   rz   r{   ©ÚosÚenvironrU   r!   Ú
ValueErrorrb   ÚAPI_KEY_SENTINELr>   r?   Ú_api_versionÚ_azure_ad_tokenÚ_azure_ad_token_providerrM   r_   r`   rK   )r@   rm   r~   rl   rn   ro   rƒ   rp   rq   rr   r„   rs   rt   rW   ru   rv   rw   rx   ry   rz   r{   rA   s                        €r1   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ˆÕr6   ©rn   ro   rƒ   Úproviderrr   r„   rs   rt   rm   rp   rq   rW   ru   ry   rv   rw   Úset_default_headersrx   Úset_default_queryr{   Ú_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()`.©rm   rp   rq   ©rn   ro   rƒ   rr   r„   rs   rt   rW   ru   ry   rv   rw   rž   rx   rŸ   r{   r    ©Ú
isinstancer   r!   r>   Úcopyr˜   r™   rš   ©r@   rn   ro   rƒ   r�   rr   r„   rs   rt   rm   rp   rq   rW   ru   ry   rv   rw   rž   rx   rŸ   r{   r    rA   s                         €r1   r§   zAzureOpenAI.copy  sš   ø€ ô: ˜(¤HÔ-ÜÐfÓgÐgä‰w‰|ØØ'Ø/Ø%ØØ)Ø1ØØØ#Ø#Ø+Ø 3Ø'Ø/Ø!5à*Ò?¨d×.?Ñ.?Ø"0Ò"H°D×4HÑ4HØ+BÒ+cÀd×FcÑFcñð  ð	ð# ó 
ð 	
r6   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¦   rV   r–   ©r@   r�   Útokens      r1   Ú_get_azure_ad_tokenzAzureOpenAI._get_azure_ad_tokenT  sa   € Ø×ÑÐ+Ø×'Ñ'Ð'à×0Ñ0ˆØÐÙ“JˆEÙ¤
¨5´#Ô 6Ü ØeÐfkÐelÐmóð ð ˆLàr6   c                óš   — | j                   �dd| j                   › �iS | j                  r!| j                  t        k7  rd| j                  iS i S ©Nr8   úBearer r9   ©r™   rn   r—   ©r@   Úsecuritys     r1   Ú_auth_headerszAzureOpenAI._auth_headersc  óN   € à×ÑÐ+Ø# w¨t×/CÑ/CÐ.DÐ%EÐFÐFà�<Š<˜DŸL™LÔ,<Ò<Ø˜tŸ|™|Ð,Ð,àˆ	r6   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"©r:   Ú	TypeError©r@   r4   Úcustom_headerss      r1   Ú_validate_headerszAzureOpenAI._validate_headersm  ó(   € ä˜GÔ$Ô(8¸Ô(HØäð có
ð 	
r6   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«      ‚©Nr8   r°   r9   zUnable to handle auth©
r   r4   r   r­   r5   rn   r—   r:   rw   r–   ©r@   rZ   r4   rp   s       r1   Ú_prepare_optionszAzureOpenAI._prepare_optionsv  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Ð5r6   c                óè  — i }i |¥| j                   | j                  xs |dœ¥}| j                  r| j                  dk7  rd| j                  i}n| j                  «       }|rdd|› �i}| j                  �Ft        | j                  «      }|j                  j                  d«      dz   }|j                  |¬«      }n#| j                  d	«      }|j                  d
¬«      }|j                  i |¥¬«      }	|	|fS ©N)r‹   Ú
deploymentz<missing API key>r9   r8   r°   r\   s	   /realtimer]   z	/realtimeÚwss)Úscheme)Úparams©
r˜   rM   rn   r­   rt   r   r^   rb   rd   re   ©
r@   rQ   Úextra_queryÚauth_headersÚqueryr¬   rW   rg   Úrealtime_urlrR   s
             r1   Ú_configure_realtimez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ˆØ�LÐ Ð r6   )$r~   rV   rl   rL   rm   rL   rn   ústr | Callable[[], str] | Nonero   rL   rp   rL   rq   úAzureADTokenProvider | Nonerr   rL   rs   rL   rt   ústr | httpx.URL | Noneru   ú!float | Timeout | None | NotGivenrv   rh   rw   úMapping[str, str] | Nonerx   úMapping[str, object] | Nonery   úhttpx.Client | Nonerz   Úboolr{   r×   rB   rC   )"rl   rL   rm   rL   rn   rÐ   ro   rL   rp   rL   rq   rÑ   rr   rL   rs   rL   rt   rÒ   ru   rÓ   rv   rh   rw   rÔ   rx   rÕ   ry   rÖ   rz   r×   r{   r×   rB   rC   )"rW   rV   rm   rL   rn   rÐ   ro   rL   rp   rL   rq   rÑ   rr   rL   rs   rL   rt   rÒ   ru   rÓ   rv   rh   rw   rÔ   rx   rÕ   ry   rÖ   rz   r×   r{   r×   rB   rC   )*rm   rL   r~   rL   rl   rL   rn   rÐ   ro   rL   rƒ   úWorkloadIdentity | Nonerp   rL   rq   rÑ   rr   rL   r„   rL   rs   rL   rt   rÒ   rW   rL   ru   rÓ   rv   rh   rw   rÔ   rx   rÕ   ry   rÖ   rz   r×   r{   r×   rB   rC   ),rn   rÐ   ro   rL   rƒ   rØ   r�   ú_Provider | None | NotGivenrr   rL   r„   rL   rs   rL   rt   rÒ   rm   rL   rp   rL   rq   rÑ   rW   rÒ   ru   rÓ   ry   rÖ   rv   úint | NotGivenrw   rÔ   rž   rÔ   rx   rÕ   rŸ   rÕ   r{   úbool | Noner    úMapping[str, Any]rB   r   ©rB   rL   ©r³   r   rB   zdict[str, str]©r4   r   r»   r   rB   rC   ©rZ   r   rB   r   ©rQ   rV   rË   r   rB   z tuple[httpx.URL, dict[str, str]]©rD   rE   rF   r   r   r"   r?   r   r§   Úwith_optionsr­   r´   r¼   rÂ   rÏ   rG   rH   s   @r1   rk   rk   e   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óð òó ðð ò
ó ð
ð òó ð÷*!r6   rk   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)rl   rm   rn   ro   rp   rq   rr   r„   rs   rt   ru   rv   rw   rx   ry   rz   r{   c                ó   — y r,   r}   )r@   r~   rl   rm   rn   ro   rp   rq   rr   r„   rs   rt   ru   rv   rw   rx   ry   rz   r{   s                      r1   r?   zAsyncAzureOpenAI.__init__§  s   € ð, r6   c                ó   — y r,   r}   )r@   rl   rm   rn   ro   rp   rq   rr   r„   rs   rt   ru   rv   rw   rx   ry   rz   r{   s                     r1   r?   zAsyncAzureOpenAI.__init__¿  r   r6   )rm   rn   ro   rp   rq   rr   r„   rs   rt   ru   rv   rw   rx   ry   rz   r{   c                ó   — y r,   r}   )r@   rW   rm   rn   ro   rp   rq   rr   r„   rs   rt   ru   rv   rw   rx   ry   rz   r{   s                     r1   r?   zAsyncAzureOpenAI.__init__Ö  r   r6   )r~   rl   rm   rn   ro   rƒ   rp   rq   rr   r„   rs   rW   rt   ru   rv   rw   rx   ry   rz   r{   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~   rl   rm   rn   ro   rƒ   rp   rq   rr   r„   rs   rW   rt   ru   rv   rw   rx   ry   rz   r{   rA   s                        €r1   r?   zAsyncAzureOpenAI.__init__í  r›   r6   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                         €r1   r§   zAsyncAzureOpenAI.copy]  sš   ø€ ô: ˜(¤HÔ-ÜÐpÓqÐqä‰w‰|ØØ'Ø/Ø%ØØ)Ø1ØØØ#Ø#Ø+Ø 3Ø'Ø/Ø!5à*Ò?¨d×.?Ñ.?Ø"0Ò"H°D×4HÑ4HØ+BÒ+cÀd×FcÑFcñð  ð	ð# ó 
ð 	
r6   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   rV   r–   r«   s      r1   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     r1   r´   zAsyncAzureOpenAI._auth_headers©  rµ   r6   c                óF   — t        |«      st        |«      ry t        d«      ‚r·   r¸   rº   s      r1   r¼   z"AsyncAzureOpenAI._validate_headers³  r½   r6   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       r1   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                  �Ft        | j                  «      }|j                  j                  d«      dz   }|j                  |¬«      }n#| j                  d	«      }|j                  d
¬«      }|j                  i |¥¬«      }	|	|fS 7 Œš­wrÄ   rÉ   rÊ   s
             r1   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�à×"Ñ"Ð.Ü*¨4×+BÑ+BÓCˆHØ%×.Ñ.×5Ñ5°dÓ;¸lÑJˆNØ#×-Ñ-°~Ð-ÓF‰Là×(Ñ(¨Ó5ˆHØ#×-Ñ-°UÐ-Ó;ˆLà×$Ñ$¨I¨u¨IÐ$Ó6ˆØ�LÐ Ð ð 5ús   ‚A!D Á#C>Á$BD )&r~   rV   rl   rL   rm   rL   rn   ú)str | Callable[[], Awaitable[str]] | Nonero   rL   rp   rL   rq   ú AsyncAzureADTokenProvider | Nonerr   rL   r„   rL   rs   rL   rt   rÒ   ru   rÓ   rv   rh   rw   rÔ   rx   rÕ   ry   úhttpx.AsyncClient | Nonerz   r×   r{   r×   rB   rC   )$rl   rL   rm   rL   rn   rò   ro   rL   rp   rL   rq   ró   rr   rL   r„   rL   rs   rL   rt   rÒ   ru   rÓ   rv   rh   rw   rÔ   rx   rÕ   ry   rô   rz   r×   r{   r×   rB   rC   )$rW   rV   rm   rL   rn   rò   ro   rL   rp   rL   rq   ró   rr   rL   r„   rL   rs   rL   rt   rÒ   ru   rÓ   rv   rh   rw   rÔ   rx   rÕ   ry   rô   rz   r×   r{   r×   rB   rC   )*r~   rL   rl   rL   rm   rL   rn   rò   ro   rL   rƒ   rØ   rp   rL   rq   ró   rr   rL   r„   rL   rs   rL   rW   rL   rt   rÒ   ru   rÓ   rv   rh   rw   rÔ   rx   rÕ   ry   rô   rz   r×   r{   r×   rB   rC   ),rn   rò   ro   rL   rƒ   rØ   r�   rÙ   rr   rL   r„   rL   rs   rL   rt   rÒ   rm   rL   rp   rL   rq   ró   rW   rÒ   ru   rÓ   ry   rô   rv   rÚ   rw   rÔ   rž   rÔ   rx   rÕ   rŸ   rÕ   r{   rÛ   r    rÜ   rB   r   rÝ   rÞ   rß   rà   rá   râ   rH   s   @r1   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óð" òó ðð ò
ó ð
ð òó ð÷*!r6   rå   )r4   r   r0   rV   rB   r×   )r4   r   rB   r×   )BÚ
__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   Ú_httpx2r   Ú_modelsr   r   Ú	_providerr   Ú
_streamingr   r    Ú_exceptionsr!   Ú_base_clientr"   r#   ÚsetrS   rV   ÚAzureADTokenProviderÚAsyncAzureADTokenProviderÚClientÚAsyncClientr$   r&   Újoinr—   r5   r:   r<   rJ   rk   rå   r}   r6   r1   ú<module>r	     s<  ðÝ "ã 	Û ß 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!r6   