
    zvh:+                       U d dl mZ d dlZd dlZd dlm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 ddlmZmZmZmZmZmZmZ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%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z= ddl>m?Z@ ddlAmBZB g dZCej                  sddlEmFZF ddlGmHZImJZJ ddlKmLZL ddlMmNZNmOZO ddlP ddlQmRZRmSZS  e@         eT       ZUeCD ]  ZVeVj                  d      r	 deUeV   _X        ! d dlZd dlZ[d dl\Z]ddl:m%Z%m&Z& da^de_d<   da`de_d<   daade_d<   dabde_d<   dZcd e_d!<   e%add"e_d#<   e&aed$e_d%<   dafd&e_d'<   dagd(e_d)<   dahd*e_d+<   e[j                  d,   Zj ej                  ejej                  j                  d-            and.e_d/<   ej                  j                  d0      aode_d1<   ej                  j                  d2      apde_d3<   ej                  j                  d4      aqde_d5<   dZrd6e_d7<    G d8 d9e      Zs G d: d;eseN      Zt G d< d=e*      ZudFd>ZvdFd?ZwdFd@ZxdadAe_dB<   dGdCZydHdDZzddEl{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZmZmZmZmZ y# eYeZf$ r Y w xY w)I    )annotationsN)override   )types)	NOT_GIVENOmitNoneTypeNotGiven	TransportProxiesTypes)file_from_path)	ClientOpenAIStreamTimeoutr   AsyncClientAsyncOpenAIAsyncStreamRequestOptions)	BaseModel)	__title____version__)APIResponseAsyncAPIResponse)DEFAULT_TIMEOUTDEFAULT_MAX_RETRIESDEFAULT_CONNECTION_LIMITS)APIErrorOpenAIErrorConflictErrorNotFoundErrorAPIStatusErrorRateLimitErrorAPITimeoutErrorBadRequestErrorAPIConnectionErrorAuthenticationErrorInternalServerErrorPermissionDeniedErrorLengthFinishReasonErrorUnprocessableEntityErrorAPIResponseValidationErrorInvalidWebhookSignatureErrorContentFilterFinishReasonError)DefaultHttpxClientDefaultAioHttpClientDefaultAsyncHttpxClient)setup_logging)HttpxBinaryResponseContent)*r   r   r   r	   r   r   r
   r   r   r   r   r"   r$   r&   r,   r%   r'   r)   r!   r    r+   r#   r(   r*   r.   r-   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   r1   r0   )	resources)azurepydantic_function_tool)VERSION)AzureOpenAIAsyncAzureOpenAI)*)AssistantEventHandlerAsyncAssistantEventHandler__openai)r   r   
str | Noneapi_keyorganizationprojectwebhook_secretzstr | _httpx.URL | Nonebase_urlfloat | Timeout | Nonetimeoutintmax_retries_t.Mapping[str, str] | Nonedefault_headers_t.Mapping[str, object] | Nonedefault_queryz_httpx.Client | Nonehttp_client)r>   r5   OPENAI_API_TYPEz_ApiType | Noneapi_typeOPENAI_API_VERSIONapi_versionAZURE_OPENAI_ENDPOINTazure_endpointAZURE_OPENAI_AD_TOKENazure_ad_tokenz"_azure.AzureADTokenProvider | Noneazure_ad_token_providerc                      e Zd Zeedd              Zej                  dd       Zeedd              Zej                  dd       Zeedd              Zej                  dd       Zeedd              Z	e	j                  dd       Z	eed fd	              Z
e
j                  d fd
       Z
eedd              Zej                  dd       Zeedd              Zej                  dd       Zeedd              Zej                  dd       Zeedd              Zej                  d d       Zeed! fd              Zej                  d"d       Z xZS )#_ModuleClientc                    t         S Nr@   selfs    G/var/www/html/luna/venv/lib/python3.12/site-packages/openai/__init__.pyr@   z_ModuleClient.api_key   	         c                    |a y rZ   r[   r]   values     r^   r@   z_ModuleClient.api_key   	     r`   c                    t         S rZ   rA   r\   s    r^   rA   z_ModuleClient.organization   s
     r`   c                    |a y rZ   rf   rb   s     r^   rA   z_ModuleClient.organization   s	     r`   c                    t         S rZ   rB   r\   s    r^   rB   z_ModuleClient.project   r_   r`   c                    |a y rZ   ri   rb   s     r^   rB   z_ModuleClient.project   rd   r`   c                    t         S rZ   rC   r\   s    r^   rC   z_ModuleClient.webhook_secret   s
     r`   c                    |a y rZ   rl   rb   s     r^   rC   z_ModuleClient.webhook_secret   s	     r`   c                V    t         t        j                  t               S t        |    S rZ   )rD   _httpxURLsuperr]   	__class__s    r^   rD   z_ModuleClient.base_url   s%     ::h''wr`   c                $    |t               _        y rZ   )rq   rD   )r]   urlrs   s     r^   rD   z_ModuleClient.base_url   s    r`   c                    t         S rZ   rF   r\   s    r^   rF   z_ModuleClient.timeout   r_   r`   c                    |a y rZ   rw   rb   s     r^   rF   z_ModuleClient.timeout   rd   r`   c                    t         S rZ   rH   r\   s    r^   rH   z_ModuleClient.max_retries   s
     r`   c                    |a y rZ   rz   rb   s     r^   rH   z_ModuleClient.max_retries   	     r`   c                    t         S rZ   rJ   r\   s    r^   _custom_headersz_ModuleClient._custom_headers   s
     r`   c                    |a y rZ   r~   rb   s     r^   r   z_ModuleClient._custom_headers   s	      r`   c                    t         S rZ   rL   r\   s    r^   _custom_queryz_ModuleClient._custom_query   s
     r`   c                    |a y rZ   r   rb   s     r^   r   z_ModuleClient._custom_query   s	     r`   c                (    t         xs
 t        |   S rZ   )rM   rq   _clientrr   s    r^   r   z_ModuleClient._client  s     -ego-r`   c                    |a y rZ   )rM   rb   s     r^   r   z_ModuleClient._client  r|   r`   )returnr?   )rc   r?   r   None)r   z
_httpx.URL)ru   z_httpx.URL | strr   r   )r   rE   )rc   rE   r   r   )r   rG   )rc   rG   r   r   )r   rI   )rc   rI   r   r   )r   rK   )rc   rK   r   r   )r   _httpx.Client)rc   r   r   r   )__name__
__module____qualname__propertyr   r@   setterrA   rB   rC   rD   rF   rH   r   r   r   __classcell__rs   s   @r^   rX   rX      s       ^^ 
     
    ^^ 
     
      __     ^^ 
     
       
     
 .  . ^^ r`   rX   c                      e Zd Zy)_AzureModuleClientN)r   r   r    r`   r^   r   r     s    r`   r   c                        e Zd Zd fdZ xZS ) _AmbiguousModuleClientUsageErrorc                $    t         |   d       y )NzAmbiguous use of module client; please set `openai.api_type` or the `OPENAI_API_TYPE` environment variable to `openai` or `azure`)rq   __init__rr   s    r^   r   z)_AmbiguousModuleClientUsageError.__init__  s     P	
r`   r   r   )r   r   r   r   r   r   s   @r^   r   r     s    
 
r`   r   c                 D    t         j                  j                  d      d uS )NOPENAI_API_KEY)_osenvirongetr   r`   r^   _has_openai_credentialsr     s    ;;??+,D88r`   c                 X    t         d uxs! t        j                  j                  d      d uS )NAZURE_OPENAI_API_KEY)rS   r   r   r   r   r`   r^   _has_azure_credentialsr     s&    %\9O)PX\)\\r`   c                 l    t         j                  j                  d      d uxs t        d uxs t        d uS )NrT   )r   r   r   rU   rV   r   r`   r^   _has_azure_ad_credentialsr      s7    /0< 	/%	/"$.r`   zOpenAI | Noner   c                    t         {t        t        j                  j	                  d      at
        t        j                  j	                  d      at        t        j                  j	                  d      at        mt               } t               }t               }| r|s|r
t               t
        t        *t        j                  j	                  d      	 
t               |s|rdandat        dk(  rMt        t        t        t        t
        t        t        t         t"        t$        t&        t(        t*              a t         S t-        t        t        t.        t0        t         t"        t$        t&        t(        t*        
      a t         S t         S )	NrR   rT   rP   r   r5   r>   )rQ   rS   r@   rU   rV   rA   rD   rF   rH   rJ   rL   rM   )
r@   rA   rB   rC   rD   rF   rH   rJ   rL   rM   )r   rS   r   r   r   rU   rQ   rO   r   r   r   r   rV   r   r@   rA   rD   rF   rH   rJ   rL   rM   rX   rB   rC   )
has_openai	has_azurehas_azure_ads      r^   _load_clientr   +  s<     ! [[__-DEN! [[__-DEN++//*>?K02J.0I46LyL688*.E.QWZWbWbWfWf&XX 788L"#w('--(?)!' /+'G N%)#+'#
 Nr`   c                     d a y rZ   )r   r   r`   r^   _reset_clientr   n  s	     Gr`   )betachataudioevalsfilesimagesmodelsbatchesuploadswebhooks	responses
containers
embeddingscompletionsfine_tuningmoderationsvector_stores)r   bool)r   r   r   )
__future__r   osr   typing_ttyping_extensionsr    r   _typesr   r   r	   r
   r   r   _utilsr   r   r   r   r   r   r   r   r   r   _modelsr   _versionr   r   	_responser   r   
_constantsr   r   r   _exceptionsr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   _base_clientr/   r0   r1   _utils._logsr2   _setup_logging_legacy_responser3   __all__TYPE_CHECKING_utils._resources_proxyr4   libr5   _azurer6   versionr7   	lib.azurer8   r9   lib._old_apilib.streamingr;   r<   locals__locals__name
startswithr   	TypeErrorAttributeError_tehttpxro   r@   __annotations__rA   rB   rC   rD   rF   rH   rJ   rL   rM   Literal_ApiTypecastr   r   rO   rQ   rS   rU   rV   rX   r   r   r   r   r   r   r   _module_clientr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r`   r^   <module>r      sI   #   &  P P " v v v  , W W W    & \ [ 9 V+Z 
? R ' W 
   8 FT"	*2HV'    > j  !
 !$(
! ("1	 1&S &/3, 304- 4$(! (;;()#BGGHckkoo>O.PQ/ Q++//*>?Z ? [[__-DE
 E [[__-DE
 E>B ; BqF qh 
{ 
9]  @F    Q >* 		s   
I44I?>I?