Ë
    ,Œ:jD  ã                  ó<  — 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 d dlmZ d dlZddl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#  e$g d¢«      Z%e	g e&f   Z'e	g df   Z( edeejR                  ejT                  f   ¬«      Z+ edeee   ee   f   ¬«      Z,dj[                  g d¢«      Z. G d„ de «      Z/ G d„ de#e+e,f   «      Z0 G d„ de0ejR                  ee   f   e«      Z1 G d„ de0ejT                  ee   f   e«      Z2y)é    )ÚannotationsN)ÚAnyÚUnionÚMappingÚTypeVarÚCallableÚ	AwaitableÚoverload)Úoverrideé   )Ú	NOT_GIVENÚOmitÚTimeoutÚNotGiven)Úis_givenÚ
is_mapping)ÚOpenAIÚAsyncOpenAI)ÚFinalRequestOptions)ÚStreamÚAsyncStream)ÚOpenAIError)ÚDEFAULT_MAX_RETRIESÚ
BaseClient)z/completionsz/chat/completionsz/embeddingsz/audio/transcriptionsz/audio/translationsz/images/generationszstr | Awaitable[str]Ú_HttpxClientT)ÚboundÚ_DefaultStreamTÚ )ú<zmissing API keyú>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    €úR/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/openai/lib/azure.pyr%   z#MutuallyExclusiveAuthError.__init__+   s   ø€ Ü‰Ñð Oõ	
ó    )ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r%   Ú__classcell__©r'   s   @r(   r"   r"   *   s   ø„ ÷
ñ 
r)   r"   c                  ó2   ‡ — e Zd Ze	 	 	 	 dˆ fd„«       Zˆ xZS )ÚBaseAzureClientc                ó  •— |j                   t        v r_t        |j                  «      rJ|j                  j	                  d«      }|�-dt        | j                  «      vrd|› |j                   › �|_         t        ‰| �!  |«      S )NÚmodelz/deploymentsz/deployments/)	ÚurlÚ_deployments_endpointsr   Ú	json_dataÚgetÚstrÚbase_urlr$   Ú_build_request)r&   Úoptionsr4   r'   s      €r(   r;   zBaseAzureClient._build_request2   sq   ø€ ð
 �;‰;Ô0Ñ0´ZÀ×@QÑ@QÔ5RØ×%Ñ%×)Ñ)¨'Ó2ˆEØÐ ¨¼3¸t¿}¹}Ó;MÑ)MØ -¨e¨W°W·[±[°MÐB�”ä‰wÑ% gÓ.Ð.r)   )r<   r   r*   zhttpx.Request)r,   r-   r.   r   r;   r/   r0   s   @r(   r2   r2   1   s'   ø„ Øð	/à$ð	/ð 
ô	/ó ô	/r)   r2   c                  óº  ‡ — e Zd Zeddddddeedddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zeddddddeedddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zedddddeedddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zddddddddeedddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd	„Zdd
„Zedˆ fd„«       Z	ˆ xZ
S )ÚAzureOpenAINF©Úazure_deploymentÚapi_versionÚapi_keyÚazure_ad_tokenÚazure_ad_token_providerÚorganizationÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ_strict_response_validationc                ó   — y ©N© ©r&   Úazure_endpointr@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   s                 r(   r%   zAzureOpenAI.__init__@   ó   € ð$ 	r)   c                ó   — y rM   rN   ©r&   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   s                r(   r%   zAzureOpenAI.__init__T   ó   € ð" 	r)   ©rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   c                ó   — y rM   rN   ©r&   r:   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   s                r(   r%   zAzureOpenAI.__init__g   rT   r)   )rA   rP   r@   rB   rC   rD   rE   r:   rF   rG   rH   rI   rJ   rK   c               ó  •— |€t         j                  j                  d«      }|€t         j                  j                  d«      }|€|€|€t        d«      ‚|€t         j                  j                  d«      }|€t	        d«      ‚|€d|i}nd|i|¥}|€>|€t         j                  j                  d«      }|€t	        d	«      ‚|�|› d
|› �}n|› d�}n|�t	        d«      ‚|€t
        }t        ‰| �  ||||	|
||||¬«	       || _        || _	        y)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`
        - `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 sets the base client URL to include `/deployments/{azure_deployment}`.
                Note: this means you won't be able to use non-deployment endpoints.
        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©	rB   rE   r:   rF   rG   rH   rI   rJ   rK   ©
ÚosÚenvironr8   r   Ú
ValueErrorÚAPI_KEY_SENTINELr$   r%   Ú_azure_ad_tokenÚ_azure_ad_token_provider)r&   rA   rP   r@   rB   rC   rD   rE   r:   rF   rG   rH   rI   rJ   rK   r'   s                  €r(   r%   zAzureOpenAI.__init__z   óh  ø€ ðJ ˆ?Ü—j‘j—n‘nÐ%;Ó<ˆGàÐ!ÜŸZ™ZŸ^™^Ð,CÓDˆNàˆ?˜~Ð5Ð:QÐ:YÜð Bóð ð ÐÜŸ*™*Ÿ.™.Ð)=Ó>ˆKàÐÜØqóð ð Ð Ø*¨KÐ8‰Mà*¨KÐI¸=ÐIˆMàÐØÐ%Ü!#§¡§¡Ð0GÓ!H�àÐ%Ü ð Lóð ð  Ð+Ø,Ð-Ð-AÐBRÐASÐT‘à,Ð-¨WÐ5‘àÐ)Ü Ð!UÓVÐVàˆ?ä&ˆGä‰ÑØØ%ØØØ#Ø+Ø'Ø#Ø(Cð 	ô 
	
ð  .ˆÔØ(?ˆÕ%r)   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 )rj   rk   Ú
isinstancer9   rh   ©r&   ÚproviderÚtokens      r(   Ú_get_azure_ad_tokenzAzureOpenAI._get_azure_ad_tokenÚ   sa   € Ø×ÑÐ+Ø×'Ñ'Ð'à×0Ñ0ˆØÐÙ“JˆEÙ¤
¨5´#Ô 6Ü ØeÐfkÐelÐmóð ð ˆLàr)   c                óN  •— t        |j                  «      ri |j                  ¥ni }||_        | j                  «       }|�|j                  d«      €Gd|› �|d<   n>| j                  t
        ur!|j                  d«      €| j                  |d<   nt        d«      ‚t        ‰| �!  |«      S ©NÚAuthorizationzBearer zapi-keyzUnable to handle auth©	r   Úheadersrs   r8   rB   ri   rh   r$   Ú_prepare_options©r&   r<   rx   rC   r'   s       €r(   ry   zAzureOpenAI._prepare_optionsé   s¤   ø€ ä@HÈÏÉÔ@YÐ)<¨G¯O©OÑ)<Ð_aˆØ!ˆŒà×1Ñ1Ó3ˆØÐ%Ø�{‰{˜?Ó+Ð3Ø-4°^Ð4DÐ+E�˜Ò(Ø�\‰\Ô!1Ñ1Ø�{‰{˜9Ó%Ð-Ø%)§\¡\�˜	Ò"ô Ð4Ó5Ð5ä‰wÑ'¨Ó0Ð0r)   )rP   r9   r@   ú
str | NonerA   r{   rB   r{   rC   r{   rD   úAzureADTokenProvider | NonerE   r{   rF   ú!float | Timeout | None | NotGivenrG   ÚintrH   úMapping[str, str] | NonerI   úMapping[str, object] | NonerJ   úhttpx.Client | NonerK   Úboolr*   r+   )r@   r{   rA   r{   rB   r{   rC   r{   rD   r|   rE   r{   rF   r}   rG   r~   rH   r   rI   r€   rJ   r�   rK   r‚   r*   r+   )r:   r9   rA   r{   rB   r{   rC   r{   rD   r|   rE   r{   rF   r}   rG   r~   rH   r   rI   r€   rJ   r�   rK   r‚   r*   r+   )rA   r{   rP   r{   r@   r{   rB   r{   rC   r{   rD   r|   rE   r{   r:   r{   rF   r}   rG   r~   rH   r   rI   r€   rJ   r�   rK   r‚   r*   r+   ©r*   r{   ©r<   r   r*   r+   ©r,   r-   r.   r
   r   r   r%   rs   r   ry   r/   r0   s   @r(   r>   r>   ?   s=  ø„ Øð
 (,Ø"&Ø"Ø%)Ø?CØ#'Ø5>Ø.Ø48Ø59Ø+/Ø,1ñð ðð %ð	ð
  ðð ðð #ðð "=ðð !ðð 3ðð ðð 2ðð 3ðð )ðð &*ðð  
ò!ó ðð& ð (,Ø"&Ø"Ø%)Ø?CØ#'Ø5>Ø.Ø48Ø59Ø+/Ø,1ñð %ðð  ð	ð
 ðð #ðð "=ðð !ðð 3ðð ðð 2ðð 3ðð )ðð &*ðð 
òó ðð$ ð
 #'Ø"Ø%)Ø?CØ#'Ø5>Ø.Ø48Ø59Ø+/Ø,1ñð ðð  ð	ð
 ðð #ðð "=ðð !ðð 3ðð ðð 2ðð 3ðð )ðð &*ðð 
òó ðð* #'Ø%)Ø'+Ø"Ø%)Ø?CØ#'Ø#Ø5>Ø.Ø48Ø59Ø+/Ø,1ñ!^@ð  ð^@ð #ð	^@ð
 %ð^@ð ð^@ð #ð^@ð "=ð^@ð !ð^@ð ð^@ð 3ð^@ð ð^@ð 2ð^@ð 3ð^@ð )ð^@ð  &*ð!^@ð" 
õ#^@ó@ð ô1ó ô1r)   r>   c                  óº  ‡ — e Zd Zeddddddeedddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zeddddddeedddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zedddddeedddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zddddddddeedddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd	„Zdd
„Zedˆ fd„«       Z	ˆ xZ
S )ÚAsyncAzureOpenAINFr?   c                ó   — y rM   rN   rO   s                 r(   r%   zAsyncAzureOpenAI.__init__ý   rQ   r)   c                ó   — y rM   rN   rS   s                r(   r%   zAsyncAzureOpenAI.__init__  rT   r)   rU   c                ó   — y rM   rN   rW   s                r(   r%   zAsyncAzureOpenAI.__init__$  rT   r)   )rP   r@   rA   rB   rC   rD   rE   r:   rF   rG   rH   rI   rJ   rK   c               ó  •— |€t         j                  j                  d«      }|€t         j                  j                  d«      }|€|€|€t        d«      ‚|€t         j                  j                  d«      }|€t	        d«      ‚|€d|i}nd|i|¥}|€>|€t         j                  j                  d«      }|€t	        d	«      ‚|�|› d
|› �}n|› d�}n|�t	        d«      ‚|€t
        }t        ‰| �  ||||	|
||||¬«	       || _        || _	        y)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`
        - `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 sets the base client URL to include `/deployments/{azure_deployment}`.
                Note: this means you won't be able to use non-deployment endpoints.
        NrY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   )r&   rP   r@   rA   rB   rC   rD   rE   r:   rF   rG   rH   rI   rJ   rK   r'   s                  €r(   r%   zAsyncAzureOpenAI.__init__7  rl   r)   c              ƒ  óì   K  — | j                   �| j                   S | j                  }|�H |«       }t        j                  |«      r
|ƒ d {  –—† }|rt	        |t
        «      st        d|› �«      ‚|S y 7 Œ'­wrn   )rj   rk   ÚinspectÚisawaitablero   r9   rh   rp   s      r(   rs   z$AsyncAzureOpenAI._get_azure_ad_token—  s   è ø€ Ø×ÑÐ+Ø×'Ñ'Ð'à×0Ñ0ˆØÐÙ“JˆEÜ×"Ñ" 5Ô)Ø#Ÿ�Ù¤
¨5´#Ô 6Ü ØeÐfkÐelÐmóð ð ˆLàð $ús   ‚AA4Á
A2Á(A4c              ƒ  ó~  •K  — t        |j                  «      ri |j                  ¥ni }||_        | j                  «       ƒ d {  –—† }|�|j                  d«      €Gd|› �|d<   n>| j                  t
        ur!|j                  d«      €| j                  |d<   nt        d«      ‚t        ‰| �!  |«      ƒ d {  –—† S 7 Œu7 Œ­wru   rw   rz   s       €r(   ry   z!AsyncAzureOpenAI._prepare_options¨  s¹   øè ø€ ä@HÈÏÉÔ@YÐ)<¨G¯O©OÑ)<Ð_aˆØ!ˆŒà#×7Ñ7Ó9×9ˆØÐ%Ø�{‰{˜?Ó+Ð3Ø-4°^Ð4DÐ+E�˜Ò(Ø�\‰\Ô!1Ñ1Ø�{‰{˜9Ó%Ð-Ø%)§\¡\�˜	Ò"ô Ð4Ó5Ð5ä‘WÑ-¨gÓ6×6Ð6ð :øð 7ús%   ƒA B=ÁB9ÁA0B=Â4B;Â5B=Â;B=)rP   r9   r@   r{   rA   r{   rB   r{   rC   r{   rD   ú AsyncAzureADTokenProvider | NonerE   r{   rF   r}   rG   r~   rH   r   rI   r€   rJ   úhttpx.AsyncClient | NonerK   r‚   r*   r+   )r@   r{   rA   r{   rB   r{   rC   r{   rD   r�   rE   r{   rF   r}   rG   r~   rH   r   rI   r€   rJ   r‘   rK   r‚   r*   r+   )r:   r9   rA   r{   rB   r{   rC   r{   rD   r�   rE   r{   rF   r}   rG   r~   rH   r   rI   r€   rJ   r‘   rK   r‚   r*   r+   )rP   r{   r@   r{   rA   r{   rB   r{   rC   r{   rD   r�   rE   r{   r:   r{   rF   r}   rG   r~   rH   r   rI   r€   rJ   r‘   rK   r‚   r*   r+   rƒ   r„   r…   r0   s   @r(   r‡   r‡   ü   sA  ø„ Øð
 (,Ø"&Ø"Ø%)ØDHØ#'Ø5>Ø.Ø48Ø59Ø04Ø,1ñð ðð %ð	ð
  ðð ðð #ðð "Bðð !ðð 3ðð ðð 2ðð 3ðð .ðð &*ðð  
ò!ó ðð& ð (,Ø"&Ø"Ø%)ØDHØ#'Ø5>Ø.Ø48Ø59Ø04Ø,1ñð %ðð  ð	ð
 ðð #ðð "Bðð !ðð 3ðð ðð 2ðð 3ðð .ðð &*ðð 
òó ðð$ ð
 #'Ø"Ø%)ØDHØ#'Ø5>Ø.Ø48Ø59Ø04Ø,1ñð ðð  ð	ð
 ðð #ðð "Bðð !ðð 3ðð ðð 2ðð 3ðð .ðð &*ðð 
òó ðð* &*Ø'+Ø"&Ø"Ø%)ØDHØ#'Ø#Ø5>Ø.Ø48Ø59Ø04Ø,1ñ!^@ð #ð^@ð %ð	^@ð
  ð^@ð ð^@ð #ð^@ð "Bð^@ð !ð^@ð ð^@ð 3ð^@ð ð^@ð 2ð^@ð 3ð^@ð .ð^@ð  &*ð!^@ð" 
õ#^@ó@ð" ô7ó ô7r)   r‡   )3Ú
__future__r   rf   r�   Útypingr   r   r   r   r   r	   r
   Útyping_extensionsr   ÚhttpxÚ_typesr   r   r   r   Ú_utilsr   r   Ú_clientr   r   Ú_modelsr   Ú
_streamingr   r   Ú_exceptionsr   Ú_base_clientr   r   Úsetr6   r9   ÚAzureADTokenProviderÚAsyncAzureADTokenProviderÚClientÚAsyncClientr   r   Újoinri   r"   r2   r>   r‡   rN   r)   r(   ú<module>r£      s$  ðÝ "ã 	Û ß N× NÑ NÝ &ã ç 7Ó 7ß )ß )Ý )ß ,Ý %ß :áòó	Ð ð    C Ñ(Ð Ø$ RÐ)?Ð%?Ñ@Ð Ù˜¨u°U·\±\À5×CTÑCTÐ5TÑ/UÔV€ÙÐ+°5¸À¹ÀkÐRUÑFVÐ9VÑ3WÔX€ð —7‘7Ò8Ó9Ð ô
 ô 
ô/�j °Ð!?Ñ@ô /ôz1�/ %§,¡,°°s±Ð";Ñ<¸fô z1ôz|7� u×'8Ñ'8¸+ÀcÑ:JÐ'JÑKÈ[õ |7r)   