
    +hK                    L   d dl mZ d dlZd dlZd dlmZmZmZ d dlm	Z	m
Z
 d dlZddl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 dd	lmZmZmZ dd
lmZ ddlm Z  ddlm!Z! ddlm"Z"m#Z# ddl$m%Z%m&Z&m'Z' g dZ( G d de&      Z) G d de'      Z* G d d      Z+ G d d      Z,e)Z-e*Z.y)    )annotationsN)AnyUnionMapping)Selfoverride   )	resources_exceptionsQuerystring)	NOT_GIVENOmitTimeoutNotGiven	TransportProxiesTypesRequestOptions)is_given
is_mappingget_async_library)__version__)Stream)AsyncStream)OpenAIErrorAPIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)	r   r   r   r   r
   OpenAIAsyncOpenAIClientAsyncClientc                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dddeedddd d!		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d* fd"Zeed+d#              Z	eed,d$              Z
eed- fd%              Zdddededdddi d&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d.d'ZeZd/d(Ze	 	 	 	 	 	 	 	 d0d)       Z xZS )1r    zresources.Completionscompletionszresources.Chatchatzresources.Editseditszresources.Embeddings
embeddingszresources.Filesfileszresources.Imagesimageszresources.Audioaudiozresources.Moderationsmoderationszresources.Modelsmodelszresources.FineTuningfine_tuningzresources.FineTunes
fine_tuneszresources.BetabetaOpenAIWithRawResponsewith_raw_responsestrapi_key
str | NoneorganizationNF	r4   r6   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationc       	   
        |t         j                  j                  d      }|t        d      || _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|d}t        
|   t        |||||||	       t        | _
        t        j                  |       | _        t        j                  |       | _        t        j                   |       | _        t        j$                  |       | _        t        j(                  |       | _        t        j,                  |       | _        t        j0                  |       | _        t        j4                  |       | _        t        j8                  |       | _        t        j<                  |       | _        t        j@                  |       | _!        t        jD                  |       | _#        tI        |       | _%        y)a  Construct a new synchronous openai client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        NOPENAI_API_KEYThe api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variableOPENAI_ORG_IDOPENAI_BASE_URLhttps://api.openai.com/v1versionr8   r:   r9   r=   custom_headerscustom_queryr>   )&osenvirongetr   r4   r6   super__init__r   r   _default_stream_clsr
   Completionsr%   Chatr&   Editsr'   
Embeddingsr(   Filesr)   Imagesr*   Audior+   Moderationsr,   Modelsr-   
FineTuningr.   	FineTunesr/   Betar0   r1   r2   selfr4   r6   r8   r9   r:   r;   r<   r=   r>   	__class__s             A/var/www/html/venv/lib/python3.12/site-packages/openai/_client.pyrM   zOpenAI.__init__>   s   8 ?jjnn%56G? V  ::>>/:L(zz~~&78H2H##*&(C 	 		
 $* $006NN4(	__T*
#..t4__T*
&&t,__T*
$006&&t,$//5#--d3NN4(	!6t!<    c                    t        d      S Ncomma)array_formatr   r\   s    r^   qsz	OpenAI.qs        00r_   c                (    | j                   }dd| iS NAuthorizationzBearer r4   r\   r4   s     r^   auth_headerszOpenAI.auth_headers        ,,77)!455r_   c                ~    i t         |   d| j                  | j                  n	t               d| j                  S )NfalsezX-Stainless-AsynczOpenAI-Organization)rL   r;   r6   r   _custom_headersr\   r]   s    r^   r;   zOpenAI.default_headers   sL    
g%
!(8<8I8I8U4#4#4[_[a
 ""	
 	
r_   r4   r6   r8   r9   r=   r:   r;   set_default_headersr<   set_default_query_extra_kwargsc                  ||t        d      |	|
t        d      | j                  }|i ||}n||}| j                  }|	i ||	}n|
|
}|xs | j                  } | j                  d|xs | j
                  |xs | j                  |xs t        | j                        t        |t              r| j                  n||t        |      r|n| j                  ||d|S z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        zPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)r4   r6   r8   r9   r=   r:   r;   r<    
ValueErrorrq   _custom_query_clientr]   r4   r6   r3   r8   
isinstancer   r9   r   r:   r\   r4   r6   r8   r9   r=   r:   r;   rt   r<   ru   rv   headersparamss                 r^   copyzOpenAI.copy      $ &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\t~~ 

+t||%:):):3T]]!3$.w$ADLLw#'/'<$BRBR# 

 

 
	
r_   c                p    t        | d      rt        | d      sy | j                  ry | j                          y N_has_custom_http_clientclose)hasattrr   r   rd   s    r^   __del__zOpenAI.__del__   s.    t67wtW?U''

r_   c                  t        |      r|j                  d|      n|}|j                  dk(  rt        j                  |||      S |j                  dk(  rt        j
                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  d	k(  rt        j                  |||      S |j                  d
k\  rt        j                  |||      S t        |||      S Nerrori  )responsebodyi  i  i  i  i  i  i  r   rK   status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   r\   err_msgr   r   datas        r^   _make_status_errorzOpenAI._make_status_error   I    +5T*:txx&3&..wPTUU3&227XTXYY3&44WxVZ[[3&,,WxdSS3&,,WxdSS3&77(Y]^^3&--gtTT3&227XTXYYgtDDr_   )r4   r5   r6   r5   r8   str | httpx.URL | Noner9   %Union[float, Timeout, None, NotGiven]r:   intr;   Mapping[str, str] | Noner<   Mapping[str, object] | Noner=   httpx.Client | Noner>   boolreturnNoner   r   r   zdict[str, str]r   zdict[str, str | Omit])r4   r5   r6   r5   r8   r   r9   !float | Timeout | None | NotGivenr=   r   r:   int | NotGivenr;   r   rt   r   r<   r   ru   r   rv   Mapping[str, Any]r   r   r   r   r   r3   r   objectr   zhttpx.Responser   r   __name__
__module____qualname____annotations__r   r   rM   propertyr   re   rl   r;   r   with_optionsr   r   __classcell__r]   s   @r^   r    r    +   s3   &&
$$&&%%##
,, L
 ##'+/9B.4859+/ -2)F= F= !	F=
 )F= 7F= F= 2F= 3F= )F=( &*)F=* 
+F=P 1  1 6  6 
  
 ##'+/5>+/&/488<599=+-/
 /
 !	/

 )/
 3/
 )/
 $/
 2/
 6/
 3/
 7/
 )/
 
/
f L EE 	E
 !E 
E Er_   r    c                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dddeedddd d!		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d* fd"Zeed+d#              Z	eed,d$              Z
eed- fd%              Zdddededdddi d&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d.d'ZeZd/d(Ze	 	 	 	 	 	 	 	 d0d)       Z xZS )1r!   zresources.AsyncCompletionsr%   zresources.AsyncChatr&   zresources.AsyncEditsr'   zresources.AsyncEmbeddingsr(   zresources.AsyncFilesr)   zresources.AsyncImagesr*   zresources.AsyncAudior+   zresources.AsyncModerationsr,   zresources.AsyncModelsr-   zresources.AsyncFineTuningr.   zresources.AsyncFineTunesr/   zresources.AsyncBetar0   AsyncOpenAIWithRawResponser2   r3   r4   r5   r6   NFr7   c       	   
        |t         j                  j                  d      }|t        d      || _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|d}t        
|   t        |||||||	       t        | _
        t        j                  |       | _        t        j                  |       | _        t        j                   |       | _        t        j$                  |       | _        t        j(                  |       | _        t        j,                  |       | _        t        j0                  |       | _        t        j4                  |       | _        t        j8                  |       | _        t        j<                  |       | _        t        j@                  |       | _!        t        jD                  |       | _#        tI        |       | _%        y)a  Construct a new async openai client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        Nr@   rA   rB   rC   rD   rE   )&rI   rJ   rK   r   r4   r6   rL   rM   r   r   rN   r
   AsyncCompletionsr%   	AsyncChatr&   
AsyncEditsr'   AsyncEmbeddingsr(   
AsyncFilesr)   AsyncImagesr*   
AsyncAudior+   AsyncModerationsr,   AsyncModelsr-   AsyncFineTuningr.   AsyncFineTunesr/   	AsyncBetar0   r   r2   r[   s             r^   rM   zAsyncOpenAI.__init__  s   8 ?jjnn%56G? V  ::>>/:L(zz~~&78H2H##*&(C 	 		
 $/ $55d;''-	))$/
#33D9))$/
++D1))$/
$55d;++D1$44T:#2248''-	!;D!Ar_   c                    t        d      S ra   r   rd   s    r^   re   zAsyncOpenAI.qsX  rf   r_   c                (    | j                   }dd| iS rh   rj   rk   s     r^   rl   zAsyncOpenAI.auth_headers]  rm   r_   c                    i t         |   dt                | j                  | j                  n	t	               d| j
                  S )Nzasync:rp   )rL   r;   r   r6   r   rq   rr   s    r^   r;   zAsyncOpenAI.default_headersc  sX    
g%
#)*;*=)>!?8<8I8I8U4#4#4[_[a
 ""	
 	
r_   rs   c                  ||t        d      |	|
t        d      | j                  }|i ||}n||}| j                  }|	i ||	}n|
|
}|xs | j                  } | j                  d|xs | j
                  |xs | j                  |xs t        | j                        t        |t              r| j                  n||t        |      r|n| j                  ||d|S rx   rz   r   s                 r^   r   zAsyncOpenAI.copym  r   r_   c                    t        | d      rt        | d      sy | j                  ry 	 t        j                         j	                  | j                                y # t        $ r Y y w xY wr   )r   r   asyncioget_running_loopcreate_taskr   	Exceptionrd   s    r^   r   zAsyncOpenAI.__del__  sY    t67wtW?U''	$$&224::<@ 		s   1A 	A&%A&c                  t        |      r|j                  d|      n|}|j                  dk(  rt        j                  |||      S |j                  dk(  rt        j
                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  dk(  rt        j                  |||      S |j                  d	k(  rt        j                  |||      S |j                  d
k\  rt        j                  |||      S t        |||      S r   r   r   s        r^   r   zAsyncOpenAI._make_status_error  r   r_   )r4   r5   r6   r5   r8   r   r9   r   r:   r   r;   r   r<   r   r=   httpx.AsyncClient | Noner>   r   r   r   r   r   r   )r4   r5   r6   r5   r8   r   r9   r   r=   r   r:   r   r;   r   rt   r   r<   r   ru   r   rv   r   r   r   r   r   r   r   s   @r^   r!   r!      s>   ++
))!!++!!**((
11 L
 ##'+/9B.485904 -2)FB FB !	FB
 )FB 7FB FB 2FB 3FB .FB( &*)FB* 
+FBP 1  1 6  6 
  
 ##'+/5>04&/488<599=+-/
 /
 !	/

 )/
 3/
 ./
 $/
 2/
 6/
 3/
 7/
 )/
 
/
f L EE 	E
 !E 
E Er_   r!   c                      e Zd ZddZy)r1   c                d   t        j                  |j                        | _        t        j                  |j                        | _        t        j
                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _
        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                         | _        t        j"                  |j$                        | _        t        j&                  |j(                        | _        t        j*                  |j,                        | _        t        j.                  |j0                        | _        y N)r
   CompletionsWithRawResponser%   ChatWithRawResponser&   EditsWithRawResponser'   EmbeddingsWithRawResponser(   FilesWithRawResponser)   ImagesWithRawResponser*   AudioWithRawResponser+   ModerationsWithRawResponser,   ModelsWithRawResponser-   FineTuningWithRawResponser.   FineTunesWithRawResponser/   BetaWithRawResponser0   r\   clients     r^   rM   zOpenAIWithRawResponse.__init__  s   $??@R@RS11&++>	33FLLA
#==f>O>OP33FLLA
55fmmD33FLLA
$??@R@RS55fmmD$>>v?Q?QR#<<V=N=NO11&++>	r_   N)r   r    r   r   r   r   r   rM   ry   r_   r^   r1   r1     s    ?r_   r1   c                      e Zd ZddZy)r   c                d   t        j                  |j                        | _        t        j                  |j                        | _        t        j
                  |j                        | _        t        j                  |j                        | _        t        j                  |j                        | _
        t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j                         | _        t        j"                  |j$                        | _        t        j&                  |j(                        | _        t        j*                  |j,                        | _        t        j.                  |j0                        | _        y r   )r
   AsyncCompletionsWithRawResponser%   AsyncChatWithRawResponser&   AsyncEditsWithRawResponser'   AsyncEmbeddingsWithRawResponser(   AsyncFilesWithRawResponser)   AsyncImagesWithRawResponser*   AsyncAudioWithRawResponser+   AsyncModerationsWithRawResponser,   AsyncModelsWithRawResponser-   AsyncFineTuningWithRawResponser.   AsyncFineTunesWithRawResponser/   AsyncBetaWithRawResponser0   r   s     r^   rM   z#AsyncOpenAIWithRawResponse.__init__  s   $DDVEWEWX66v{{C	88F
#BB6CTCTU88F
::6==I88F
$DDVEWEWX::6==I$CCFDVDVW#AA&BSBST66v{{C	r_   N)r   r!   r   r   r   ry   r_   r^   r   r     s    Dr_   r   )/
__future__r   rI   r   typingr   r   r   typing_extensionsr   r   httpx r
   r   _qsr   _typesr   r   r   r   r   r   r   _utilsr   r   r   _versionr   
_streamingr   r   r   r   _base_clientr   r   r   __all__r    r!   r1   r   r"   r#   ry   r_   r^   <module>r      s    # 	  & & ,  $    < ; ! ( 2 4 L L
OE] OEdRE. REj? ? D D  
r_   