
    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@dS )!    )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&dM fd6ZeedNd8                        Z	eedOd:                        Z
eedP fd<                        Zd$d$d$d$d$ed$ed$d$d$d$i d=dQdEZeZedRdL            Z xZS )Sr+   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_validationr<   r=   %Union[float, Timeout, None, NotGiven]r>   intr?   Mapping[str, str] | Noner@   Mapping[str, object] | NonerA   httpx.Client | NonerB   boolreturnNonec          
        |t           j                            d          }|t          d          || _        |t           j                            d          }|| _        |t           j                            d          }|| _        || _        |t           j                            d          }|d}t                      	                    t          ||||
||	|           t          | _        t          j        |           | _        t          j        |           | _        t#          j        |           | _        t'          j        |           | _        t+          j        |           | _        t/          j        |           | _        t3          j        |           | _        t7          j        |           | _        t;          j        |           | _        t?          j         |           | _        tC          j"        |           | _!        tG          j$        |           | _#        tK          |           | _&        tO          |           | _(        dS )	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               L/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/openai/_client.pyrZ   zOpenAI.__init__J   s   B ?jnn%566G? V   :>>/::L(?jnn%899G"4z~~&788H3H##*&(C 	 		
 		
 		
 $* &2488IdOO	$/55[&&
mD))[&&
&2488mD))&1$77IdOO	t,,t,,!6t!<!<'A$'G'G$$$    r   c                "    t          d          S Nbrackets)array_formatr   ri   s    rk   qsz	OpenAI.qs        
3333rl   dict[str, str]c                    | j         }dd| iS NAuthorizationzBearer r5   ri   r5   s     rk   auth_headerszOpenAI.auth_headers        ,!47!4!455rl   dict[str, str | Omit]c                    i t                      j        d| j        | j        nt                      | j        | j        nt                      d| j        S )NfalsezX-Stainless-AsynczOpenAI-OrganizationzOpenAI-Project)rY   r?   r7   r   r8   _custom_headersri   rj   s    rk   r?   zOpenAI.default_headers   si    
gg%
!(8<8I8U4#4#4[_[a[a.2l.FdllDFF	
 
 

 "
 	
rl   r5   r7   r8   r:   r<   r=   rA   r>   r?   set_default_headersr@   set_default_query_extra_kwargs!float | Timeout | None | NotGivenint | NotGivenr   r   r   Mapping[str, Any]r   c                  |	|
t          d          ||t          d          | j        }|	i ||	}n|
|
}| j        }|i ||}n||}|p| j        } | j        d|p| j        |p| j        |p| j        |p| j        |p| 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.
        NzPThe `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@    
ValueErrorr   _custom_query_clientrj   r5   r7   r8   r:   r<   
isinstancer   r=   r   r>   ri   r5   r7   r8   r:   r<   r=   rA   r>   r?   r   r@   r   r   headersparamss                   rk   copyzOpenAI.copy   0   ( &+>+Joppp$):)Fklll&&44O4GG ,)G#$00-0FF*&F!1T\t~ 
+t|%:):+t|1LT5L.$.w$A$ANDLLw#'/'<'<R$BR# 
 
 
 
 	
rl   err_msgbodyobjectresponsehttpx.Responser"   c                  t          |          r|                    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  )r   r   i  i  i  i  i  i  i  r   rX   status_coder
   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr"   ri   r   r   r   datas        rk   _make_status_errorzOpenAI._make_status_error   s    +5T*:*:Dtxx&&&3&&.wPTUUUU3&&27XTXYYYY3&&4WxVZ[[[[3&&,WxdSSSS3&&,WxdSSSS3&&7(Y]^^^^3&&-gtTTTT3&&27XTXYYYYgtDDDDrl   )r5   r6   r7   r6   r8   r6   r<   r9   r:   r9   r=   rC   r>   rD   r?   rE   r@   rF   rA   rG   rB   rH   rI   rJ   rI   r   rI   rt   rI   r|   )r5   r6   r7   r6   r8   r6   r:   r9   r<   r9   r=   r   rA   rG   r>   r   r?   rE   r   rE   r@   rF   r   rF   r   r   rI   r   r   r4   r   r   r   r   rI   r"   __name__
__module____qualname____annotations__r   r#   rZ   propertyr   rr   rz   r?   r   with_optionsr   __classcell__rj   s   @rk   r+   r+   -   sT        ((((OOO%%%%((((''''OOO,,,,7777 LLL.... ##'"+/599B.4859 ,0 -21RH RH RH RH RH RH RH RHh 4 4 4 X X4 6 6 6 X X6 
 
 
 
 
 X X
 ##'"59+/5>+/&/488<599=+-3
 3
 3
 3
 3
 3
n LE E E XE E E E Erl   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&dM fd6ZeedNd8                        Z	eedOd:                        Z
eedP fd<                        Zd$d$d$d$d$ed$ed$d$d$d$i d=dQdEZeZedRdL            Z xZS )Sr,   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;   r<   r=   rC   r>   rD   r?   rE   r@   rF   rA   httpx.AsyncClient | NonerB   rH   rI   rJ   c          
        |t           j                            d          }|t          d          || _        |t           j                            d          }|| _        |t           j                            d          }|| _        || _        |t           j                            d          }|d}t                      	                    t          ||||
||	|           t          | _        t          j        |           | _        t          j        |           | _        t#          j        |           | _        t'          j        |           | _        t+          j        |           | _        t/          j        |           | _        t3          j        |           | _        t7          j        |           | _        t;          j        |           | _        t?          j         |           | _        tC          j"        |           | _!        tG          j$        |           | _#        tK          |           | _&        tO          |           | _(        dS )	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`
        NrL   rM   rN   rO   rP   rQ   rR   ))rV   rW   rX   r!   r5   r7   r8   r:   rY   rZ   r   r    r[   r   AsyncCompletionsr'   	AsyncChatr   AsyncEmbeddingsr   
AsyncFilesr   AsyncImagesr(   
AsyncAudior   AsyncModerationsr   AsyncModelsr*   AsyncFineTuningr&   	AsyncBetar   AsyncBatchesr)   AsyncUploadsr   r1   r   r3   rh   s               rk   rZ   zAsyncOpenAI.__init__-  s   B ?jnn%566G? V   :>>/::L(?jnn%899G"4z~~&788H3H##*&(C 	 		
 		
 		
 $/ &7==N4((	$4T::%d++
(..%d++
&7==(..&6t<<N4((	+D11+D11!;D!A!A'Ft'L'L$$$rl   r   c                "    t          d          S rn   r   rq   s    rk   rr   zAsyncOpenAI.qs  rs   rl   rt   c                    | j         }dd| iS rv   rx   ry   s     rk   rz   zAsyncOpenAI.auth_headers  r{   rl   r|   c                    i t                      j        dt                       | j        | j        nt	                      | j        | j        nt	                      d| j        S )Nzasync:r   )rY   r?   r   r7   r   r8   r   r   s    rk   r?   zAsyncOpenAI.default_headers  sx    
gg%
!?*;*=*=!?!?8<8I8U4#4#4[_[a[a.2l.FdllDFF	
 
 

 "
 	
rl   r   r   r   r   r   r   r   r   c                  |	|
t          d          ||t          d          | j        }|	i ||	}n|
|
}| j        }|i ||}n||}|p| j        } | j        d|p| j        |p| j        |p| j        |p| j        |p| j	        t          |t                    r| j        n||t          |          r|n| j        ||d
|S r   r   r   s                   rk   r   zAsyncOpenAI.copy  r   rl   r   r   r   r   r   r"   c                  t          |          r|                    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        rk   r   zAsyncOpenAI._make_status_error  r   rl   )r5   r6   r7   r6   r8   r6   r<   r9   r:   r9   r=   rC   r>   rD   r?   rE   r@   rF   rA   r   rB   rH   rI   rJ   r   r   r   )r5   r6   r7   r6   r8   r6   r:   r9   r<   r9   r=   r   rA   r   r>   r   r?   rE   r   rE   r@   rF   r   rF   r   r   rI   r   r   r   r   s   @rk   r,   r,     sZ        ----****----,,,,!!!!!!!!1111<<<< LLL.... ##'"+/599B.4859 15 -21RM RM RM RM RM RM RM RMh 4 4 4 X X4 6 6 6 X X6 
 
 
 
 
 X X
 ##'"59+/5>04&/488<599=+-3
 3
 3
 3
 3
 3
n LE E E XE E E E Erl   r,   c                      e Zd ZddZdS )r0   clientr+   rI   rJ   c                   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                  | _        d S N)r   CompletionsWithRawResponser'   ChatWithRawResponser   EmbeddingsWithRawResponser   FilesWithRawResponser   ImagesWithRawResponser(   AudioWithRawResponser   ModerationsWithRawResponser   ModelsWithRawResponser*   FineTuningWithRawResponser&   BetaWithRawResponser   BatchesWithRawResponser)   UploadsWithRawResponseri   r   s     rk   rZ   zOpenAIWithRawResponse.__init__  s    &A&BTUU,V[99	$>v?PQQ/==
26=AA/==
&A&BTUU26=AA&@ASTT,V[99	5fnEE5fnEErl   Nr   r+   rI   rJ   r   r   r   rZ   r   rl   rk   r0   r0     s.        F F F F F Frl   r0   c                      e Zd ZddZdS )r   r   r,   rI   rJ   c                   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                  | _        d S r   )r   AsyncCompletionsWithRawResponser'   AsyncChatWithRawResponser   AsyncEmbeddingsWithRawResponser   AsyncFilesWithRawResponser   AsyncImagesWithRawResponser(   AsyncAudioWithRawResponser   AsyncModerationsWithRawResponser   AsyncModelsWithRawResponser*   AsyncFineTuningWithRawResponser&   AsyncBetaWithRawResponser   AsyncBatchesWithRawResponser)   AsyncUploadsWithRawResponser   s     rk   rZ   z#AsyncOpenAIWithRawResponse.__init__  s    &FvGYZZ1&+>>	$CFDUVV4V\BB
7FF4V\BB
&FvGYZZ7FF&EfFXYY1&+>>	:6>JJ:6>JJrl   Nr   r,   rI   rJ   r   r   rl   rk   r   r     s.        K K K K K Krl   r   c                      e Zd ZddZdS )r2   r   r+   rI   rJ   c                   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                  | _        d S r   )r    CompletionsWithStreamingResponser'   ChatWithStreamingResponser   EmbeddingsWithStreamingResponser   FilesWithStreamingResponser   ImagesWithStreamingResponser(   AudioWithStreamingResponser    ModerationsWithStreamingResponser   ModelsWithStreamingResponser*   FineTuningWithStreamingResponser&   BetaWithStreamingResponser   BatchesWithStreamingResponser)   UploadsWithStreamingResponser   s     rk   rZ   z#OpenAIWithStreamedResponse.__init__  s    &GHZ[[26;??	$DVEVWW5flCC
8GG5flCC
&GHZ[[8GG&FvGYZZ26;??	;FNKK;FNKKrl   Nr   r   r   rl   rk   r2   r2     s.        L L L L L Lrl   r2   c                      e Zd ZddZdS )r   r   r,   rI   rJ   c                   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                  | _        d S r   )r   %AsyncCompletionsWithStreamingResponser'   AsyncChatWithStreamingResponser   $AsyncEmbeddingsWithStreamingResponser   AsyncFilesWithStreamingResponser    AsyncImagesWithStreamingResponser(   AsyncAudioWithStreamingResponser   %AsyncModerationsWithStreamingResponser    AsyncModelsWithStreamingResponser*   $AsyncFineTuningWithStreamingResponser&   AsyncBetaWithStreamingResponser   !AsyncBatchesWithStreamingResponser)   !AsyncUploadsWithStreamingResponser   s     rk   rZ   z(AsyncOpenAIWithStreamedResponse.__init__$  s    &LVM_``7DD	$I&J[\\:6<HH
=fmLL:6<HH
&LVM_``=fmLL&KFL^__7DD	@PP@PPrl   Nr   r   r   rl   rk   r   r   #  s.        Q Q Q Q Q Qrl   r   )A
__future__r   rV   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   rl   rk   <module>r     sj   # " " " " " 				 & & & & & & & & & & , , , , , , , ,                                       
 " ! ! ! ! ! [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ D D D D D D D D 4 4 4 4 4 4 4 4         
 !                       " " " " " " & & & & & & . . . . . .
v
v
v`E `E `E `E `E] `E `E `EF`E `E `E `E `E. `E `E `EFF F F F F F F F K K K K K K K K L L L L L L L L Q Q Q Q Q Q Q Q  
rl   