
    yg`                       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 ddl8m9Z9 ddl: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           ZA G d! d"          ZBe=ZCe>ZDd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)	responses)fine_tuning)vector_stores)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#ed%<   d&ed'<   	 d(d(d(d(d(eed(d(d(d)d*dQ fd:ZeedRd<                        Z	eedSd>                        Z
eedT fd@                        Zd(d(d(d(d(ed(ed(d(d(d(i dAdUdIZeZedVdP            Z xZS )Wr-   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vector_stores.VectorStoresr,   z	beta.Betar&   zbatches.Batchesr   zuploads.Uploadsr)   zresponses.Responsesr*   OpenAIWithRawResponsewith_raw_responseOpenAIWithStreamedResponsewith_streaming_responsestrapi_key
str | Noneorganizationprojectstr | httpx.URL | Nonewebsocket_base_urlNFr7   r9   r:   base_urlr<   timeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationr>   r?   %Union[float, Timeout, None, NotGiven]r@   intrA   Mapping[str, str] | NonerB   Mapping[str, object] | NonerC   httpx.Client | NonerD   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          j&        |           | _%        tO          j(        |           | _'        tS          |           | _*        tW          |           | _,        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?   rC   custom_headerscustom_queryrD   )-osenvirongetr!   r7   r9   r:   r<   super__init__r   r   _default_stream_clsr   Completionsr'   Chatr   
Embeddingsr   Filesr   Imagesr(   Audior   Moderationsr   Modelsr+   
FineTuningr,   VectorStoresr&   Betar   Batchesr)   Uploadsr*   	Responsesr2   r3   r4   r5   selfr7   r9   r:   r>   r<   r?   r@   rA   rB   rC   rD   	__class__s               I/var/www/html/nourish/venv/lib/python3.11/site-packages/openai/_client.pyr\   zOpenAI.__init__N   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*7==IdOO	t,,t,,",T22!6t!<!<'A$'G'G$$$    r   c                "    t          d          S Nbrackets)array_formatr   rm   s    ro   qsz	OpenAI.qs        
3333rp   dict[str, str]c                    | j         }dd| iS NAuthorizationzBearer r7   rm   r7   s     ro   auth_headerszOpenAI.auth_headers        ,!47!4!455rp   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)r[   rA   r9   r   r:   _custom_headersrm   rn   s    ro   rA   zOpenAI.default_headers   si    
gg%
!(8<8I8U4#4#4[_[a[a.2l.FdllDFF	
 
 

 "
 	
rp   r7   r9   r:   r<   r>   r?   rC   r@   rA   set_default_headersrB   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)
r7   r9   r:   r<   r>   r?   rC   r@   rA   rB    
ValueErrorr   _custom_query_clientrn   r7   r9   r:   r<   r>   
isinstancer   r?   r   r@   rm   r7   r9   r:   r<   r>   r?   rC   r@   rA   r   rB   r   r   headersparamss                   ro   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# 
 
 
 
 	
rp   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   rZ   status_coder
   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr"   rm   r   r   r   datas        ro   _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Drp   )r7   r8   r9   r8   r:   r8   r>   r;   r<   r;   r?   rE   r@   rF   rA   rG   rB   rH   rC   rI   rD   rJ   rK   rL   rK   r   rK   rx   rK   r   )r7   r8   r9   r8   r:   r8   r<   r;   r>   r;   r?   r   rC   rI   r@   r   rA   rG   r   rG   rB   rH   r   rH   r   r   rK   r   r   r6   r   r   r   r   rK   r"   __name__
__module____qualname____annotations__r   r#   r\   propertyr   rv   r~   rA   r   with_optionsr   __classcell__rn   s   @ro   r-   r-   /   sl        ((((OOO%%%%((((''''----OOO"""",,,,7777 LLL.... ##'"+/599B.4859 ,0 -21TH TH TH TH TH TH TH THl 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rp   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#ed%<   d&ed'<   	 d(d(d(d(d(eed(d(d(d)d*dQ fd:ZeedRd<                        Z	eedSd>                        Z
eedT fd@                        Zd(d(d(d(d(ed(ed(d(d(d(i dAdUdIZeZedVdP            Z xZS )Wr.   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vector_stores.AsyncVectorStoresr,   zbeta.AsyncBetar&   zbatches.AsyncBatchesr   zuploads.AsyncUploadsr)   zresponses.AsyncResponsesr*   AsyncOpenAIWithRawResponser3   AsyncOpenAIWithStreamedResponser5   r6   r7   r8   r9   r:   r;   r<   NFr=   r>   r?   rE   r@   rF   rA   rG   rB   rH   rC   httpx.AsyncClient | NonerD   rJ   rK   rL   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          j&        |           | _%        tO          j(        |           | _'        tS          |           | _*        tW          |           | _,        dS )	aD  Construct a new async AsyncOpenAI 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`
        NrN   rO   rP   rQ   rR   rS   rT   )-rX   rY   rZ   r!   r7   r9   r:   r<   r[   r\   r   r    r]   r   AsyncCompletionsr'   	AsyncChatr   AsyncEmbeddingsr   
AsyncFilesr   AsyncImagesr(   
AsyncAudior   AsyncModerationsr   AsyncModelsr+   AsyncFineTuningr,   AsyncVectorStoresr&   	AsyncBetar   AsyncBatchesr)   AsyncUploadsr*   AsyncResponsesr   r3   r   r5   rl   s               ro   r\   zAsyncOpenAI.__init__5  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<<*<TBBN4((	+D11+D11"1$77!;D!A!A'Ft'L'L$$$rp   r   c                "    t          d          S rr   r   ru   s    ro   rv   zAsyncOpenAI.qs  rw   rp   rx   c                    | j         }dd| iS rz   r|   r}   s     ro   r~   zAsyncOpenAI.auth_headers  r   rp   r   c                    i t                      j        dt                       | j        | j        nt	                      | j        | j        nt	                      d| j        S )Nzasync:r   )r[   rA   r   r9   r   r:   r   r   s    ro   rA   zAsyncOpenAI.default_headers  sx    
gg%
!?*;*=*=!?!?8<8I8U4#4#4[_[a[a.2l.FdllDFF	
 
 

 "
 	
rp   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                   ro   r   zAsyncOpenAI.copy  r   rp   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        ro   r   zAsyncOpenAI._make_status_error  r   rp   )r7   r8   r9   r8   r:   r8   r>   r;   r<   r;   r?   rE   r@   rF   rA   rG   rB   rH   rC   r   rD   rJ   rK   rL   r   r   r   )r7   r8   r9   r8   r:   r8   r<   r;   r>   r;   r?   r   rC   r   r@   r   rA   rG   r   rG   rB   rH   r   rH   r   r   rK   r   r   r   r   s   @ro   r.   r.     sr        ----****----,,,,2222!!!!!!!!''''1111<<<< LLL.... ##'"+/599B.4859 15 -21TM TM TM TM TM TM TM TMl 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rp   r.   c                      e Zd ZddZdS )r2   clientr-   rK   rL   c                N   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                  | _        t1          j        |j                  | _        t5          j        |j                  | _        d S N)r   CompletionsWithRawResponser'   ChatWithRawResponser   EmbeddingsWithRawResponser   FilesWithRawResponser   ImagesWithRawResponser(   AudioWithRawResponser   ModerationsWithRawResponser   ModelsWithRawResponser+   FineTuningWithRawResponser,   VectorStoresWithRawResponser&   BetaWithRawResponser   BatchesWithRawResponser)   UploadsWithRawResponser*   ResponsesWithRawResponserm   r   s     ro   r\   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*FvG[\\,V[99	5fnEE5fnEE";F<LMMrp   Nr   r-   rK   rL   r   r   r   r\   r   rp   ro   r2   r2     s.        N N N N N Nrp   r2   c                      e Zd ZddZdS )r   r   r.   rK   rL   c                N   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                  | _        t1          j        |j                  | _        t5          j        |j                  | _        d S r   )r   AsyncCompletionsWithRawResponser'   AsyncChatWithRawResponser   AsyncEmbeddingsWithRawResponser   AsyncFilesWithRawResponser   AsyncImagesWithRawResponser(   AsyncAudioWithRawResponser   AsyncModerationsWithRawResponser   AsyncModelsWithRawResponser+   AsyncFineTuningWithRawResponser,    AsyncVectorStoresWithRawResponser&   AsyncBetaWithRawResponser   AsyncBatchesWithRawResponser)   AsyncUploadsWithRawResponser*   AsyncResponsesWithRawResponser   s     ro   r\   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*KFL`aa1&+>>	:6>JJ:6>JJ"@AQRRrp   Nr   r.   rK   rL   r   r   rp   ro   r   r     s.        S S S S S Srp   r   c                      e Zd ZddZdS )r4   r   r-   rK   rL   c                N   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                  | _        t1          j        |j                  | _        t5          j        |j                  | _        d S r   )r    CompletionsWithStreamingResponser'   ChatWithStreamingResponser   EmbeddingsWithStreamingResponser   FilesWithStreamingResponser   ImagesWithStreamingResponser(   AudioWithStreamingResponser    ModerationsWithStreamingResponser   ModelsWithStreamingResponser+   FineTuningWithStreamingResponser,   !VectorStoresWithStreamingResponser&   BetaWithStreamingResponser   BatchesWithStreamingResponser)   UploadsWithStreamingResponser*   ResponsesWithStreamingResponser   s     ro   r\   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*LVMabb26;??	;FNKK;FNKK"A&BRSSrp   Nr   r   r   rp   ro   r4   r4   !  s.        T T T T T Trp   r4   c                      e Zd ZddZdS )r   r   r.   rK   rL   c                N   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                  | _        t1          j        |j                  | _        t5          j        |j                  | _        d S r   )r   %AsyncCompletionsWithStreamingResponser'   AsyncChatWithStreamingResponser   $AsyncEmbeddingsWithStreamingResponser   AsyncFilesWithStreamingResponser    AsyncImagesWithStreamingResponser(   AsyncAudioWithStreamingResponser   %AsyncModerationsWithStreamingResponser    AsyncModelsWithStreamingResponser+   $AsyncFineTuningWithStreamingResponser,   &AsyncVectorStoresWithStreamingResponser&   AsyncBetaWithStreamingResponser   !AsyncBatchesWithStreamingResponser)   !AsyncUploadsWithStreamingResponser*   #AsyncResponsesWithStreamingResponser   s     ro   r\   z(AsyncOpenAIWithStreamedResponse.__init__4  s)   &LVM_``7DD	$I&J[\\:6<HH
=fmLL:6<HH
&LVM_``=fmLL&KFL^__*QRXRfgg7DD	@PP@PP"FvGWXXrp   Nr   r   r   rp   ro   r   r   3  s.        Y Y Y Y Y Yrp   r   )E
__future__r   rX   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.responsesr*   resources.fine_tuningr+   resources.vector_storesr,   __all__r-   r.   r2   r   r4   r   r/   r0   r   rp   ro   <module>r/     s   # " " " " " 				 & & & & & & & & & & , , , , , , , ,                                       
 " ! ! ! ! ! [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ D D D D D D D D 4 4 4 4 4 4 4 4         
 !                       " " " " " " & & & & & & * * * * * * . . . . . . 2 2 2 2 2 2
v
v
vdE dE dE dE dE] dE dE dENdE dE dE dE dE. dE dE dENN N N N N N N N$S S S S S S S S$T T T T T T T T$Y Y Y Y Y Y Y Y$ 
rp   