
    U thf                       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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(  e)g d          Z*e	g e+f         Z,e	g df         Z- edeej.        ej/        f                   Z0 edee"e         e#e         f                   Z1d2                    g d          Z3 G d de%          Z4 G d de(e0e1f                   Z5 G d de5ej.        e"e         f         e          Z6 G d de5ej/        e#e         f         e          Z7dS )    )annotationsN)AnyUnionMappingTypeVarCallable	Awaitablecastoverload)Selfoverride   )	NOT_GIVENOmitQueryTimeoutNotGiven)is_given
is_mapping)OpenAIAsyncOpenAI)
model_copy)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>c                        e Zd Zd fdZ xZS )MutuallyExclusiveAuthErrorreturnNonec                J    t                                          d           d S )NzThe `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    d/var/www/html/mycamper/aliexpress-site/backend/venv/lib/python3.11/site-packages/openai/lib/azure.pyr+   z#MutuallyExclusiveAuthError.__init__.   s/     O	
 	
 	
 	
 	
    )r'   r(   )__name__
__module____qualname__r+   __classcell__r-   s   @r.   r&   r&   -   s=        
 
 
 
 
 
 
 
 
 
r/   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   r;   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/r:   )
url_deployments_endpointsr   	json_datagetstrbase_urlpathr*   _build_request)r,   r<   r;   r@   r-   s       r.   rH   zBaseAzureClient._build_request8   s     ;000Z@Q5R5R0%))'22E ^3t}?Q;R;R%R%RBeBW[BBww%%g]%KKKr/   rA   rE   	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 )zAdjust 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)r9   r7   rB   httpxURLis_relative_urlrM   rstriplstrip	copy_withr*   _prepare_url)r,   rA   	merge_urlmerge_raw_pathr-   s       r.   rT   zBaseAzureClient._prepare_urlF   s     ! 	d&: 	sJ`?`?`	#I( O(188>>LyOaOhOhimOnOnn  +55~5NNNww##C(((r/   )r<   r   r;   r=   r'   r>   )rA   rE   r'   rI   )r0   r1   r2   __annotations__r   rH   rT   r3   r4   s   @r.   r6   r6   4   s         %%%%!!!!
 	L L L L L L L XL ) ) ) ) ) X) ) ) ) )r/   r6   c                  Z    e Zd Zeddddddddeedddddd8d            Zeddddddddeedddddd9d             Zedddddddeeddddd!d:d#            Zdddddddddddeeddddd$d; fd&Zedddddddddededdddi d'd< fd.            ZeZ	d=d/Z
ed>d2            Zd?d7Z xZS )@AzureOpenAINF)azure_deploymentapi_version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azure_endpointrE   rZ   r8   r[   r\   r]   r^   AzureADTokenProvider | Noner_   r`   ra   str | httpx.URL | Nonerb   !float | Timeout | None | NotGivenrc   r=   rd   Mapping[str, str] | Nonere   Mapping[str, object] | Nonerf   httpx.Client | Nonerg   boolr'   r(   c                   d S N )r,   rh   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   s                   r.   r+   zAzureOpenAI.__init__Z   	    & sr/   c                   d S rq   rr   )r,   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   s                  r.   r+   zAzureOpenAI.__init__o   	    $ sr/   )r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rF   c                   d S rq   rr   )r,   rF   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   s                  r.   r+   zAzureOpenAI.__init__   ru   r/   )r[   rh   rZ   r\   r]   r^   r_   projectr`   ra   rF   rb   rc   rd   re   rf   rg   rw   c                  |t           j                            d          }|t           j                            d          }|||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_TOKENMissing 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_ENDPOINTuMust provide one of the `base_url` or `azure_endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable//openai/deployments//openai2base_url and azure_endpoint are mutually exclusiver\   r_   rw   r`   rF   rb   rc   rd   re   rf   ra   rg   osenvironrD   r   
ValueErrorrQ   API_KEY_SENTINELr*   r+   _api_version_azure_ad_token_azure_ad_token_providerr9   rN   rO   r7   )r,   r[   rh   rZ   r\   r]   r^   r_   rw   r`   ra   rF   rb   rc   rd   re   rf   rg   r-   s                     r.   r+   zAzureOpenAI.__init__      R ?jnn%;<<G!Z^^,CDDN?~5:Q:Y B   *..)=>>Kq    *K8MMI}Im[IIM%!#0G!H!H%  L    +,33C88``N^``,33C88AAA) !UVVV?&G%)#+'#1(C 	 	
 	
 	
 (-(?%5C!M!1!1<JTuy888PTr/   r\   r_   rw   r`   ra   r[   r]   r^   rF   rb   rf   rc   rd   set_default_headersre   set_default_query_extra_kwargsint | NotGivenr   r   r   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.
        )r[   r]   r^   )r\   r_   rw   r`   ra   rF   rb   rf   rc   rd   r   re   r   r   r*   copyr   r   r   r,   r\   r_   rw   r`   ra   r[   r]   r^   rF   rb   rf   rc   rd   r   re   r   r   r-   s                     r.   r   zAzureOpenAI.copy      2 ww||%)1##+ 3'/*?d.?"0"HD4H+B+cdFc   	  
 
 	
r/   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   
isinstancerE   r   r,   providertokens      r.   _get_azure_ad_tokenzAzureOpenAI._get_azure_ad_token2  sp    +''0HJJE 
5# 6 6  mfkmm   Ltr/   r<   r   c                R   t          |j                  r	i |j        ni }t          |          }||_        |                                 }||                    d          d| |d<   n=| j        t          ur |                    d          
| j        |d<   nt          d          |S NAuthorizationBearer api-keyzUnable to handle authr   headersr   r   rD   r\   r   r   r,   r<   r   r]   s       r.   _prepare_optionszAzureOpenAI._prepare_optionsA  s    @H@Y@Y)a)<GO)<)<_aW%%!1133%{{?++3+E^+E+E(\!111{{9%%-%)\	" 4555r/   r@   extra_queryr    tuple[httpx.URL, dict[str, str]]c                   i }i || j         | j        p|d}| 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   r   r   rK   s	   /realtimerL   z	/realtimewss)scheme)paramsr   r9   r\   r   ra   rN   rO   rM   rQ   rS   rT   
r,   r@   r   auth_headersqueryr   rF   rV   realtime_urlrA   s
             r.   _configure_realtimezAzureOpenAI._configure_realtimeU  s   

,09E
 
 

 <...%t|4LL,,..E D /1B51B1BC".y!899H%.55d;;lJN#--~-FFLL((55H#--U-;;L$$IuI$66L  r/   ) rh   rE   rZ   r8   r[   r8   r\   r8   r]   r8   r^   ri   r_   r8   r`   r8   ra   rj   rb   rk   rc   r=   rd   rl   re   rm   rf   rn   rg   ro   r'   r(   )rZ   r8   r[   r8   r\   r8   r]   r8   r^   ri   r_   r8   r`   r8   ra   rj   rb   rk   rc   r=   rd   rl   re   rm   rf   rn   rg   ro   r'   r(   )rF   rE   r[   r8   r\   r8   r]   r8   r^   ri   r_   r8   r`   r8   ra   rj   rb   rk   rc   r=   rd   rl   re   rm   rf   rn   rg   ro   r'   r(   )$r[   r8   rh   r8   rZ   r8   r\   r8   r]   r8   r^   ri   r_   r8   rw   r8   r`   r8   ra   rj   rF   r8   rb   rk   rc   r=   rd   rl   re   rm   rf   rn   rg   ro   r'   r(   )$r\   r8   r_   r8   rw   r8   r`   r8   ra   rj   r[   r8   r]   r8   r^   ri   rF   rj   rb   rk   rf   rn   rc   r   rd   rl   r   rl   re   rm   r   rm   r   r   r'   r   r'   r8   r<   r   r'   r   r@   rE   r   r   r'   r   r0   r1   r2   r   r   r   r+   r   r   with_optionsr   r   r   r3   r4   s   @r.   rY   rY   Y   sC       
 (,"&"%)?C#'%)595>.4859+/,1#     X(  (,"&"%)?C#'%)595>.4859+/,1!     X& 
 #'"%)?C#'%)595>.4859+/,1!     X, #'%)'+"%)?C#'"%)59#5>.4859+/,1'hU hU hU hU hU hU hU hUT  ##'"%)59"&%)?C+/5>+/&/488<599=+-',
 ,
 ,
 ,
 ,
 ,
 ,
 X,
\ L       X&! ! ! ! ! ! ! !r/   rY   c                  `    e Zd Zedddddddddeedddddd8d             Zedddddddddeedddddd9d!            Zeddddddddeeddddd"d:d$            Zdddddddddddeeddddd%d; fd&Zedddddddddededdddi d'd< fd.            ZeZ	d=d/Z
ed>d2            Zd?d7Z xZS )@AsyncAzureOpenAINF)rZ   r[   r\   r]   r^   r_   rw   r`   ra   rb   rc   rd   re   rf   rg   rh   rE   rZ   r8   r[   r\   r]   r^    AsyncAzureADTokenProvider | Noner_   rw   r`   ra   rj   rb   rk   rc   r=   rd   rl   re   rm   rf   httpx.AsyncClient | Nonerg   ro   r'   r(   c                   d S rq   rr   )r,   rh   rZ   r[   r\   r]   r^   r_   rw   r`   ra   rb   rc   rd   re   rf   rg   s                    r.   r+   zAsyncAzureOpenAI.__init__p  s	    ( sr/   c                   d S rq   rr   )r,   rZ   r[   r\   r]   r^   r_   rw   r`   ra   rb   rc   rd   re   rf   rg   s                   r.   r+   zAsyncAzureOpenAI.__init__  rs   r/   )r[   r\   r]   r^   r_   rw   r`   ra   rb   rc   rd   re   rf   rg   rF   c                   d S rq   rr   )r,   rF   r[   r\   r]   r^   r_   rw   r`   ra   rb   rc   rd   re   rf   rg   s                   r.   r+   zAsyncAzureOpenAI.__init__  rs   r/   )rh   rZ   r[   r\   r]   r^   r_   rw   r`   rF   ra   rb   rc   rd   re   rf   rg   c                  |t           j                            d          }|t           j                            d          }|||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.
        Nry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   )r,   rh   rZ   r[   r\   r]   r^   r_   rw   r`   rF   ra   rb   rc   rd   re   rf   rg   r-   s                     r.   r+   zAsyncAzureOpenAI.__init__  r   r/   r   r   r   r   r   r   r   c                   t                                          ||||||	|
|||||||p| j        |p| j        |p| j        d|          S r   r   r   s                     r.   r   zAsyncAzureOpenAI.copy  r   r/   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   rE   r   r   s      r.   r   z$AsyncAzureOpenAI._get_azure_ad_tokenK  s      +''0HJJE"5)) $# 
4U+;+;S A A  mfkmm   u::tr/   r<   r   c                b  K   t          |j                  r	i |j        ni }t          |          }||_        |                                  d {V }||                    d          d| |d<   n=| j        t          ur |                    d          
| j        |d<   nt          d          |S r   r   r   s       r.   r   z!AsyncAzureOpenAI._prepare_options\  s      @H@Y@Y)a)<GO)<)<_aW%%!#7799999999%{{?++3+E^+E+E(\!111{{9%%-%)\	" 4555r/   r@   r   r   r   c                  K   i }i || j         | j        p|d}| 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
             r.   r   z$AsyncAzureOpenAI._configure_realtimep  s3     

,09E
 
 

 <...%t|4LL2244444444E D /1B51B1BC".y!899H%.55d;;lJN#--~-FFLL((55H#--U-;;L$$IuI$66L  r/   )"rh   rE   rZ   r8   r[   r8   r\   r8   r]   r8   r^   r   r_   r8   rw   r8   r`   r8   ra   rj   rb   rk   rc   r=   rd   rl   re   rm   rf   r   rg   ro   r'   r(   ) rZ   r8   r[   r8   r\   r8   r]   r8   r^   r   r_   r8   rw   r8   r`   r8   ra   rj   rb   rk   rc   r=   rd   rl   re   rm   rf   r   rg   ro   r'   r(   ) rF   rE   r[   r8   r\   r8   r]   r8   r^   r   r_   r8   rw   r8   r`   r8   ra   rj   rb   rk   rc   r=   rd   rl   re   rm   rf   r   rg   ro   r'   r(   )$rh   r8   rZ   r8   r[   r8   r\   r8   r]   r8   r^   r   r_   r8   rw   r8   r`   r8   rF   r8   ra   rj   rb   rk   rc   r=   rd   rl   re   rm   rf   r   rg   ro   r'   r(   )$r\   r8   r_   r8   rw   r8   r`   r8   ra   rj   r[   r8   r]   r8   r^   r   rF   rj   rb   rk   rf   r   rc   r   rd   rl   r   rl   re   rm   r   rm   r   r   r'   r   r   r   r   r   r4   s   @r.   r   r   o  sL       
 (,"&"%)DH#'"%)595>.485904,1%     X*  (,"&"%)DH#'"%)595>.485904,1#     X( 
 #'"%)DH#'"%)595>.485904,1#     X. &*'+"&"%)DH#'"%)#595>.485904,1'hU hU hU hU hU hU hU hUT  ##'"%)59"&%)DH+/5>04&/488<599=+-',
 ,
 ,
 ,
 ,
 ,
 ,
 X,
\ L   "    X&! ! ! ! ! ! ! !r/   r   )8
__future__r   r   r   typingr   r   r   r   r   r	   r
   r   typing_extensionsr   r   rN   _typesr   r   r   r   r   _utilsr   r   _clientr   r   _compatr   _modelsr   
_streamingr   r   _exceptionsr   _base_clientr   r   setrB   rE   AzureADTokenProviderAsyncAzureADTokenProviderClientAsyncClientr   r!   joinr   r&   r6   rY   r   rr   r/   r.   <module>r      s   " " " " " " 				  T T T T T T T T T T T T T T T T T T T T , , , , , , , ,  > > > > > > > > > > > > > > ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )             ) ) ) ) ) ) , , , , , , , , % % % % % % : : : : : : : :	 	 	    C( $R)?%?@ uU\5CT5T/UVVV'+5kRUFV9V3WXXX 7788899 
 
 
 
 
 
 
 
") ") ") ") ")j!?@ ") ") ")JS! S! S! S! S!/%,s";<f S! S! S!lX! X! X! X! X!u'8+c:J'JK[ X! X! X! X! X!r/   