
    &MgV                    d   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/y)    )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$
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d, fd%Zeed-d&              Z	eed.d'              Z
eed/ fd(              Zd"d"d"d"ed"ed"d"d"d"i d)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0d*ZeZe	 	 	 	 	 	 	 	 d1d+       Z xZS )2r    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_validationc       
   
     V   |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        j.                  |       | _        t        j2                  |       | _        t        j6                  |       | _        t        j:                  |       | _        t        j>                  |       | _         t        jB                  |       | _"        t        jF                  |       | _$        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<   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              \E:\wamp.anq\www\apps\calme\nutritwin\resources\nutritwin\Lib\site-packages\openai/_client.pyrQ   zOpenAI.__init__F   s   @ ?jjnn%56G? V  ::>>/:L(?jjnn%89Gzz~~&78H2H##*&(C 	 		
 $* $006NN4(	#..t4__T*
&&t,__T*
$006&&t,$//5NN4(	 ((. ((.!6t!<'A$'G$    c                    t        d      S Nbrackets)array_formatr   r`   s    rb   qsz	OpenAI.qs        
33rc   c                (    | j                   }dd| iS NAuthorizationzBearer r6   r`   r6   s     rb   auth_headerszOpenAI.auth_headers        ,,77)!455rc   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)rP   r>   r8   r   r9   _custom_headersr`   ra   s    rb   r>   zOpenAI.default_headers   s`    
g%
!(8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
rc   r6   r8   r9   r;   r<   r@   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                  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)	r6   r8   r9   r;   r<   r@   r=   r>   r?    
ValueErrorru   _custom_query_clientra   r6   r8   r9   r;   
isinstancer   r<   r   r=   r`   r6   r8   r9   r;   r<   r@   r=   r>   rx   r?   ry   rz   headersparamss                  rb   copyzOpenAI.copy      & &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\t~~ 
+t||%:):):+t||.$.w$ADLLw#'/'<$BRBR# 
 
 	
rc   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   rO   status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   r`   err_msgr   r   datas        rb   _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Drc   )r6   r7   r8   r7   r9   r7   r;   str | httpx.URL | Noner<   %Union[float, Timeout, None, NotGiven]r=   intr>   Mapping[str, str] | Noner?   Mapping[str, object] | Noner@   httpx.Client | NonerA   boolreturnNoner   r   r   zdict[str, str]r   zdict[str, str | Omit])r6   r7   r8   r7   r9   r7   r;   r   r<   !float | Timeout | None | NotGivenr@   r   r=   int | NotGivenr>   r   rx   r   r?   r   ry   r   rz   Mapping[str, Any]r   r   r   r5   r   objectr   zhttpx.Responser   r   __name__
__module____qualname____annotations__r   r   rQ   propertyr   ri   rp   r>   r   with_optionsr   __classcell__ra   s   @rb   r    r    1   sa   &&
$$&&%%
,,77 L
 ##'"+/9B.4859 ,0 -2/OH OH !	OH
 OH )OH 7OH OH 2OH 3OH )OH. &*/OH0 
1OHb 4  4 6  6 
  
 ##'"+/5>+/&/488<599=+-1
 1
 !	1

 1
 )1
 31
 )1
 $1
 21
 61
 31
 71
 )1
 
1
j LEE 	E
 !E 
E Erc   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$
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d, fd%Zeed-d&              Z	eed.d'              Z
eed/ fd(              Zd"d"d"d"ed"ed"d"d"d"i d)	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0d*ZeZe	 	 	 	 	 	 	 	 d1d+       Z xZS )2r!   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:   c       
   
     V   |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        j.                  |       | _        t        j2                  |       | _        t        j6                  |       | _        t        j:                  |       | _        t        j>                  |       | _         t        jB                  |       | _"        t        jF                  |       | _$        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`
        NrC   rD   rE   rF   rG   rH   rI   ))rM   rN   rO   r   r6   r8   r9   rP   rQ   r   r   rR   r
   AsyncCompletionsr%   	AsyncChatr&   AsyncEmbeddingsr'   
AsyncFilesr(   AsyncImagesr)   
AsyncAudior*   AsyncModerationsr+   AsyncModelsr,   AsyncFineTuningr-   	AsyncBetar.   AsyncBatchesr/   AsyncUploadsr0   r   r2   r   r4   r_   s              rb   rQ   zAsyncOpenAI.__init__  s   @ ?jjnn%56G? V  ::>>/:L(?jjnn%89Gzz~~&78H2H##*&(C 	 		
 $/ $55d;''-	#33D9))$/
++D1))$/
$55d;++D1$44T:''-	 --d3 --d3!;D!A'Ft'L$rc   c                    t        d      S re   r   rh   s    rb   ri   zAsyncOpenAI.qsm  rj   rc   c                (    | j                   }dd| iS rl   rn   ro   s     rb   rp   zAsyncOpenAI.auth_headersr  rq   rc   c                    i t         |   dt                | j                  | j                  n	t	               | j
                  | j
                  n	t	               d| j                  S )Nzasync:rt   )rP   r>   r   r8   r   r9   ru   rv   s    rb   r>   zAsyncOpenAI.default_headersx  sl    
g%
#)*;*=)>!?8<8I8I8U4#4#4[_[a.2ll.FdllDF	

 ""
 	
rc   rw   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                  t        |t              r| j                  n||t        |      r|n| j                  ||d	|S r|   r~   r   s                  rb   r   zAsyncOpenAI.copy  r   rc   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        rb   r   zAsyncOpenAI._make_status_error  r   rc   )r6   r7   r8   r7   r9   r7   r;   r   r<   r   r=   r   r>   r   r?   r   r@   httpx.AsyncClient | NonerA   r   r   r   r   r   r   )r6   r7   r8   r7   r9   r7   r;   r   r<   r   r@   r   r=   r   r>   r   rx   r   r?   r   ry   r   rz   r   r   r   r   r   r   s   @rb   r!   r!     sa   ++
))!!++!!**
####11<< L
 ##'"+/9B.4859 15 -2/OM OM !	OM
 OM )OM 7OM OM 2OM 3OM .OM. &*/OM0 
1OMb 4  4 6  6 
  
 ##'"+/5>04&/488<599=+-1
 1
 !	1

 1
 )1
 31
 .1
 $1
 21
 61
 31
 71
 )1
 
1
j LEE 	E
 !E 
E Erc   r!   c                      e Zd ZddZy)r1   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.                  |j0                        | _        y N)r
   CompletionsWithRawResponser%   ChatWithRawResponser&   EmbeddingsWithRawResponser'   FilesWithRawResponser(   ImagesWithRawResponser)   AudioWithRawResponser*   ModerationsWithRawResponser+   ModelsWithRawResponser,   FineTuningWithRawResponser-   BetaWithRawResponser.   BatchesWithRawResponser/   UploadsWithRawResponser0   r`   clients     rb   rQ   zOpenAIWithRawResponse.__init__  s   $??@R@RS11&++>	#==f>O>OP33FLLA
55fmmD33FLLA
$??@R@RS55fmmD$>>v?Q?QR11&++>	 77G 77Grc   Nr   r    r   r   r   r   r   rQ   r}   rc   rb   r1   r1     s    Hrc   r1   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.                  |j0                        | _        y r   )r
   AsyncCompletionsWithRawResponser%   AsyncChatWithRawResponser&   AsyncEmbeddingsWithRawResponser'   AsyncFilesWithRawResponser(   AsyncImagesWithRawResponser)   AsyncAudioWithRawResponser*   AsyncModerationsWithRawResponser+   AsyncModelsWithRawResponser,   AsyncFineTuningWithRawResponser-   AsyncBetaWithRawResponser.   AsyncBatchesWithRawResponser/   AsyncUploadsWithRawResponser0   r   s     rb   rQ   z#AsyncOpenAIWithRawResponse.__init__  s   $DDVEWEWX66v{{C	#BB6CTCTU88F
::6==I88F
$DDVEWEWX::6==I$CCFDVDVW66v{{C	 <<V^^L <<V^^Lrc   Nr   r!   r   r   r   r}   rc   rb   r   r     s    Mrc   r   c                      e Zd ZddZy)r3   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.                  |j0                        | _        y r   )r
    CompletionsWithStreamingResponser%   ChatWithStreamingResponser&   EmbeddingsWithStreamingResponser'   FilesWithStreamingResponser(   ImagesWithStreamingResponser)   AudioWithStreamingResponser*    ModerationsWithStreamingResponser+   ModelsWithStreamingResponser,   FineTuningWithStreamingResponser-   BetaWithStreamingResponser.   BatchesWithStreamingResponser/   UploadsWithStreamingResponser0   r   s     rb   rQ   z#OpenAIWithStreamedResponse.__init__  s   $EEfFXFXY77D	#CCFDUDUV99&,,G
;;FMMJ99&,,G
$EEfFXFXY;;FMMJ$DDVEWEWX77D	 ==fnnM ==fnnMrc   Nr   r   r}   rc   rb   r3   r3     s    Nrc   r3   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.                  |j0                        | _        y r   )r
   %AsyncCompletionsWithStreamingResponser%   AsyncChatWithStreamingResponser&   $AsyncEmbeddingsWithStreamingResponser'   AsyncFilesWithStreamingResponser(    AsyncImagesWithStreamingResponser)   AsyncAudioWithStreamingResponser*   %AsyncModerationsWithStreamingResponser+    AsyncModelsWithStreamingResponser,   $AsyncFineTuningWithStreamingResponser-   AsyncBetaWithStreamingResponser.   !AsyncBatchesWithStreamingResponser/   !AsyncUploadsWithStreamingResponser0   r   s     rb   rQ   z(AsyncOpenAIWithStreamedResponse.__init__  s   $JJ6K]K]^<<V[[I	#HHIZIZ[>>v||L
@@O>>v||L
$JJ6K]K]^@@O$II&J\J\]<<V[[I	 BB6>>R BB6>>Rrc   Nr   r   r}   rc   rb   r   r     s    Src   r   )0
__future__r   rM   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}   rc   rb   <module>r     s    # 	 & & ,  $    
 " D 4 
SE] SElSE. SElH H M M N N S S  
rc   