§
    D›j:w  ã                  óÆ  — 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&m'Z' ddl(m)Z) ddl*m+Z+m,Z,  e-g d¢¦  «        Z.e	g e/f         Z0e	g df         Z1 edeej2        ej3        f         ¬¦  «        Z4 edee&e         e'e         f         ¬¦  «        Z5d 6                    g d¢¦  «        Z7d&d„Z8d'd„Z9 G d„ de)¦  «        Z: G d „ d!e,e4e5f         ¦  «        Z; G d"„ d#e;ej2        e&e         f         e¦  «        Z< G d$„ d%e;ej3        e'e         f         e¦  «        Z=dS )(é    )Ú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)Ú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ú>Úheadersr   ÚheaderÚstrÚreturnÚboolc                ób   ‡— ‰                      ¦   «         Št          ˆfd„| D ¦   «         ¦  «        S )Nc              3  óH   •K  — | ]}|                      ¦   «         ‰k    V — Œd S ©N)Úlower)Ú.0Úkeyr)   s     €úM/home/lighthouse/health/venv/lib/python3.11/site-packages/openai/lib/azure.pyú	<genexpr>z_has_header.<locals>.<genexpr>0   s0   øè è € Ð8Ð8¨ˆs�yŠy‰{Œ{˜fÒ$Ð8Ð8Ð8Ð8Ð8Ð8ó    )r0   Úany)r(   r)   s    `r3   Ú_has_headerr7   .   s3   ø€ Ø�\Š\‰^Œ^€FÝÐ8Ð8Ð8Ð8°Ð8Ñ8Ô8Ñ8Ô8Ð8r5   c                óB   — t          | d¦  «        pt          | d¦  «        S )NÚAuthorizationúapi-key)r7   )r(   s    r3   Ú_has_auth_headerr;   3   s!   € Ý�w Ñ0Ô0ÐSµKÀÈÑ4SÔ4SÐSr5   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚMutuallyExclusiveAuthErrorr+   ÚNonec                óJ   •— t          ¦   «                              d¦  «         d S )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    €r3   rA   z#MutuallyExclusiveAuthError.__init__8   s/   ø€ Ý‰Œ×Òð Oñ	
ô 	
ð 	
ð 	
ð 	
r5   )r+   r>   )Ú__name__Ú
__module__Ú__qualname__rA   Ú__classcell__©rC   s   @r3   r=   r=   7   s=   ø€ € € € € ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r5   r=   c                  óh   ‡ — 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_takenÚoptionsr   rO   Úintr+   úhttpx.Requestc               ó  •— |j         t          v r\t          |j        ¦  «        rH|j                             d¦  «        }|�,dt          | j        j        ¦  «        vrd|› |j         › �|_         t          ¦   «          	                    ||¬¦  «        S )NÚmodelz/deploymentsz/deployments/rN   )
ÚurlÚ_deployments_endpointsr   Ú	json_dataÚgetr*   Úbase_urlÚpathr@   Ú_build_request)rB   rP   rO   rT   rC   s       €r3   r[   zBaseAzureClient._build_requestB   s‰   ø€ ð Œ;Õ0Ð0Ð0µZÀÔ@QÑ5RÔ5RÐ0ØÔ%×)Ò)¨'Ñ2Ô2ˆEØÐ  ^½3¸t¼}Ô?QÑ;RÔ;RÐ%RÐ%RØB¨eÐB°W´[ÐBÐB�”å‰wŒw×%Ò% g¸]Ð%ÑKÔKÐKr5   rU   r*   ú	httpx.URLc                ó^  •— | j         r…| j        r~|t          vrut          j        |¦  «        }|j        rX| j        j                             d¦  «        dz   |j                             d¦  «        z   }| 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   rV   ÚhttpxÚURLÚis_relative_urlr`   ÚrstripÚlstripÚ	copy_withr@   Ú_prepare_url)rB   rU   Ú	merge_urlÚmerge_raw_pathrC   s       €r3   rg   zBaseAzureClient._prepare_urlP   s°   ø€ ð Ô!ð 	 dÔ&:ð 	¸sÕJ`Ð?`Ð?`Ýœ	 #™œˆIØÔ(ð OàÔ(Ô1×8Ò8¸Ñ>Ô>ÀÑLÈyÔOa×OhÒOhÐimÑOnÔOnÑnð ð Ô+×5Ò5¸~Ð5ÑNÔNÐNàÐå‰wŒw×#Ò# CÑ(Ô(Ð(r5   )rP   r   rO   rQ   r+   rR   )rU   r*   r+   r\   )rD   rE   rF   Ú__annotations__r   r[   rg   rG   rH   s   @r3   rJ   rJ   >   s¢   ø€ € € € € € Ø%Ð%Ð%Ñ%Ø!Ð!Ð!Ñ!àð
 ð	Lð Lð Lð Lð Lð Lð Lñ „XðLð ð)ð )ð )ð )ð )ñ „Xð)ð )ð )ð )ð )r5   rJ   c                  ó¢  ‡ — e Zd ZedddddddddeeddddddœdGd#„¦   «         ZedddddddddeeddddddœdHd$„¦   «         Zeddddddddeedddddd%œdId'„¦   «         Zdddddddddddddeedddddd(œdJˆ fd,„Zedddddddddddededddddi d-œdKˆ fd5„¦   «         ZeZ	dLd6„Z
edMd:„¦   «         ZedNd>„¦   «         ZedOdA„¦   «         ZdPdF„Zˆ xZS )QÚ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_credentialsÚazure_endpointr*   rm   rL   rn   ro   ústr | Callable[[], str] | Nonerp   rq   rr   úAzureADTokenProvider | Noners   rt   ru   ústr | httpx.URL | Nonerv   ú!float | Timeout | None | NotGivenrw   rQ   rx   úMapping[str, str] | Nonery   úMapping[str, object] | Nonerz   úhttpx.Client | Noner{   r,   r|   r+   r>   c               ó   — d S r/   © )rB   r}   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   s                     r3   rA   zAzureOpenAI.__init__d   ó	   € ð* ˆsr5   c               ó   — d S r/   r†   )rB   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   s                    r3   rA   zAzureOpenAI.__init__{   ó	   € ð( ˆsr5   )rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   rY   c               ó   — d S r/   r†   )rB   rY   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   s                    r3   rA   zAzureOpenAI.__init__‘   r‰   r5   )rn   r}   rm   ro   rp   Úworkload_identityrq   rr   rs   Úprojectrt   ru   rY   rv   rw   rx   ry   rz   r{   r|   r‹   úWorkloadIdentity | NonerŒ   c               ó  •— |€t           j                             d¦  «        }|€t           j                             d¦  «        }|r|€|€|€t          d¦  «        ‚|€t           j                             d¦  «        }|€t	          d¦  «        ‚|€d|i}ni |¥d|i¥}|€h|€t           j                             d¦  «        }|€t	          d	¦  «        ‚|�|                     d
¦  «        › d|› �}n*|                     d
¦  «        › d�}n|�t	          d¦  «        ‚|€t          }t          ¦   «                              |||	|
||||||||||¬¦  «         || _	        || _
        || _        |r|nd| _        |rt          j        |¦  «        nd| _        dS )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©ro   rp   rs   rŒ   rt   rY   rv   rw   rx   ry   rz   ru   r{   r|   ©ÚosÚenvironrX   r   Ú
ValueErrorrd   ÚAPI_KEY_SENTINELr@   rA   Ú_api_versionÚ_azure_ad_tokenÚ_azure_ad_token_providerrM   ra   rb   rK   )rB   rn   r}   rm   ro   rp   r‹   rq   rr   rs   rŒ   rt   ru   rY   rv   rw   rx   ry   rz   r{   r|   rC   s                        €r3   rA   zAzureOpenAI.__init__§   ó	  ø€ ðZ ˆ?Ý”j—n’nÐ%;Ñ<Ô<ˆGàÐ!ÝœZŸ^š^Ð,CÑDÔDˆNàð 	 G O¸Ð8NÐSjÐSrÝð Bñô ð ð ÐÝœ*Ÿ.š.Ð)=Ñ>Ô>ˆKàÐÝØqñô ð ð Ð Ø*¨KÐ8ˆMˆMàI˜}ÐI¨m¸[ÐIÐIˆMàÐØÐ%Ý!#¤§¢Ð0GÑ!HÔ!H�àÐ%Ý ð Lñô ð ð  Ð+Ø,×3Ò3°CÑ8Ô8Ð`Ð`ÐN^Ð`Ð`��à,×3Ò3°CÑ8Ô8ÐAÐAÐA��àÐ)Ý Ð!UÑVÔVÐVàˆ?å&ˆGå‰Œ×ÒØØ'Ø%ØØ)ØØØ#Ø+Ø'Ø#Ø1Ø(CØ!5ð 	ñ 	
ô 	
ð 	
ð  (ˆÔØ-ˆÔØ(?ˆÔ%Ø5CÐ!MÐ!1Ð!1ÈˆÔØ<JÐT�uœy¨Ñ8Ô8Ð8ÐPTˆÔÐÐr5   ©ro   rp   r‹   rs   rŒ   rt   ru   rn   rq   rr   rY   rv   rz   rw   rx   Úset_default_headersry   Úset_default_queryr|   Ú_extra_kwargsúint | NotGivenr¦   r§   úbool | Noner¨   úMapping[str, Any]r   c               óž   •— t          ¦   «                              |||||||||||||||||p| j        |	p| j        |
p| j        dœ|¥¬¦  «        S ©z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        )rn   rq   rr   )ro   rp   r‹   rs   rŒ   rt   ru   rY   rv   rz   rw   rx   r¦   ry   r§   r|   r¨   ©r@   Úcopyr¡   r¢   r£   ©rB   ro   rp   r‹   rs   rŒ   rt   ru   rn   rq   rr   rY   rv   rz   rw   rx   r¦   ry   r§   r|   r¨   rC   s                        €r3   r¯   zAzureOpenAI.copy  ó‰   ø€ õ8 ‰wŒw�|Š|ØØ'Ø/Ø%ØØ)Ø1ØØØ#Ø#Ø+Ø 3Ø'Ø/Ø!5à*Ð?¨dÔ.?Ø"0Ð"H°DÔ4HØ+BÐ+cÀdÔFcðð ð  ð	ð# ñ 
ô 
ð 	
r5   c                óž   — | j         �| j         S | j        }|�5 |¦   «         }|rt          |t          ¦  «        st	          d|› �¦  «        ‚|S d S ©NzOExpected `azure_ad_token_provider` argument to return a string but it returned )r¢   r£   Ú
isinstancer*   rŸ   ©rB   ÚproviderÚtokens      r3   Ú_get_azure_ad_tokenzAzureOpenAI._get_azure_ad_tokenN  sp   € ØÔÐ+ØÔ'Ð'àÔ0ˆØÐØ�H‘J”JˆEØð ¥
¨5µ#Ñ 6Ô 6ð Ý ØmÐfkÐmÐmñô ð ð ˆLàˆtr5   Úsecurityr   údict[str, str]c                ól   — | j         �dd| j         › �iS | j        r| j        t          k    r	d| j        iS i S ©Nr9   úBearer r:   ©r¢   ro   r    ©rB   r¹   s     r3   Ú_auth_headerszAzureOpenAI._auth_headers]  óK   € àÔÐ+Ø#Ð%E¨tÔ/CÐ%EÐ%EÐFÐFàŒ<ð 	-˜DœLÕ,<Ò<Ð<Ø˜tœ|Ð,Ð,àˆ	r5   r(   r   Úcustom_headersc                ó`   — t          |¦  «        st          |¦  «        rd S 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©rB   r(   rÂ   s      r3   Ú_validate_headerszAzureOpenAI._validate_headersg  ó?   € å˜GÑ$Ô$ð 	Õ(8¸Ñ(HÔ(Hð 	ØˆFåð cñ
ô 
ð 	
r5   rP   r   c                ó˜  — t          |j        ¦  «        r	i |j        ¥ni }t          |¦  «        }||_        |                      ¦   «         }|�t	          |d¦  «        sd|› �|d<   ne| j        r+| j        t          k    rt	          |d¦  «        s
| j        |d<   n3t          |¦  «        st          | j        ¦  «        rnt          d¦  «        ‚|S ©Nr9   r½   r:   zUnable to handle auth©
r   r(   r   r¸   r7   ro   r    r;   rx   rŸ   ©rB   rP   r(   rq   s       r3   Ú_prepare_optionszAzureOpenAI._prepare_optionsp  sç   € å@HÈÌÑ@YÔ@YÐ)aÐ)<¨G¬OÐ)<Ð)<Ð_aˆå˜WÑ%Ô%ˆØ!ˆŒà×1Ò1Ñ3Ô3ˆØÐ%Ý˜w¨Ñ8Ô8ð FØ+E°^Ð+EÐ+E�˜Ñ(øØŒ\ð 	6˜dœlÕ.>Ò>Ð>Ý˜w¨	Ñ2Ô2ð 2Ø%)¤\�˜	Ñ"øÝ˜gÑ&Ô&ð 	6Õ*:¸4Ô;OÑ*PÔ*Pð 	6Øõ Ð4Ñ5Ô5Ð5àˆr5   rT   Úextra_queryr   ú tuple[httpx.URL, dict[str, str]]c                óØ  — i }i |¥| j         | j        p|dœ¥}| j        r| j        dk    r
d| j        i}n|                      ¦   «         }|rdd|› �i}| j        �Mt          j        | j        ¦  «        }|j                             d¦  «        dz   }| 	                    |¬¦  «        }n+|  
                    d	¦  «        }| 	                    d
¬¦  «        }| 	                    i |¥¬¦  «        }	|	|fS ©N)r”   Ú
deploymentz<missing API key>r:   r9   r½   r^   s	   /realtimer_   z	/realtimeÚwss)Úscheme)Úparams©r¡   rM   ro   r¸   ru   ra   rb   r`   rd   rf   rg   ©
rB   rT   rÏ   Úauth_headersÚqueryr·   rY   ri   Úrealtime_urlrU   s
             r3   Ú_configure_realtimezAzureOpenAI._configure_realtime†  s'  € Øˆð
Øð
àÔ,ØÔ0Ð9°Eð
ð 
ð 
ˆð
 Œ<ð 	D˜DœLÐ,?Ò?Ð?Ø% t¤|Ð4ˆLˆLà×,Ò,Ñ.Ô.ˆEØð DØ /Ð1B¸5Ð1BÐ1BÐC�àÔ"Ð.Ý”y Ô!8Ñ9Ô9ˆHØ%Ô.×5Ò5°dÑ;Ô;¸lÑJˆNØ#×-Ò-°~Ð-ÑFÔFˆLˆLà×(Ò(¨Ñ5Ô5ˆHØ#×-Ò-°UÐ-Ñ;Ô;ˆLà×$Ò$¨I¨u¨IÐ$Ñ6Ô6ˆØ�LÐ Ð r5   )$r}   r*   rm   rL   rn   rL   ro   r~   rp   rL   rq   rL   rr   r   rs   rL   rt   rL   ru   r€   rv   r�   rw   rQ   rx   r‚   ry   rƒ   rz   r„   r{   r,   r|   r,   r+   r>   )"rm   rL   rn   rL   ro   r~   rp   rL   rq   rL   rr   r   rs   rL   rt   rL   ru   r€   rv   r�   rw   rQ   rx   r‚   ry   rƒ   rz   r„   r{   r,   r|   r,   r+   r>   )"rY   r*   rn   rL   ro   r~   rp   rL   rq   rL   rr   r   rs   rL   rt   rL   ru   r€   rv   r�   rw   rQ   rx   r‚   ry   rƒ   rz   r„   r{   r,   r|   r,   r+   r>   )*rn   rL   r}   rL   rm   rL   ro   r~   rp   rL   r‹   r�   rq   rL   rr   r   rs   rL   rŒ   rL   rt   rL   ru   r€   rY   rL   rv   r�   rw   rQ   rx   r‚   ry   rƒ   rz   r„   r{   r,   r|   r,   r+   r>   )*ro   r~   rp   rL   r‹   r�   rs   rL   rŒ   rL   rt   rL   ru   r€   rn   rL   rq   rL   rr   r   rY   r€   rv   r�   rz   r„   rw   r©   rx   r‚   r¦   r‚   ry   rƒ   r§   rƒ   r|   rª   r¨   r«   r+   r   ©r+   rL   ©r¹   r   r+   rº   ©r(   r   rÂ   r   r+   r>   ©rP   r   r+   r   ©rT   r*   rÏ   r   r+   rÐ   ©rD   rE   rF   r   r   r    rA   r   r¯   Úwith_optionsr¸   rÀ   rÈ   rÎ   rÜ   rG   rH   s   @r3   rl   rl   c   s§  ø€ € € € € Øð
 (,Ø"&Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø59Ø5>Ø.Ø48Ø59Ø+/Ø,1Ø%)ð'ð ð ð ð ñ „Xðð, ð (,Ø"&Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø59Ø5>Ø.Ø48Ø59Ø+/Ø,1Ø%)ð%ð ð ð ð ñ „Xðð* ð
 #'Ø26Ø$(Ø%)Ø?CØ#'Ø%)Ø59Ø5>Ø.Ø48Ø59Ø+/Ø,1Ø%)ð%ð ð ð ð ñ „Xðð0 #'Ø%)Ø'+Ø26Ø$(à59Ø%)Ø?CØ#'Ø"Ø%)Ø59Ø#Ø5>Ø.Ø48Ø59Ø+/Ø,1Ø%)ð/nUð nUð nUð nUð nUð nUð nUð nUð` ð 37Ø$(Ø59Ø#'Ø"Ø%)Ø59Ø"&Ø%)Ø?CØ+/Ø5>Ø+/Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ð-2
ð 2
ð 2
ð 2
ð 2
ð 2
ð 2
ñ „Xð2
ðh €Lðð ð ð ð ðð ð ñ „Xðð ð
ð 
ð 
ñ „Xð
ð ðð ð ñ „Xðð*!ð !ð !ð !ð !ð !ð !ð !r5   rl   c                  ó¨  ‡ — e Zd ZeddddddddddeeddddddœdGd$„¦   «         ZeddddddddddeeddddddœdHd%„¦   «         Zedddddddddeedddddd&œdId(„¦   «         Zdddddddddddddeedddddd)œdJˆ fd,„Zedddddddddddededddddi d-œdKˆ fd5„¦   «         ZeZ	dLd6„Z
edMd:„¦   «         ZedNd>„¦   «         ZedOdA„¦   «         ZdPdF„Zˆ xZS )QÚAsyncAzureOpenAINFT)rm   rn   ro   rp   rq   rr   rs   rŒ   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r*   rm   rL   rn   ro   ú)str | Callable[[], Awaitable[str]] | Nonerp   rq   rr   ú AsyncAzureADTokenProvider | Noners   rŒ   rt   ru   r€   rv   r�   rw   rQ   rx   r‚   ry   rƒ   rz   úhttpx.AsyncClient | Noner{   r,   r|   r+   r>   c               ó   — d S r/   r†   )rB   r}   rm   rn   ro   rp   rq   rr   rs   rŒ   rt   ru   rv   rw   rx   ry   rz   r{   r|   s                      r3   rA   zAsyncAzureOpenAI.__init__¡  s	   € ð, ˆsr5   c               ó   — d S r/   r†   )rB   rm   rn   ro   rp   rq   rr   rs   rŒ   rt   ru   rv   rw   rx   ry   rz   r{   r|   s                     r3   rA   zAsyncAzureOpenAI.__init__¹  r‡   r5   )rn   ro   rp   rq   rr   rs   rŒ   rt   ru   rv   rw   rx   ry   rz   r{   r|   rY   c               ó   — d S r/   r†   )rB   rY   rn   ro   rp   rq   rr   rs   rŒ   rt   ru   rv   rw   rx   ry   rz   r{   r|   s                     r3   rA   zAsyncAzureOpenAI.__init__Ð  r‡   r5   )r}   rm   rn   ro   rp   r‹   rq   rr   rs   rŒ   rt   rY   ru   rv   rw   rx   ry   rz   r{   r|   r‹   r�   c               ó  •— |€t           j                             d¦  «        }|€t           j                             d¦  «        }|r|€|€|€t          d¦  «        ‚|€t           j                             d¦  «        }|€t	          d¦  «        ‚|€d|i}ni |¥d|i¥}|€h|€t           j                             d¦  «        }|€t	          d	¦  «        ‚|�|                     d
¦  «        › d|› �}n*|                     d
¦  «        › d�}n|�t	          d¦  «        ‚|€t          }t          ¦   «                              |||	|
||||||||||¬¦  «         || _	        || _
        || _        |r|nd| _        |rt          j        |¦  «        nd| _        dS )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œ   )rB   r}   rm   rn   ro   rp   r‹   rq   rr   rs   rŒ   rt   rY   ru   rv   rw   rx   ry   rz   r{   r|   rC   s                        €r3   rA   zAsyncAzureOpenAI.__init__ç  r¤   r5   r¥   r©   r¦   r§   rª   r¨   r«   r   c               óž   •— t          ¦   «                              |||||||||||||||||p| j        |	p| j        |
p| j        dœ|¥¬¦  «        S r­   r®   r°   s                        €r3   r¯   zAsyncAzureOpenAI.copyW  r±   r5   c              ƒ  ó  K  — | j         �| j         S | j        }|�q |¦   «         }t          j        |¦  «        r|ƒ d {V —†}|r(t	          t          t          |¦  «        t          ¦  «        st          d|› �¦  «        ‚t          |¦  «        S d S r³   )	r¢   r£   ÚinspectÚisawaitabler´   r
   r   r*   rŸ   rµ   s      r3   r¸   z$AsyncAzureOpenAI._get_azure_ad_tokenŽ  s©   è è € ØÔÐ+ØÔ'Ð'àÔ0ˆØÐØ�H‘J”JˆEÝÔ" 5Ñ)Ô)ð $Ø#˜˜˜˜˜˜�Øð ¥
­4µ°UÑ+;Ô+;½SÑ AÔ Að Ý ØmÐfkÐmÐmñô ð õ �u‘:”:Ðàˆtr5   r¹   r   rº   c                ól   — | j         �dd| j         › �iS | j        r| j        t          k    r	d| j        iS i S r¼   r¾   r¿   s     r3   rÀ   zAsyncAzureOpenAI._auth_headersŸ  rÁ   r5   r(   r   rÂ   c                ó`   — t          |¦  «        st          |¦  «        rd S t          d¦  «        ‚rÄ   rÅ   rÇ   s      r3   rÈ   z"AsyncAzureOpenAI._validate_headers©  rÉ   r5   rP   r   c              ƒ  ó¨  K  — t          |j        ¦  «        r	i |j        ¥ni }t          |¦  «        }||_        |                      ¦   «         ƒ d {V —†}|�t	          |d¦  «        sd|› �|d<   ne| j        r+| j        t          k    rt	          |d¦  «        s
| j        |d<   n3t          |¦  «        st          | j        ¦  «        rnt          d¦  «        ‚|S rË   rÌ   rÍ   s       r3   rÎ   z!AsyncAzureOpenAI._prepare_options²  sý   è è € å@HÈÌÑ@YÔ@YÐ)aÐ)<¨G¬OÐ)<Ð)<Ð_aˆå˜WÑ%Ô%ˆØ!ˆŒà#×7Ò7Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9ˆØÐ%Ý˜w¨Ñ8Ô8ð FØ+E°^Ð+EÐ+E�˜Ñ(øØŒ\ð 	6˜dœlÕ.>Ò>Ð>Ý˜w¨	Ñ2Ô2ð 2Ø%)¤\�˜	Ñ"øÝ˜gÑ&Ô&ð 	6Õ*:¸4Ô;OÑ*PÔ*Pð 	6Øõ Ð4Ñ5Ô5Ð5àˆr5   rT   rÏ   r   rÐ   c              ƒ  óè  K  — i }i |¥| j         | j        p|dœ¥}| j        r| j        dk    r
d| j        i}n#|                      ¦   «         ƒ d {V —†}|rdd|› �i}| j        �Mt          j        | j        ¦  «        }|j                             d¦  «        dz   }| 	                    |¬¦  «        }n+|  
                    d	¦  «        }| 	                    d
¬¦  «        }| 	                    i |¥¬¦  «        }	|	|fS rÒ   r×   rØ   s
             r3   rÜ   z$AsyncAzureOpenAI._configure_realtimeÈ  s=  è è € Øˆð
Øð
àÔ,ØÔ0Ð9°Eð
ð 
ð 
ˆð
 Œ<ð 	D˜DœLÐ,?Ò?Ð?Ø% t¤|Ð4ˆLˆLà×2Ò2Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4ˆEØð DØ /Ð1B¸5Ð1BÐ1BÐC�àÔ"Ð.Ý”y Ô!8Ñ9Ô9ˆHØ%Ô.×5Ò5°dÑ;Ô;¸lÑJˆNØ#×-Ò-°~Ð-ÑFÔFˆLˆLà×(Ò(¨Ñ5Ô5ˆHØ#×-Ò-°UÐ-Ñ;Ô;ˆLà×$Ò$¨I¨u¨IÐ$Ñ6Ô6ˆØ�LÐ Ð r5   )&r}   r*   rm   rL   rn   rL   ro   ræ   rp   rL   rq   rL   rr   rç   rs   rL   rŒ   rL   rt   rL   ru   r€   rv   r�   rw   rQ   rx   r‚   ry   rƒ   rz   rè   r{   r,   r|   r,   r+   r>   )$rm   rL   rn   rL   ro   ræ   rp   rL   rq   rL   rr   rç   rs   rL   rŒ   rL   rt   rL   ru   r€   rv   r�   rw   rQ   rx   r‚   ry   rƒ   rz   rè   r{   r,   r|   r,   r+   r>   )$rY   r*   rn   rL   ro   ræ   rp   rL   rq   rL   rr   rç   rs   rL   rŒ   rL   rt   rL   ru   r€   rv   r�   rw   rQ   rx   r‚   ry   rƒ   rz   rè   r{   r,   r|   r,   r+   r>   )*r}   rL   rm   rL   rn   rL   ro   ræ   rp   rL   r‹   r�   rq   rL   rr   rç   rs   rL   rŒ   rL   rt   rL   rY   rL   ru   r€   rv   r�   rw   rQ   rx   r‚   ry   rƒ   rz   rè   r{   r,   r|   r,   r+   r>   )*ro   ræ   rp   rL   r‹   r�   rs   rL   rŒ   rL   rt   rL   ru   r€   rn   rL   rq   rL   rr   rç   rY   r€   rv   r�   rz   rè   rw   r©   rx   r‚   r¦   r‚   ry   rƒ   r§   rƒ   r|   rª   r¨   r«   r+   r   rÝ   rÞ   rß   rà   rá   râ   rH   s   @r3   rå   rå      s±  ø€ € € € € Øð
 (,Ø"&Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø59Ø5>Ø.Ø48Ø59Ø04Ø,1Ø%)ð)ð ð ð ð ñ „Xðð. ð (,Ø"&Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø59Ø5>Ø.Ø48Ø59Ø04Ø,1Ø%)ð'ð ð ð ð ñ „Xðð, ð
 #'Ø=AØ$(Ø%)ØDHØ#'Ø"Ø%)Ø59Ø5>Ø.Ø48Ø59Ø04Ø,1Ø%)ð'ð ð ð ð ñ „Xðð2 &*Ø'+Ø"&Ø=AØ$(à59Ø%)ØDHØ#'Ø"Ø%)Ø#Ø59Ø5>Ø.Ø48Ø59Ø04Ø,1Ø%)ð/nUð nUð nUð nUð nUð nUð nUð nUð` ð >BØ$(Ø59Ø#'Ø"Ø%)Ø59Ø"&Ø%)ØDHØ+/Ø5>Ø04Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ð-2
ð 2
ð 2
ð 2
ð 2
ð 2
ð 2
ñ „Xð2
ðh €Lðð ð ð ð" ðð ð ñ „Xðð ð
ð 
ð 
ñ „Xð
ð ðð ð ñ „Xðð*!ð !ð !ð !ð !ð !ð !ð !r5   rå   )r(   r   r)   r*   r+   r,   )r(   r   r+   r,   )>Ú
__future__r   r�   rï   Útypingr   r   r   r   r   r	   r
   r   Útyping_extensionsr   r   ra   Úauthr   Ú_typesr   r   r   r   r   r   Ú_utilsr   r   Ú_clientr   r   Ú_compatr   Ú_modelsr   r   Ú
_streamingr   r   Ú_exceptionsr   Ú_base_clientr    r!   ÚsetrV   r*   ÚAzureADTokenProviderÚAsyncAzureADTokenProviderÚClientÚAsyncClientr"   r$   Újoinr    r7   r;   r=   rJ   rl   rå   r†   r5   r3   ú<module>r     s0  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø €€€Ø TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à €€€à #Ð #Ð #Ð #Ð #Ð #Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø  Ð  Ð  Ð  Ð  Ð  Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø %Ð %Ð %Ð %Ð %Ð %Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :à˜ð	ð 	ð 	ñô Ð ð    C Ô(Ð Ø$ RÐ)?Ð%?Ô@Ð Ø�˜¨u°U´\À5ÔCTÐ5TÔ/UÐVÑVÔV€Ø�'Ð+°5¸À¼ÀkÐRUÔFVÐ9VÔ3WÐXÑXÔX€ð —7’7Ð8Ð8Ð8Ñ9Ô9Ð ð9ð 9ð 9ð 9ð
Tð Tð Tð Tð
ð 
ð 
ð 
ð 
 ñ 
ô 
ð 
ð")ð ")ð ")ð ")ð ")�j °Ð!?Ô@ñ ")ô ")ð ")ðJz!ð z!ð z!ð z!ð z!�/ %¤,°°s´Ð";Ô<¸fñ z!ô z!ð z!ðz	!ð !ð !ð !ð !� uÔ'8¸+ÀcÔ:JÐ'JÔKÈ[ñ !ô !ð !ð !ð !r5   