o
    CjiQK                     @  s0  d dl mZ d dl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 dd
lmZ ddlmZ ddl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+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)__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ddeedddd d!	dQ fd2d3ZeedRd5d6Z	eedSd8d9Z
eedT fd;d<Zdddededdddi d=dUdEdFZeZdVdGdHZedWdOdPZ  ZS )Xr   zresources.Completionscompletionszresources.Chatchatzresources.Editseditszresources.Embeddings
embeddingszresources.Filesfileszresources.Imagesimageszresources.Audioaudiozresources.Moderationsmoderationszresources.Modelsmodelszresources.FineTuningfine_tuningzresources.FineTunes
fine_tuneszresources.BetabetaOpenAIWithRawResponsewith_raw_responsestrapi_key
str | NoneorganizationNF	r2   r4   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationr6   str | httpx.URL | Noner7   %Union[float, Timeout, None, NotGiven]r8   intr9   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 r2d}t jt|||||||	d t	| _
t| | _t| | _t| | _t| | _t| | _t| | _t| | _t| | _t| | _t| | _t | | _!t"| | _#t$| | _%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versionr6   r8   r7   r;   custom_headerscustom_queryr<   )&osenvirongetr   r2   r4   super__init__r   r   _default_stream_clsr	   Completionsr#   Chatr$   Editsr%   
Embeddingsr&   Filesr'   Imagesr(   Audior)   Moderationsr*   Modelsr+   
FineTuningr,   	FineTunesr-   Betar.   r/   r0   
selfr2   r4   r6   r7   r8   r9   r:   r;   r<   	__class__ e/var/www/html/Resume-Parser/resume-parser-inhouse/venv/lib/python3.10/site-packages/openai/_client.pyrT   >   L   zOpenAI.__init__r   c                 C  
   t ddS Ncomma)array_formatr   rc   rf   rf   rg   qs      
z	OpenAI.qsdict[str, str]c                 C     | j }dd| iS NAuthorizationzBearer r2   rc   r2   rf   rf   rg   auth_headers      zOpenAI.auth_headersdict[str, str | Omit]c                   ,   i t  jd| jd ur| jnt i| jS NzOpenAI-OrganizationrS   r9   r4   r   _custom_headersrm   rd   rf   rg   r9         zOpenAI.default_headersr2   r4   r6   r7   r;   r8   r9   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|pVt| jt	|t
r^| jn||t|rf|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)r2   r4   r6   r7   r;   r8   r9   r:   rf   
ValueErrorr|   _custom_query_clientre   r2   r4   r1   r6   
isinstancer   r7   r   r8   rc   r2   r4   r6   r7   r;   r8   r9   r   r:   r   r   headersparamsrf   rf   rg   copy   6   
	zOpenAI.copyc                 C  s.   t | dr
t | dsd S | jrd S |   d S N_has_custom_http_clientclose)hasattrr   r   rm   rf   rf   rg   __del__   s
   zOpenAI.__del__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   rR   status_coder
   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   rc   r   r   r   datarf   rf   rg   _make_status_error   $   







zOpenAI._make_status_error)r2   r3   r4   r3   r6   r=   r7   r>   r8   r?   r9   r@   r:   rA   r;   rB   r<   rC   rD   rE   rD   r   rD   rp   rD   rx   )r2   r3   r4   r3   r6   r=   r7   r   r;   rB   r8   r   r9   r@   r   r@   r:   rA   r   rA   r   r   rD   r   rD   rE   r   r1   r   r   r   r   rD   r   __name__
__module____qualname____annotations__r   r   rT   propertyr   rn   rv   r9   r   with_optionsr   r   __classcell__rf   rf   rd   rg   r   +   sf   
 	H
3

r   c                      r"   )Xr   zresources.AsyncCompletionsr#   zresources.AsyncChatr$   zresources.AsyncEditsr%   zresources.AsyncEmbeddingsr&   zresources.AsyncFilesr'   zresources.AsyncImagesr(   zresources.AsyncAudior)   zresources.AsyncModerationsr*   zresources.AsyncModelsr+   zresources.AsyncFineTuningr,   zresources.AsyncFineTunesr-   zresources.AsyncBetar.   AsyncOpenAIWithRawResponser0   r1   r2   r3   r4   NFr5   r6   r=   r7   r>   r8   r?   r9   r@   r:   rA   r;   httpx.AsyncClient | Noner<   rC   rD   rE   c       	   
   
     rF   )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`
        NrG   rH   rI   rJ   rK   rL   )&rP   rQ   rR   r   r2   r4   rS   rT   r   r   rU   r	   AsyncCompletionsr#   	AsyncChatr$   
AsyncEditsr%   AsyncEmbeddingsr&   
AsyncFilesr'   AsyncImagesr(   
AsyncAudior)   AsyncModerationsr*   AsyncModelsr+   AsyncFineTuningr,   AsyncFineTunesr-   	AsyncBetar.   r   r0   rb   rd   rf   rg   rT     rh   zAsyncOpenAI.__init__r   c                 C  ri   rj   r   rm   rf   rf   rg   rn   W  ro   zAsyncOpenAI.qsrp   c                 C  rq   rr   rt   ru   rf   rf   rg   rv   \  rw   zAsyncOpenAI.auth_headersrx   c                   ry   rz   r{   rm   rd   rf   rg   r9   b  r}   zAsyncOpenAI.default_headersr~   r   r   r   r   r   r   r   c                C  r   r   r   r   rf   rf   rg   r   k  r   zAsyncOpenAI.copyc                 C  sP   t | dr
t | dsd S | jrd S zt |   W d S  ty'   Y d S w r   )r   r   asyncioget_running_loopcreate_taskr   	Exceptionrm   rf   rf   rg   r     s   zAsyncOpenAI.__del__r   r   r   r   r   r   c                C  r   r   r   r   rf   rf   rg   r     r   zAsyncOpenAI._make_status_error)r2   r3   r4   r3   r6   r=   r7   r>   r8   r?   r9   r@   r:   rA   r;   r   r<   rC   rD   rE   r   r   r   )r2   r3   r4   r3   r6   r=   r7   r   r;   r   r8   r   r9   r@   r   r@   r:   rA   r   rA   r   r   rD   r   r   r   r   rf   rf   rd   rg   r      sf   
 	H
3
r   c                   @     e Zd ZdddZdS )	r/   clientr   rD   rE   c                 C     t |j| _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$   EditsWithRawResponser%   EmbeddingsWithRawResponser&   FilesWithRawResponser'   ImagesWithRawResponser(   AudioWithRawResponser)   ModerationsWithRawResponser*   ModelsWithRawResponser+   FineTuningWithRawResponser,   FineTunesWithRawResponser-   BetaWithRawResponser.   rc   r   rf   rf   rg   rT        zOpenAIWithRawResponse.__init__N)r   r   rD   rE   r   r   r   rT   rf   rf   rf   rg   r/         r/   c                   @  r   )	r   r   r   rD   rE   c                 C  r   r   )r	   AsyncCompletionsWithRawResponser#   AsyncChatWithRawResponser$   AsyncEditsWithRawResponser%   AsyncEmbeddingsWithRawResponser&   AsyncFilesWithRawResponser'   AsyncImagesWithRawResponser(   AsyncAudioWithRawResponser)   AsyncModerationsWithRawResponser*   AsyncModelsWithRawResponser+   AsyncFineTuningWithRawResponser,   AsyncFineTunesWithRawResponser-   AsyncBetaWithRawResponser.   r   rf   rf   rg   rT     r   z#AsyncOpenAIWithRawResponse.__init__N)r   r   rD   rE   r   rf   rf   rf   rg   r     r   r   ).
__future__r   rP   r   typingr   r   r   typing_extensionsr   r   httpx r	   r
   _qsr   _typesr   r   r   r   r   r   r   _utilsr   r   _versionr   
_streamingr   r   r   r   _base_clientr   r   r   __all__r   r   r/   r   r    r!   rf   rf   rf   rg   <module>   s0   $	 R U