
    
@gV                       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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  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+ G d d          Z, G d d          Z-e(Z.e)Z/dS )    )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ed <   ded!<   d"d"d"d"eed"d"d"d#d$
dL fd5ZeedMd7                        Z	eedNd9                        Z
eedO fd;                        Zd"d"d"d"ed"ed"d"d"d"i d<dPdDZeZedQdK            Z xZS )Rr    zresources.Completionscompletionszresources.Chatchatzresources.Embeddings
embeddingszresources.Filesfileszresources.Imagesimageszresources.Audioaudiozresources.Moderationsmoderationszresources.Modelsmodelszresources.FineTuningfine_tuningzresources.Betabetazresources.Batchesbatcheszresources.UploadsuploadsOpenAIWithRawResponsewith_raw_responseOpenAIWithStreamedResponsewith_streaming_responsestrapi_key
str | NoneorganizationprojectNF
r6   r8   r9   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationr;   str | httpx.URL | Noner<   %Union[float, Timeout, None, NotGiven]r=   intr>   Mapping[str, str] | Noner?   Mapping[str, object] | Noner@   httpx.Client | NonerA   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        |           | _        t          j        |           | _        t          j        |           | _        t          j        |           | _        t          j        |           | _         t          j!        |           | _"        t          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<   r@   custom_headerscustom_queryrA   ))osenvirongetr   r6   r8   r9   super__init__r   r   _default_stream_clsr
   Completionsr%   Chatr&   
Embeddingsr'   Filesr(   Imagesr)   Audior*   Moderationsr+   Modelsr,   
FineTuningr-   Betar.   Batchesr/   Uploadsr0   r1   r2   r3   r4   selfr6   r8   r9   r;   r<   r=   r>   r?   r@   rA   	__class__s              B/var/www/piapp/venv/lib/python3.11/site-packages/openai/_client.pyrZ   zOpenAI.__init__F   s   @ ?jnn%566G? V   :>>/::L(?jnn%899Gz~~&788H3H##*&(C 	 		
 		
 		
 $* $066N4((	#.t44_T**
&t,,_T**
$066&t,,$/55N4((	 (.. (..!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 r6   ri   r6   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>   r8   r   r9   _custom_headersri   rj   s    rk   r>   zOpenAI.default_headers   si    
gg%
!(8<8I8U4#4#4[_[a[a.2l.FdllDFF	
 
 

 "
 	
rl   r6   r8   r9   r;   r<   r@   r=   r>   set_default_headersr?   set_default_query_extra_kwargs!float | Timeout | None | NotGivenint | NotGivenr   r   r   Mapping[str, Any]r   c               z   ||	t          d          |
|t          d          | j        }|i ||}n|	|	}| j        }|
i ||
}n||}|p| j        } | j        d|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)	r6   r8   r9   r;   r<   r@   r=   r>   r?    
ValueErrorr   _custom_query_clientrj   r6   r8   r9   r;   
isinstancer   r<   r   r=   ri   r6   r8   r9   r;   r<   r@   r=   r>   r   r?   r   r   headersparamss                  rk   copyzOpenAI.copy   %   & &+>+Joppp$):)Fklll&&44O4GG ,)G#$00-0FF*&F!1T\t~ 
+t|%:):+t|.$.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   )r6   r7   r8   r7   r9   r7   r;   rB   r<   rC   r=   rD   r>   rE   r?   rF   r@   rG   rA   rH   rI   rJ   rI   r   rI   rt   rI   r|   )r6   r7   r8   r7   r9   r7   r;   rB   r<   r   r@   rG   r=   r   r>   rE   r   rE   r?   rF   r   rF   r   r   rI   r   r   r5   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    1   sC        &&&&$$$$&&&&%%%%,,,,7777 LLL
 ##'"+/9B.4859 ,0 -2/OH OH OH OH OH OH OH OHb 4 4 4 X X4 6 6 6 X X6 
 
 
 
 
 X X
 ##'"+/5>+/&/488<599=+-1
 1
 1
 1
 1
 1
j 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"d"d"d"eed"d"d"d#d$
dL fd5ZeedMd7                        Z	eedNd9                        Z
eedO fd;                        Zd"d"d"d"ed"ed"d"d"d"i d<dPdDZeZedQdK            Z xZS )Rr!   zresources.AsyncCompletionsr%   zresources.AsyncChatr&   zresources.AsyncEmbeddingsr'   zresources.AsyncFilesr(   zresources.AsyncImagesr)   zresources.AsyncAudior*   zresources.AsyncModerationsr+   zresources.AsyncModelsr,   zresources.AsyncFineTuningr-   zresources.AsyncBetar.   zresources.AsyncBatchesr/   zresources.AsyncUploadsr0   AsyncOpenAIWithRawResponser2   AsyncOpenAIWithStreamedResponser4   r5   r6   r7   r8   r9   NFr:   r;   rB   r<   rC   r=   rD   r>   rE   r?   rF   r@   httpx.AsyncClient | NonerA   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        |           | _        t          j        |           | _        t          j        |           | _        t          j        |           | _        t          j        |           | _         t          j!        |           | _"        t          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   r6   r8   r9   rY   rZ   r   r   r[   r
   AsyncCompletionsr%   	AsyncChatr&   AsyncEmbeddingsr'   
AsyncFilesr(   AsyncImagesr)   
AsyncAudior*   AsyncModerationsr+   AsyncModelsr,   AsyncFineTuningr-   	AsyncBetar.   AsyncBatchesr/   AsyncUploadsr0   r   r2   r   r4   rh   s              rk   rZ   zAsyncOpenAI.__init__  s   @ ?jnn%566G? V   :>>/::L(?jnn%899Gz~~&788H3H##*&(C 	 		
 		
 		
 $/ $5d;;'--	#3D99)$//
+D11)$//
$5d;;+D11$4T::'--	 -d33 -d33!;D!A!A'Ft'L'L$$$rl   r   c                "    t          d          S rn   r   rq   s    rk   rr   zAsyncOpenAI.qsm  rs   rl   rt   c                    | j         }dd| iS rv   rx   ry   s     rk   rz   zAsyncOpenAI.auth_headersr  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   r8   r   r9   r   r   s    rk   r>   zAsyncOpenAI.default_headersx  sx    
gg%
!?*;*=*=!?!?8<8I8U4#4#4[_[a[a.2l.FdllDFF	
 
 

 "
 	
rl   r   r   r   r   r   r   r   r   c               z   ||	t          d          |
|t          d          | j        }|i ||}n|	|	}| j        }|
i ||
}n||}|p| j        } | j        d|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   )r6   r7   r8   r7   r9   r7   r;   rB   r<   rC   r=   rD   r>   rE   r?   rF   r@   r   rA   rH   rI   rJ   r   r   r   )r6   r7   r8   r7   r9   r7   r;   rB   r<   r   r@   r   r=   r   r>   rE   r   rE   r?   rF   r   rF   r   r   rI   r   r   r   r   s   @rk   r!   r!     sC        ++++))))!!!!++++!!!!****########1111<<<< LLL
 ##'"+/9B.4859 15 -2/OM OM OM OM OM OM OM OMb 4 4 4 X X4 6 6 6 X X6 
 
 
 
 
 X X
 ##'"+/5>04&/488<599=+-1
 1
 1
 1
 1
 1
j LE E E XE E E E Erl   r!   c                      e Zd ZddZdS )r1   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/   UploadsWithRawResponser0   ri   r   s     rk   rZ   zOpenAIWithRawResponse.__init__  s    $?@RSS1&+>>	#=f>OPP3FLAA
5fmDD3FLAA
$?@RSS5fmDD$>v?QRR1&+>>	 7GG 7GGrl   Nr   r    rI   rJ   r   r   r   rZ   r   rl   rk   r1   r1     s.        H H H H H Hrl   r1   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/   AsyncUploadsWithRawResponser0   r   s     rk   rZ   z#AsyncOpenAIWithRawResponse.__init__  s    $DVEWXX6v{CC	#B6CTUU8FF
:6=II8FF
$DVEWXX:6=II$CFDVWW6v{CC	 <V^LL <V^LLrl   Nr   r!   rI   rJ   r   r   rl   rk   r   r     s.        M M M M M Mrl   r   c                      e Zd ZddZdS )r3   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/   UploadsWithStreamingResponser0   r   s     rk   rZ   z#OpenAIWithStreamedResponse.__init__  s    $EfFXYY7DD	#CFDUVV9&,GG
;FMJJ9&,GG
$EfFXYY;FMJJ$DVEWXX7DD	 =fnMM =fnMMrl   Nr   r   r   rl   rk   r3   r3     s.        N N N N N Nrl   r3   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/   !AsyncUploadsWithStreamingResponser0   r   s     rk   rZ   z(AsyncOpenAIWithStreamedResponse.__init__  s    $J6K]^^<V[II	#HIZ[[>v|LL
@OO>v|LL
$J6K]^^@OO$I&J\]]<V[II	 B6>RR B6>RRrl   Nr   r   r   rl   rk   r   r     s.        S S S S S Srl   r   )0
__future__r   rV   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   r3   r   r"   r#   r   rl   rk   <module>r     s   # " " " " " 				 & & & & & & & & & & , , , , , , , ,  $ $ $ $ $ $ $ $                                
 " ! ! ! ! ! D D D D D D D D 4 4 4 4 4 4 4 4         
 
 
SE SE SE SE SE] SE SE SElSE SE SE SE SE. SE SE SElH H H H H H H H M M M M M M M M N N N N N N N N S S S S S S S S  
rl   