
    yg(                       U d dl m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-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z< ddl=m>Z> g dZ?ddl@mAZBmCZC ddlDmEZE ddlFmGZGmHZH ddlIT ddlJmKZKmLZL  e<              eM            ZNe?D ]3ZOeOP                    d          s	 deNeO         _Q        &# eReSf$ r Y /w xY w4d dlTZUd dlZVd dlWZXddl7m#Z#m$Z$ daYdeZd<   da[deZd<   da\deZd<   dZ]deZd<   e#a^d eZd!<   e$a_d"eZd#<   da`d$eZd%<   daad&eZd'<   dabd(eZd)<   eVjc        d*         Zd eUje        edejf        g                    d+                    ahd,eZd-<   ejf        g                    d.          aideZd/<   ejf        g                    d0          ajdeZd1<   ejf        g                    d2          akdeZd3<   dZld4eZd5<    G d6 d7e          Zm G d8 d9emeG          Zn G d: d;e(          ZodHd>ZpdHd?ZqdHd@ZrdadAeZdB<   dIdDZsdJdFZtddGlumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZ dS )K    )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ContentFilterFinishReasonError)DefaultHttpxClient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/   )azurepydantic_function_tool)VERSION)AzureOpenAIAsyncAzureOpenAI)*)AssistantEventHandlerAsyncAssistantEventHandler__openai)r   r   
str | Noneapi_keyorganizationprojectz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;   r2   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! 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 )-_ModuleClientreturnr<   c                    t           S Nr=   selfs    J/var/www/html/nourish/venv/lib/python3.11/site-packages/openai/__init__.pyr=   z_ModuleClient.api_key   	         valueNonec                
    |a d S rW   rX   rZ   r^   s     r[   r=   z_ModuleClient.api_key        r]   c                    t           S rW   r>   rY   s    r[   r>   z_ModuleClient.organization   s
     r]   c                
    |a d S rW   rd   ra   s     r[   r>   z_ModuleClient.organization   s     r]   c                    t           S rW   r?   rY   s    r[   r?   z_ModuleClient.project   r\   r]   c                
    |a d S rW   rg   ra   s     r[   r?   z_ModuleClient.project   rb   r]   
_httpx.URLc                j    t           t          j        t                     S t                      j         S rW   )r@   _httpxURLsuperrZ   	__class__s    r[   r@   z_ModuleClient.base_url   s(     :h'''wwr]   url_httpx.URL | strc                .    |t                      _        d S rW   )rm   r@   )rZ   rp   ro   s     r[   r@   z_ModuleClient.base_url   s    r]   rA   c                    t           S rW   rB   rY   s    r[   rB   z_ModuleClient.timeout   r\   r]   c                
    |a d S rW   rt   ra   s     r[   rB   z_ModuleClient.timeout   rb   r]   rC   c                    t           S rW   rD   rY   s    r[   rD   z_ModuleClient.max_retries   s
     r]   c                
    |a d S rW   rw   ra   s     r[   rD   z_ModuleClient.max_retries        r]   rE   c                    t           S rW   rF   rY   s    r[   _custom_headersz_ModuleClient._custom_headers   s
     r]   c                
    |a d S rW   r{   ra   s     r[   r|   z_ModuleClient._custom_headers   s      r]   rG   c                    t           S rW   rH   rY   s    r[   _custom_queryz_ModuleClient._custom_query   s
     r]   c                
    |a d S rW   r   ra   s     r[   r   z_ModuleClient._custom_query   s     r]   _httpx.Clientc                8    t           pt                      j        S rW   )rI   rm   _clientrn   s    r[   r   z_ModuleClient._client   s     -eggo-r]   c                
    |a d S rW   )rI   ra   s     r[   r   z_ModuleClient._client   ry   r]   )rU   r<   )r^   r<   rU   r_   )rU   ri   )rp   rq   rU   r_   )rU   rA   )r^   rA   rU   r_   )rU   rC   )r^   rC   rU   r_   )rU   rE   )r^   rE   rU   r_   )rU   rG   )r^   rG   rU   r_   )rU   r   )r^   r   rU   r_   )__name__
__module____qualname__propertyr   r=   setterr>   r?   r@   rB   rD   r|   r   r   __classcell__ro   s   @r[   rT   rT      s           X X ^   ^
    X X    
    X X ^   ^
           X X  _     _    X X ^   ^
    X X    
    X X        
    X X    
 . . . . . X X. ^   ^    r]   rT   c                      e Zd ZdS )_AzureModuleClientN)r   r   r    r]   r[   r   r      s        Cr]   r   c                        e Zd Zd fdZ xZS ) _AmbiguousModuleClientUsageErrorrU   r_   c                J    t                                          d           d S )NzAmbiguous use of module client; please set `openai.api_type` or the `OPENAI_API_TYPE` environment variable to `openai` or `azure`)rm   __init__rn   s    r[   r   z)_AmbiguousModuleClientUsageError.__init__   s/     P	
 	
 	
 	
 	
r]   rU   r_   )r   r   r   r   r   r   s   @r[   r   r      s=        
 
 
 
 
 
 
 
 
 
r]   r   rU   boolc                 D    t           j                            d          d uS )NOPENAI_API_KEY)_osenvirongetr   r]   r[   _has_openai_credentialsr     s    ;??+,,D88r]   c                 V    t           d up t          j                            d          d uS )NAZURE_OPENAI_API_KEY)rO   r   r   r   r   r]   r[   _has_azure_credentialsr     s'    %\9O)P)PX\)\\r]   c                 h    t           j                            d          d upt          d upt          d uS )NrP   )r   r   r   rQ   rR   r   r]   r[   _has_azure_ad_credentialsr     s8    /00< 	/%	/"$.r]   zOpenAI | Noner   r   c                    t           t          t          j                            d          at
          t          j                            d          at          t          j                            d          at          t                      } t                      }t                      }| r|s|rt                      t
          t          .t          j                            d          	 t                      |s|rdandat          dk    r^t          t          t          t          t
          t          t          t           t"          t$          t&          t(          t*                    a t           S t-          t          t          t.          t           t"          t$          t&          t(          t*          	  	        a t           S t           S )	NrN   rP   rL   r   r2   r;   )rM   rO   r=   rQ   rR   r>   r@   rB   rD   rF   rH   rI   )	r=   r>   r?   r@   rB   rD   rF   rH   rI   )r   rO   r   r   r   rQ   rM   rK   r   r   r   r   rR   r   r=   r>   r@   rB   rD   rF   rH   rI   rT   r?   )
has_openai	has_azurehas_azure_ads      r[   _load_clientr     s     ! [__-DEEN! [__-DEEN+//*>??K022J.00I466L 9y 9L 96888*.E.QWZWbWfWf&X XX 7888 $L $"#w('--(?)!' /+'  G N%#+'#

 

 

 Nr]   r_   c                 
    d a d S rW   )r   r   r]   r[   _reset_clientr   Y  s     GGGr]   )betachataudiofilesimagesmodelsbatchesuploads	responses
embeddingscompletionsfine_tuningmoderationsvector_stores)rU   r   )rU   r   r   )
__future__r   osr   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-   _base_clientr.   r/   _utils._logsr0   _setup_logging_legacy_responser1   __all__libr2   _azurer3   versionr4   	lib.azurer5   r6   lib._old_apilib.streamingr8   r9   locals__locals__name
startswithr   	TypeErrorAttributeErrortyping_t_tehttpxrk   r=   __annotations__r>   r?   r@   rB   rD   rF   rH   rI   Literal_ApiTypecastr   r   rK   rM   rO   rQ   rR   rT   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[   <module>r      sb   # " " " " " "     & & & & & &       P P P P P P P P P P P P P P P P " " " " " " v v v v v v v v v v v v v v v v v v v v v v       , , , , , , , , W W W W W W W W W W W W W W W W W W                                   $ F E E E E E E E 9 9 9 9 9 9 V V V V V V) ) )V S R R R R R R R ' ' ' ' ' ' W W W W W W W W           
     688  FT"" 	*2HV''>* 	 	 	D	             > > > > > > > >            $( ( ( ( ("1 1 1 1 1& & & & &/3 3 3 3 304 4 4 4 4$( ( ( ( (;()#BGHckoo>O.P.PQQ Q Q Q Q+//*>?? ? ? ? ? [__-DEE E E E E [__-DEE E E E E>B  B B B Bf f f f fF f f fR       
 
 
 
 
{ 
 
 
9 9 9 9] ] ] ]        ? ? ? ?D                                    s   0C>>DD