o
    +ifT                     @  s@  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 de%Z(G dd de&Z)G dd dZ*G dd dZ+G dd dZ,G d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 d d d eed d d d!d"
dP fd3d4ZeedQd6d7Z	eedRd9d:Z
eedS fd<d=Zd d d d ed ed d d d i d>dTdFdGZeZedUdNdOZ  ZS )Vr   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batchesOpenAIWithRawResponsewith_raw_responseOpenAIWithStreamedResponsewith_streaming_responsestrapi_key
str | NoneorganizationprojectNF
r4   r6   r7   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationr9   str | httpx.URL | Noner:   %Union[float, Timeout, None, NotGiven]r;   intr<   Mapping[str, str] | Noner=   Mapping[str, object] | Noner>   httpx.Client | Noner?   boolreturnNonec       
      
     <  |du r
t jd}|du rtd|| _|du rt jd}|| _|du r,t jd}|| _|du r9t jd}|du r?d}t jt	||||	|||
d t
| _t| | _t| | _t| | _t| | _t| | _t| | _t| | _t| | _t| | _t| | _ t!| | _"t#| | _$t%| | _&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versionr9   r;   r:   r>   custom_headerscustom_queryr?   )'osenvirongetr   r4   r6   r7   super__init__r   r   _default_stream_clsr	   Completionsr$   Chatr%   
Embeddingsr&   Filesr'   Imagesr(   Audior)   Moderationsr*   Modelsr+   
FineTuningr,   Betar-   Batchesr.   r/   r0   r1   r2   selfr4   r6   r7   r9   r:   r;   r<   r=   r>   r?   	__class__ G/var/www/html/corbot_env/lib/python3.10/site-packages/openai/_client.pyrX   E   R    
zOpenAI.__init__r   c                 C  
   t ddS Ncomma)array_formatr   rf   ri   ri   rj   qs      
z	OpenAI.qsdict[str, str]c                 C     | j }dd| iS NAuthorizationzBearer r4   rf   r4   ri   ri   rj   auth_headers      zOpenAI.auth_headersdict[str, str | Omit]c                   sB   i t  jd| jd ur| jnt | jd ur| jnt d| jS )NfalsezX-Stainless-AsynczOpenAI-OrganizationzOpenAI-Project)rW   r<   r6   r   r7   _custom_headersrp   rg   ri   rj   r<      s   zOpenAI.default_headersr4   r6   r7   r9   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                C     |dur|	durt d|
dur|durt d| j}|dur&i ||}n|	dur,|	}| j}|
dur:i ||
}n|dur@|}|pD| j}| jd|pL| j|pP| j|pT| j|pX| jt	|t
r`| jn||t|rh|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   r7   r9   r:   r>   r;   r<   r=   ri   
ValueErrorr~   _custom_query_clientrh   r4   r6   r7   r9   
isinstancer   r:   r   r;   rf   r4   r6   r7   r9   r:   r>   r;   r<   r   r=   r   r   headersparamsri   ri   rj   copy   8   

zOpenAI.copyerr_msgbodyobjectresponsehttpx.Responser   c                C     t |r
|d|n|}|jdkrtj|||dS |jdkr&tj|||dS |jdkr3tj|||dS |jdkr@tj|||dS |jdkrMtj|||dS |jdkrZtj	|||dS |jd	krgtj
|||dS |jd
krttj|||dS t|||dS Nerrori  )r   r   i  i  i  i  i  i  i  r   rV   status_coder
   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   rf   r   r   r   datari   ri   rj   _make_status_error   $   







zOpenAI._make_status_error)r4   r5   r6   r5   r7   r5   r9   r@   r:   rA   r;   rB   r<   rC   r=   rD   r>   rE   r?   rF   rG   rH   rG   r   rG   rs   rG   r{   )r4   r5   r6   r5   r7   r5   r9   r@   r:   r   r>   rE   r;   r   r<   rC   r   rC   r=   rD   r   rD   r   r   rG   r   r   r3   r   r   r   r   rG   r   __name__
__module____qualname____annotations__r   r   rX   propertyr   rq   ry   r<   r   with_optionsr   __classcell__ri   ri   rg   rj   r   1   j   
 	P5r   c                      r#   )Vr    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.   AsyncOpenAIWithRawResponser0   AsyncOpenAIWithStreamedResponser2   r3   r4   r5   r6   r7   NFr8   r9   r@   r:   rA   r;   rB   r<   rC   r=   rD   r>   httpx.AsyncClient | Noner?   rF   rG   rH   c       
      
     rI   )	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`
        NrJ   rK   rL   rM   rN   rO   rP   )'rT   rU   rV   r   r4   r6   r7   rW   rX   r   r   rY   r	   AsyncCompletionsr$   	AsyncChatr%   AsyncEmbeddingsr&   
AsyncFilesr'   AsyncImagesr(   
AsyncAudior)   AsyncModerationsr*   AsyncModelsr+   AsyncFineTuningr,   	AsyncBetar-   AsyncBatchesr.   r   r0   r   r2   re   rg   ri   rj   rX     rk   zAsyncOpenAI.__init__r   c                 C  rl   rm   r   rp   ri   ri   rj   rq   i  rr   zAsyncOpenAI.qsrs   c                 C  rt   ru   rw   rx   ri   ri   rj   ry   n  rz   zAsyncOpenAI.auth_headersr{   c                   sJ   i t  jdt  | jd ur| jnt | jd ur| jnt d| jS )Nzasync:r}   )rW   r<   r   r6   r   r7   r~   rp   rg   ri   rj   r<   t  s   
zAsyncOpenAI.default_headersr   r   r   r   r   r   r   r   c                C  r   r   r   r   ri   ri   rj   r     r   zAsyncOpenAI.copyr   r   r   r   r   r   c                C  r   r   r   r   ri   ri   rj   r     r   zAsyncOpenAI._make_status_error)r4   r5   r6   r5   r7   r5   r9   r@   r:   rA   r;   rB   r<   rC   r=   rD   r>   r   r?   rF   rG   rH   r   r   r   )r4   r5   r6   r5   r7   r5   r9   r@   r:   r   r>   r   r;   r   r<   rC   r   rC   r=   rD   r   rD   r   r   rG   r   r   r   ri   ri   rg   rj   r      r   r    c                   @     e Zd ZdddZdS )	r/   clientr   rG   rH   c                 C     t |j| _t |j| _t |j| _t |j| _t 	|j
| _
t |j| _t |j| _t |j| _t |j| _t |j| _t |j| _d S N)r	   CompletionsWithRawResponser$   ChatWithRawResponser%   EmbeddingsWithRawResponser&   FilesWithRawResponser'   ImagesWithRawResponser(   AudioWithRawResponser)   ModerationsWithRawResponser*   ModelsWithRawResponser+   FineTuningWithRawResponser,   BetaWithRawResponser-   BatchesWithRawResponser.   rf   r   ri   ri   rj   rX        zOpenAIWithRawResponse.__init__Nr   r   rG   rH   r   r   r   rX   ri   ri   ri   rj   r/         r/   c                   @  r   )	r   r   r    rG   rH   c                 C  r   r   )r	   AsyncCompletionsWithRawResponser$   AsyncChatWithRawResponser%   AsyncEmbeddingsWithRawResponser&   AsyncFilesWithRawResponser'   AsyncImagesWithRawResponser(   AsyncAudioWithRawResponser)   AsyncModerationsWithRawResponser*   AsyncModelsWithRawResponser+   AsyncFineTuningWithRawResponser,   AsyncBetaWithRawResponser-   AsyncBatchesWithRawResponser.   r   ri   ri   rj   rX     r   z#AsyncOpenAIWithRawResponse.__init__Nr   r    rG   rH   r   ri   ri   ri   rj   r     r   r   c                   @  r   )	r1   r   r   rG   rH   c                 C  r   r   )r	    CompletionsWithStreamingResponser$   ChatWithStreamingResponser%   EmbeddingsWithStreamingResponser&   FilesWithStreamingResponser'   ImagesWithStreamingResponser(   AudioWithStreamingResponser)    ModerationsWithStreamingResponser*   ModelsWithStreamingResponser+   FineTuningWithStreamingResponser,   BetaWithStreamingResponser-   BatchesWithStreamingResponser.   r   ri   ri   rj   rX     r   z#OpenAIWithStreamedResponse.__init__Nr   r   ri   ri   ri   rj   r1     r   r1   c                   @  r   )	r   r   r    rG   rH   c                 C  r   r   )r	   %AsyncCompletionsWithStreamingResponser$   AsyncChatWithStreamingResponser%   $AsyncEmbeddingsWithStreamingResponser&   AsyncFilesWithStreamingResponser'    AsyncImagesWithStreamingResponser(   AsyncAudioWithStreamingResponser)   %AsyncModerationsWithStreamingResponser*    AsyncModelsWithStreamingResponser+   $AsyncFineTuningWithStreamingResponser,   AsyncBetaWithStreamingResponser-   !AsyncBatchesWithStreamingResponser.   r   ri   ri   rj   rX     r   z(AsyncOpenAIWithStreamedResponse.__init__Nr   r   ri   ri   ri   rj   r     r   r   )0
__future__r   rT   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"   ri   ri   ri   rj   <module>   s0   $	 U U