
    f jN                       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ddeeddddd	dG fd0ZeedHd2                        Z	eedId4                        Z
eedJ fd6                        Zdddededdddi d7dKd?ZeZedLdF            Z xZS )Mr    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betaOpenAIWithRawResponsewith_raw_responseOpenAIWithStreamedResponsewith_streaming_responsestrapi_key
str | NoneorganizationNF	r4   r6   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationr8   str | httpx.URL | Noner9   %Union[float, Timeout, None, NotGiven]r:   intr;   Mapping[str, str] | Noner<   Mapping[str, object] | Noner=   httpx.Client | Noner>   boolreturnNonec       	   
        |t           j                            d          }|t          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        |           | _        tA          |           | _!        tE          |           | _#        dS )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&   
Embeddingsr'   Filesr(   Imagesr)   Audior*   Moderationsr+   Modelsr,   
FineTuningr-   Betar.   r/   r0   r1   r2   selfr4   r6   r8   r9   r:   r;   r<   r=   r>   	__class__s             bC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\openai/_client.pyrV   zOpenAI.__init__C   s   8  	7jnn%566G 	 V    	;:>>/::L( 	9z~~&788H 	4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comma)array_formatr   rc   s    re   qsz	OpenAI.qs        0000rf   dict[str, str]c                    | j         }dd| iS NAuthorizationzBearer r4   rc   r4   s     re   auth_headerszOpenAI.auth_headers        ,!47!4!455rf   dict[str, str | Omit]c                z    i t                      j        d| j        | j        nt                      d| j        S )NfalsezX-Stainless-AsynczOpenAI-Organization)rU   r;   r6   r   _custom_headersrc   rd   s    re   r;   zOpenAI.default_headers   sU    
gg%
!(8<8I#a4#4#4[_[a[a
 
 
 "	
 	
rf   r4   r6   r8   r9   r=   r:   r;   set_default_headersr<   set_default_query_extra_kwargs!float | Timeout | None | NotGivenint | NotGivenr}   r~   r   Mapping[str, Any]r   c               j   ||t          d          |	|
t          d          | j        }|i ||}n||}| j        }|	i ||	}n|
|
}|p| j        } | j        d|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)r4   r6   r8   r9   r=   r:   r;   r<    
ValueErrorrz   _custom_query_clientrd   r4   r6   r8   
isinstancer   r9   r   r:   rc   r4   r6   r8   r9   r=   r:   r;   r}   r<   r~   r   headersparamss                 re   copyzOpenAI.copy   /   $  	q+> 	qoppp 	m): 	mklll& 	*44O4GG  	*)G# 	'00-0FF 	'&F!1T\t~ 

+t|%:):.$.w$A$ANDLLw#'/'<'<R$BR# 

 

 

 

 
	
rf   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   rT   status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   rc   r   r   r   datas        re   _make_status_errorzOpenAI._make_status_error       +5T*:*:Dtxx&&&3& 	V.wPTUUUU3& 	Z27XTXYYYY3& 	\4WxVZ[[[[3& 	T,WxdSSSS3& 	T,WxdSSSS3& 	_7(Y]^^^^3& 	U-gtTTTT3& 	Z27XTXYYYYgtDDDDrf   )r4   r5   r6   r5   r8   r?   r9   r@   r:   rA   r;   rB   r<   rC   r=   rD   r>   rE   rF   rG   rF   r   rF   rn   rF   rv   )r4   r5   r6   r5   r8   r?   r9   r   r=   rD   r:   r   r;   rB   r}   rB   r<   rC   r~   rC   r   r   rF   r   r   r3   r   r   r   r   rF   r   __name__
__module____qualname____annotations__r   r   rV   propertyr   rl   rt   r;   r   with_optionsr   __classcell__rd   s   @re   r    r    1   s        &&&&$$$$&&&&%%%%,,,,7777 LLL
 ##'+/9B.4859+/ -2)EH EH EH EH EH EH EH EHN 1 1 1 X X1 6 6 6 X X6 
 
 
 
 
 X X
 ##'+/5>+/&/488<599=+-/
 /
 /
 /
 /
 /
f LE E E XE E E E Erf   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ddeeddddd	dG fd0ZeedHd2                        Z	eedId4                        Z
eedJ fd6                        Zdddededdddi d7dKd?ZeZedLdF            Z xZS )Mr!   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.   AsyncOpenAIWithRawResponser0   AsyncOpenAIWithStreamedResponser2   r3   r4   r5   r6   NFr7   r8   r?   r9   r@   r:   rA   r;   rB   r<   rC   r=   httpx.AsyncClient | Noner>   rE   rF   rG   c       	   
        |t           j                            d          }|t          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        |           | _        tA          |           | _!        tE          |           | _#        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`
        NrI   rJ   rK   rL   rM   rN   )$rR   rS   rT   r   r4   r6   rU   rV   r   r   rW   r
   AsyncCompletionsr%   	AsyncChatr&   AsyncEmbeddingsr'   
AsyncFilesr(   AsyncImagesr)   
AsyncAudior*   AsyncModerationsr+   AsyncModelsr,   AsyncFineTuningr-   	AsyncBetar.   r   r0   r   r2   rb   s             re   rV   zAsyncOpenAI.__init__	  s   8  	7jnn%566G 	 V    	;:>>/::L( 	9z~~&788H 	43H##*&(C 	 		
 		
 		
 $/ $5d;;'--	#3D99)$//
+D11)$//
$5d;;+D11$4T::'--	!;D!A!A'Ft'L'L$$$rf   r   c                "    t          d          S rh   r   rk   s    re   rl   zAsyncOpenAI.qsP  rm   rf   rn   c                    | j         }dd| iS rp   rr   rs   s     re   rt   zAsyncOpenAI.auth_headersU  ru   rf   rv   c                    i t                      j        dt                       | j        | j        nt	                      d| j        S )Nzasync:ry   )rU   r;   r   r6   r   rz   r{   s    re   r;   zAsyncOpenAI.default_headers[  sd    
gg%
!?*;*=*=!?!?8<8I#a4#4#4[_[a[a
 
 
 "	
 	
rf   r|   r   r   r}   r~   r   r   r   c               j   ||t          d          |	|
t          d          | j        }|i ||}n||}| j        }|	i ||	}n|
|
}|p| j        } | j        d|p| j        |p| j        |p| j        t          |t                    r| j
        n||t          |          r|n| j        ||d|S r   r   r   s                 re   r   zAsyncOpenAI.copye  r   rf   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        re   r   zAsyncOpenAI._make_status_error  r   rf   )r4   r5   r6   r5   r8   r?   r9   r@   r:   rA   r;   rB   r<   rC   r=   r   r>   rE   rF   rG   r   r   r   )r4   r5   r6   r5   r8   r?   r9   r   r=   r   r:   r   r;   rB   r}   rB   r<   rC   r~   rC   r   r   rF   r   r   r   r   s   @re   r!   r!      s        ++++))))!!!!++++!!!!****1111<<<< LLL
 ##'+/9B.485904 -2)EM EM EM EM EM EM EM EMN 1 1 1 X X1 6 6 6 X X6 
 
 
 
 
 X X
 ##'+/5>04&/488<599=+-/
 /
 /
 /
 /
 /
f LE E E XE E E E Erf   r!   c                      e Zd ZddZdS )r/   clientr    rF   rG   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                  | _        d S N)r
   CompletionsWithRawResponser%   ChatWithRawResponser&   EmbeddingsWithRawResponser'   FilesWithRawResponser(   ImagesWithRawResponser)   AudioWithRawResponser*   ModerationsWithRawResponser+   ModelsWithRawResponser,   FineTuningWithRawResponser-   BetaWithRawResponser.   rc   r   s     re   rV   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&+>>			rf   Nr   r    rF   rG   r   r   r   rV   r   rf   re   r/   r/     s(        
? 
? 
? 
? 
? 
?rf   r/   c                      e Zd ZddZdS )r   r   r!   rF   rG   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                  | _        d S r   )r
   AsyncCompletionsWithRawResponser%   AsyncChatWithRawResponser&   AsyncEmbeddingsWithRawResponser'   AsyncFilesWithRawResponser(   AsyncImagesWithRawResponser)   AsyncAudioWithRawResponser*   AsyncModerationsWithRawResponser+   AsyncModelsWithRawResponser,   AsyncFineTuningWithRawResponser-   AsyncBetaWithRawResponser.   r   s     re   rV   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			rf   Nr   r!   rF   rG   r   r   rf   re   r   r     s.        
D 
D 
D 
D 
D 
Drf   r   c                      e Zd ZddZdS )r1   r   r    rF   rG   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                  | _        d S r   )r
    CompletionsWithStreamingResponser%   ChatWithStreamingResponser&   EmbeddingsWithStreamingResponser'   FilesWithStreamingResponser(   ImagesWithStreamingResponser)   AudioWithStreamingResponser*    ModerationsWithStreamingResponser+   ModelsWithStreamingResponser,   FineTuningWithStreamingResponser-   BetaWithStreamingResponser.   r   s     re   rV   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			rf   Nr   r   r   rf   re   r1   r1     s.        
E 
E 
E 
E 
E 
Erf   r1   c                      e Zd ZddZdS )r   r   r!   rF   rG   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                  | _        d S r   )r
   %AsyncCompletionsWithStreamingResponser%   AsyncChatWithStreamingResponser&   $AsyncEmbeddingsWithStreamingResponser'   AsyncFilesWithStreamingResponser(    AsyncImagesWithStreamingResponser)   AsyncAudioWithStreamingResponser*   %AsyncModerationsWithStreamingResponser+    AsyncModelsWithStreamingResponser,   $AsyncFineTuningWithStreamingResponser-   AsyncBetaWithStreamingResponser.   r   s     re   rV   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			rf   Nr   r   r   rf   re   r   r     s.        
J 
J 
J 
J 
J 
Jrf   r   )0
__future__r   rR   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!   r/   r   r1   r   r"   r#   r   rf   re   <module>r	     s   # " " " " " 				 & & & & & & & & & & , , , , , , , ,  $ $ $ $ $ $ $ $                                
 " ! ! ! ! ! D D D D D D D D 4 4 4 4 4 4 4 4         
 
 
CE CE CE CE CE] CE CE CELCE CE CE CE CE. CE CE CEL? ? ? ? ? ? ? ?D D D D D D D DE E E E E E E EJ J J J J J J J 
rf   