
    g;[                       d dl m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 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mZ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+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 g dZ8 G d de,      Z9 G d de-      Z: G d d      Z; G d d      Z< G d d      Z= G d d       Z>e9Z?e:Z@y)!    )annotationsN)AnyUnionMapping)Selfoverride   )_exceptionsQuerystring)	NOT_GIVENOmitTimeoutNotGiven	TransportProxiesTypesRequestOptions)is_given
is_mappingget_async_library)__version__)filesimagesmodelsbatches
embeddingscompletionsmoderations)StreamAsyncStream)OpenAIErrorAPIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)beta)chat)audio)uploads)fine_tuning)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ed <   ded!<   d"ed#<   	 d$d$d$d$d$eed$d$d$d%d&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d. fd'Zeed/d(              Z	eed0d)              Z
eed1 fd*              Zd$d$d$d$d$ed$ed$d$d$d$i d+	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2d,ZeZe	 	 	 	 	 	 	 	 d3d-       Z xZS )4r+   zcompletions.Completionsr   z	chat.Chatr'   zembeddings.Embeddingsr   zfiles.Filesr   zimages.Imagesr   zaudio.Audior(   zmoderations.Moderationsr   zmodels.Modelsr   zfine_tuning.FineTuningr*   z	beta.Betar&   zbatches.Batchesr   zuploads.Uploadsr)   OpenAIWithRawResponsewith_raw_responseOpenAIWithStreamedResponsewith_streaming_responsestrapi_key
str | Noneorganizationprojectstr | httpx.URL | Nonewebsocket_base_urlNFr5   r7   r8   base_urlr:   timeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationc          
     d   |t         j                  j                  d      }|t        d      || _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|| _        || _        |t         j                  j                  d      }|d}t        | %  t        ||||
||	|       t        | _        t        j                  |       | _        t        j                   |       | _        t#        j$                  |       | _        t'        j(                  |       | _        t+        j,                  |       | _        t/        j0                  |       | _        t3        j4                  |       | _        t7        j8                  |       | _        t;        j<                  |       | _        t?        j@                  |       | _        tC        jD                  |       | _!        tG        jH                  |       | _#        tK        |       | _&        tO        |       | _(        y)	aE  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`
        - `project` from `OPENAI_PROJECT_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_PROJECT_IDOPENAI_BASE_URLhttps://api.openai.com/v1versionr<   r>   r=   rA   custom_headerscustom_queryrB   ))osenvirongetr!   r5   r7   r8   r:   super__init__r   r   _default_stream_clsr   Completionsr'   Chatr   
Embeddingsr   Filesr   Imagesr(   Audior   Moderationsr   Modelsr*   
FineTuningr&   Betar   Batchesr)   Uploadsr0   r1   r2   r3   selfr5   r7   r8   r<   r:   r=   r>   r?   r@   rA   rB   	__class__s               C/var/www/openai/venv/lib/python3.12/site-packages/openai/_client.pyrR   zOpenAI.__init__J   s   B ?jjnn%56G? V  ::>>/:L(?jjnn%89G"4zz~~&78H2H##*&(C 	 		
 $* &2248IIdO	$//5[[&
mmD)[[&
&2248mmD)&11$7IIdO	t,t,!6t!<'A$'G$    c                    t        d      S Nbrackets)array_formatr   ra   s    rc   qsz	OpenAI.qs        
33rd   c                (    | j                   }dd| iS NAuthorizationzBearer r5   ra   r5   s     rc   auth_headerszOpenAI.auth_headers        ,,77)!455rd   c                    i t         |   d| j                  | j                  n	t               | j                  | j                  n	t               d| j
                  S )NfalsezX-Stainless-AsynczOpenAI-OrganizationzOpenAI-Project)rQ   r?   r7   r   r8   _custom_headersra   rb   s    rc   r?   zOpenAI.default_headers   s`    
g%
!(8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
rd   r5   r7   r8   r:   r<   r=   rA   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 | j                  |xs | j                  |xs | 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)
r5   r7   r8   r:   r<   r=   rA   r>   r?   r@    
ValueErrorrv   _custom_query_clientrb   r5   r7   r8   r:   r<   
isinstancer   r=   r   r>   ra   r5   r7   r8   r:   r<   r=   rA   r>   r?   ry   r@   rz   r{   headersparamss                   rc   copyzOpenAI.copy   '   ( &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\t~~ 
+t||%:):):+t||1LT5L5L.$.w$ADLLw#'/'<$BRBR# 
 
 	
rd   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   rP   status_coder
   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr"   ra   err_msgr   r   datas        rc   _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Drd   )r5   r6   r7   r6   r8   r6   r<   r9   r:   r9   r=   %Union[float, Timeout, None, NotGiven]r>   intr?   Mapping[str, str] | Noner@   Mapping[str, object] | NonerA   httpx.Client | NonerB   boolreturnNoner   r   r   zdict[str, str]r   zdict[str, str | Omit])r5   r6   r7   r6   r8   r6   r:   r9   r<   r9   r=   !float | Timeout | None | NotGivenrA   r   r>   int | NotGivenr?   r   ry   r   r@   r   rz   r   r{   Mapping[str, Any]r   r   r   r4   r   objectr   zhttpx.Responser   r"   __name__
__module____qualname____annotations__r   r#   rR   propertyr   rj   rq   r?   r   with_optionsr   __classcell__rb   s   @rc   r+   r+   -   s   ((
O%%((''
O,,77 L.. ##'"+/599B.4859 ,0 -21RH RH !	RH
 RH )RH 3RH 7RH RH 2RH 3RH )RH0 &*1RH2 
3RHh 4  4 6  6 
  
 ##'"59+/5>+/&/488<599=+-3
 3
 !	3

 3
 33
 )3
 33
 )3
 $3
 23
 63
 33
 73
 )3
  
!3
n LEE 	E
 !E 
E Erd   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ed <   ded!<   d"ed#<   	 d$d$d$d$d$eed$d$d$d%d&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d. fd'Zeed/d(              Z	eed0d)              Z
eed1 fd*              Zd$d$d$d$d$ed$ed$d$d$d$i d+	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2d,ZeZe	 	 	 	 	 	 	 	 d3d-       Z xZS )4r,   zcompletions.AsyncCompletionsr   zchat.AsyncChatr'   zembeddings.AsyncEmbeddingsr   zfiles.AsyncFilesr   zimages.AsyncImagesr   zaudio.AsyncAudior(   zmoderations.AsyncModerationsr   zmodels.AsyncModelsr   zfine_tuning.AsyncFineTuningr*   zbeta.AsyncBetar&   zbatches.AsyncBatchesr   zuploads.AsyncUploadsr)   AsyncOpenAIWithRawResponser1   AsyncOpenAIWithStreamedResponser3   r4   r5   r6   r7   r8   r9   r:   NFr;   c          
     d   |t         j                  j                  d      }|t        d      || _        |t         j                  j                  d      }|| _        |t         j                  j                  d      }|| _        || _        |t         j                  j                  d      }|d}t        | %  t        ||||
||	|       t        | _        t        j                  |       | _        t        j                   |       | _        t#        j$                  |       | _        t'        j(                  |       | _        t+        j,                  |       | _        t/        j0                  |       | _        t3        j4                  |       | _        t7        j8                  |       | _        t;        j<                  |       | _        t?        j@                  |       | _        tC        jD                  |       | _!        tG        jH                  |       | _#        tK        |       | _&        tO        |       | _(        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`
        - `project` from `OPENAI_PROJECT_ID`
        NrD   rE   rF   rG   rH   rI   rJ   ))rN   rO   rP   r!   r5   r7   r8   r:   rQ   rR   r   r    rS   r   AsyncCompletionsr'   	AsyncChatr   AsyncEmbeddingsr   
AsyncFilesr   AsyncImagesr(   
AsyncAudior   AsyncModerationsr   AsyncModelsr*   AsyncFineTuningr&   	AsyncBetar   AsyncBatchesr)   AsyncUploadsr   r1   r   r3   r`   s               rc   rR   zAsyncOpenAI.__init__-  s   B ?jjnn%56G? V  ::>>/:L(?jjnn%89G"4zz~~&78H2H##*&(C 	 		
 $/ &77=NN4(	$44T:%%d+
((.%%d+
&77=((.&66t<NN4(	++D1++D1!;D!A'Ft'L$rd   c                    t        d      S rf   r   ri   s    rc   rj   zAsyncOpenAI.qs  rk   rd   c                (    | j                   }dd| iS rm   ro   rp   s     rc   rq   zAsyncOpenAI.auth_headers  rr   rd   c                    i t         |   dt                | j                  | j                  n	t	               | j
                  | j
                  n	t	               d| j                  S )Nzasync:ru   )rQ   r?   r   r7   r   r8   rv   rw   s    rc   r?   zAsyncOpenAI.default_headers  sl    
g%
#)*;*=)>!?8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
rd   rx   c                  |	|
t        d      ||t        d      | j                  }|	i ||	}n|
|
}| j                  }|i ||}n||}|xs | j                  } | j                  d|xs | j
                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d
|S r}   r   r   s                   rc   r   zAsyncOpenAI.copy  r   rd   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        rc   r   zAsyncOpenAI._make_status_error  r   rd   )r5   r6   r7   r6   r8   r6   r<   r9   r:   r9   r=   r   r>   r   r?   r   r@   r   rA   httpx.AsyncClient | NonerB   r   r   r   r   r   r   )r5   r6   r7   r6   r8   r6   r:   r9   r<   r9   r=   r   rA   r   r>   r   r?   r   ry   r   r@   r   rz   r   r{   r   r   r   r   r   r   s   @rc   r,   r,     s   --
**--,,
!!!!11<< L.. ##'"+/599B.4859 15 -21RM RM !	RM
 RM )RM 3RM 7RM RM 2RM 3RM .RM0 &*1RM2 
3RMh 4  4 6  6 
  
 ##'"59+/5>04&/488<599=+-3
 3
 !	3

 3
 33
 )3
 33
 .3
 $3
 23
 63
 33
 73
 )3
  
!3
n LEE 	E
 !E 
E Erd   r,   c                      e Zd ZddZy)r0   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.                  |j,                        | _        y N)r   CompletionsWithRawResponser'   ChatWithRawResponser   EmbeddingsWithRawResponser   FilesWithRawResponser   ImagesWithRawResponser(   AudioWithRawResponser   ModerationsWithRawResponser   ModelsWithRawResponser*   FineTuningWithRawResponser&   BetaWithRawResponser   BatchesWithRawResponser)   UploadsWithRawResponsera   clients     rc   rR   zOpenAIWithRawResponse.__init__  s   &AA&BTBTU,,V[[9	$>>v?P?PQ//=
226==A//=
&AA&BTBTU226==A&@@ASAST,,V[[9	55fnnE55fnnErd   Nr   r+   r   r   r   r   r   rR   r~   rd   rc   r0   r0     s    Frd   r0   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.                  |j,                        | _        y r   )r   AsyncCompletionsWithRawResponser'   AsyncChatWithRawResponser   AsyncEmbeddingsWithRawResponser   AsyncFilesWithRawResponser   AsyncImagesWithRawResponser(   AsyncAudioWithRawResponser   AsyncModerationsWithRawResponser   AsyncModelsWithRawResponser*   AsyncFineTuningWithRawResponser&   AsyncBetaWithRawResponser   AsyncBatchesWithRawResponser)   AsyncUploadsWithRawResponser   s     rc   rR   z#AsyncOpenAIWithRawResponse.__init__  s   &FFvGYGYZ11&++>	$CCFDUDUV44V\\B
77F44V\\B
&FFvGYGYZ77F&EEfFXFXY11&++>	::6>>J::6>>Jrd   Nr   r,   r   r   r   r~   rd   rc   r   r     s    Krd   r   c                      e Zd ZddZy)r2   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.                  |j,                        | _        y r   )r    CompletionsWithStreamingResponser'   ChatWithStreamingResponser   EmbeddingsWithStreamingResponser   FilesWithStreamingResponser   ImagesWithStreamingResponser(   AudioWithStreamingResponser    ModerationsWithStreamingResponser   ModelsWithStreamingResponser*   FineTuningWithStreamingResponser&   BetaWithStreamingResponser   BatchesWithStreamingResponser)   UploadsWithStreamingResponser   s     rc   rR   z#OpenAIWithStreamedResponse.__init__  s   &GGHZHZ[226;;?	$DDVEVEVW55fllC
88G55fllC
&GGHZHZ[88G&FFvGYGYZ226;;?	;;FNNK;;FNNKrd   Nr   r   r~   rd   rc   r2   r2     s    Lrd   r2   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.                  |j,                        | _        y r   )r   %AsyncCompletionsWithStreamingResponser'   AsyncChatWithStreamingResponser   $AsyncEmbeddingsWithStreamingResponser   AsyncFilesWithStreamingResponser    AsyncImagesWithStreamingResponser(   AsyncAudioWithStreamingResponser   %AsyncModerationsWithStreamingResponser    AsyncModelsWithStreamingResponser*   $AsyncFineTuningWithStreamingResponser&   AsyncBetaWithStreamingResponser   !AsyncBatchesWithStreamingResponser)   !AsyncUploadsWithStreamingResponser   s     rc   rR   z(AsyncOpenAIWithStreamedResponse.__init__$  s   &LLVM_M_`77D	$II&J[J[\::6<<H
==fmmL::6<<H
&LLVM_M_`==fmmL&KKFL^L^_77D	@@P@@Prd   Nr   r   r~   rd   rc   r   r   #  s    Qrd   r   )A
__future__r   rN   typingr   r   r   typing_extensionsr   r   httpx r
   _qsr   _typesr   r   r   r   r   r   r   _utilsr   r   r   _versionr   	resourcesr   r   r   r   r   r   r   
_streamingr   r    r!   r"   _base_clientr#   r$   r%   resources.betar&   resources.chatr'   resources.audior(   resources.uploadsr)   resources.fine_tuningr*   __all__r+   r,   r0   r   r2   r   r-   r.   r~   rd   rc   <module>r     s    # 	 & & ,      
 " [ [ [ D 4 
 !   " & .
v`E] `EF`E. `EFF F K K L L Q Q  
rd   