
    ,:jK                    @   d dl mZ d dlZd dlZd dlmZmZ d dl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 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)UnionMapping)override   )	resources_exceptionsQuerystring)	NOT_GIVENOmitTimeoutNotGiven	TransportProxiesTypesRequestOptions)is_given
is_mapping)__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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	r1   r3   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versionr5   r7   r6   r:   custom_headerscustom_queryr;   )&osenvirongetr   r1   r3   super__init__r   r   _default_stream_clsr   Completionsr"   Chatr#   Editsr$   
Embeddingsr%   Filesr&   Imagesr'   Audior(   Moderationsr)   Modelsr*   
FineTuningr+   	FineTunesr,   Betar-   r.   r/   selfr1   r3   r5   r6   r7   r8   r9   r:   r;   	__class__s             P/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/openai/_client.pyrJ   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
   rY   s    r[   qsz	OpenAI.qs        00r\   c                (    | j                   }dd| iS NAuthorizationzBearer r1   rY   r1   s     r[   auth_headerszOpenAI.auth_headers        ,,77)!455r\   c                |    i t         |   d| j                  | j                  n	t               i| j                  S NzOpenAI-OrganizationrI   r8   r3   r   _custom_headersrY   rZ   s    r[   r8   zOpenAI.default_headers   K    
g%
!8I8I8U4#4#4[_[a
 ""
 	
r\   
r1   r3   r5   r6   r:   r7   r8   set_default_headersr9   set_default_queryc       
   
        ||t        d      |	|
t        d      | j                  }|i ||}n||}| j                  }|	i ||	}n|
|
}|xs | j                  }| j	                  |xs | j
                  |xs | j                  |xs t        | j                        t        |t              r| j                  n||t        |      r|n| j                  ||      S a  
        Create a new client instance re-using the same options given to the current client with optional overriding.

        It should be noted that this does not share the underlying httpx client class which may lead
        to performance issues.
        zPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)r1   r3   r5   r6   r:   r7   r8   r9   
ValueErrorrn   _custom_query_clientrZ   r1   r3   r0   r5   
isinstancer   r6   r   r7   rY   r1   r3   r5   r6   r:   r7   r8   rr   r9   rs   headersparamss                r[   copyzOpenAI.copy      ( &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\~~+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   ra   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   rH   status_coder	   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   rY   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\   )r1   r2   r3   r2   r5   str | httpx.URL | Noner6   %Union[float, Timeout, None, NotGiven]r7   intr8   Mapping[str, str] | Noner9   Mapping[str, object] | Noner:   httpx.Client | Noner;   boolreturnNoner   r   r   zdict[str, str]r   zdict[str, str | Omit])r1   r2   r3   r2   r5   r   r6   !float | Timeout | None | NotGivenr:   r   r7   int | NotGivenr8   r   rr   r   r9   r   rs   r   r   r   r   r   r   r0   r   objectr   zhttpx.Responser   r   __name__
__module____qualname____annotations__r   r   rJ   propertyr   rb   ri   r8   r~   with_optionsr   r   __classcell__rZ   s   @r[   r   r   +   s&   &&
$$&&%%##
,, 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=0
 0
 !	0

 )0
 30
 )0
 $0
 20
 60
 30
 70
 
0
h 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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.AsyncBetar-   AsyncOpenAIWithRawResponser/   r0   r1   r2   r3   NFr4   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=   r>   r?   r@   rA   rB   )&rF   rG   rH   r   r1   r3   rI   rJ   r   r   rK   r   AsyncCompletionsr"   	AsyncChatr#   
AsyncEditsr$   AsyncEmbeddingsr%   
AsyncFilesr&   AsyncImagesr'   
AsyncAudior(   AsyncModerationsr)   AsyncModelsr*   AsyncFineTuningr+   AsyncFineTunesr,   	AsyncBetar-   r   r/   rX   s             r[   rJ   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 r^   r
   ra   s    r[   rb   zAsyncOpenAI.qsX  rc   r\   c                (    | j                   }dd| iS re   rg   rh   s     r[   ri   zAsyncOpenAI.auth_headers]  rj   r\   c                |    i t         |   d| j                  | j                  n	t               i| j                  S rl   rm   ro   s    r[   r8   zAsyncOpenAI.default_headersc  rp   r\   rq   c       
   
        ||t        d      |	|
t        d      | j                  }|i ||}n||}| j                  }|	i ||	}n|
|
}|xs | j                  }| j	                  |xs | j
                  |xs | j                  |xs t        | j                        t        |t              r| j                  n||t        |      r|n| j                  ||      S ru   rv   r{   s                r[   r~   zAsyncOpenAI.copyl  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   	Exceptionra   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\   )r1   r2   r3   r2   r5   r   r6   r   r7   r   r8   r   r9   r   r:   httpx.AsyncClient | Noner;   r   r   r   r   r   r   )r1   r2   r3   r2   r5   r   r6   r   r:   r   r7   r   r8   r   rr   r   r9   r   rs   r   r   r   r   r   r   r   s   @r[   r   r      s1   ++
))!!++!!**((
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=0
 0
 !	0

 )0
 30
 .0
 $0
 20
 60
 30
 70
 
0
h L EE 	E
 !E 
E Er\   r   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 N)r   CompletionsWithRawResponser"   ChatWithRawResponser#   EditsWithRawResponser$   EmbeddingsWithRawResponser%   FilesWithRawResponser&   ImagesWithRawResponser'   AudioWithRawResponser(   ModerationsWithRawResponser)   ModelsWithRawResponser*   FineTuningWithRawResponser+   FineTunesWithRawResponser,   BetaWithRawResponser-   rY   clients     r[   rJ   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   rJ    r\   r[   r.   r.     s    ?r\   r.   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,   AsyncBetaWithRawResponser-   r   s     r[   rJ   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   r   r\   r[   r   r     s    Dr\   r   ),
__future__r   rF   r   typingr   r   typing_extensionsr   httpx r   r	   _qsr   _typesr   r   r   r   r   r   r   _utilsr   r   _versionr   
_streamingr   r   r   r   _base_clientr   r   r   __all__r   r   r.   r   r   r    r   r\   r[   <module>r      s    # 	  ! &  $    ) ! ( 2 4 L L
OE] OEdRE. REj? ? D D  
r\   