o
    Í©Zh`  ã                   @  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 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„ de,ƒZ=G dd„ de-ƒZ>G dd„ dƒZ?G dd„ dƒZ@G dd „ d ƒZAG d!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                      óP  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*œdW‡ fd:d;„ZeedXd=d>„ƒƒZ	eedYd@dA„ƒƒZ
eedZ‡ fdCdD„ƒƒZd(d(d(d(d(ed(ed(d(d(d(i dEœd[dMdN„ZeZed\dUdV„ƒZ‡  ZS )]r,   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©r6   r8   r9   Úbase_urlr;   ÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ_strict_response_validationr=   r>   ú%Union[float, Timeout, None, NotGiven]r?   Úintr@   úMapping[str, str] | NonerA   úMapping[str, object] | NonerB   úhttpx.Client | NonerC   ÚboolÚreturnÚNonec             
     óf  |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 r<t j d¡}|du rBd}tƒ j	t
||||
||	|d t| _t | ¡| _t | ¡| _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_KEYúƒThe 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>   rB   Zcustom_headersZcustom_queryrC   )-ÚosÚenvironÚgetr    r6   r8   r9   r;   ÚsuperÚ__init__r   r   Ú_default_stream_clsr   ZCompletionsr&   ZChatr   Z
Embeddingsr   ZFilesr   ZImagesr'   ZAudior   ZModerationsr   ZModelsr*   Z
FineTuningr+   ZVectorStoresr%   ÚBetar   ZBatchesr(   ZUploadsr)   Z	Responsesr1   r2   r3   r4   ©Úselfr6   r8   r9   r=   r;   r>   r?   r@   rA   rB   rC   ©Ú	__class__© úE/var/www/html/lang_env/lib/python3.10/site-packages/openai/_client.pyrY   N   óZ   !ÿø
zOpenAI.__init__r   c                 C  ó
   t ddS ©NZbrackets)Zarray_formatr
   ©r]   r`   r`   ra   Úqs¤   ó   
z	OpenAI.qsúdict[str, str]c                 C  ó   | j }dd|› iS ©NÚAuthorizationzBearer ©r6   ©r]   r6   r`   r`   ra   Ú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)rX   r@   r8   r   r9   Ú_custom_headersre   r^   r`   ra   r@   ¯   s   ÿüûzOpenAI.default_headers©r6   r8   r9   r;   r=   r>   rB   r?   r@   Úset_default_headersrA   Úset_default_queryÚ_extra_kwargsú!float | Timeout | None | NotGivenúint | NotGivenru   rv   rw   ú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|p\| j	t
|tƒrd| jn||t|ƒrl|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)
r6   r8   r9   r;   r=   r>   rB   r?   r@   rA   r`   ©Ú
ValueErrorrs   Z_custom_queryZ_clientr_   r6   r8   r9   r;   r=   Ú
isinstancer   r>   r   r?   ©r]   r6   r8   r9   r;   r=   r>   rB   r?   r@   ru   rA   rv   rw   ÚheadersÚparamsr`   r`   ra   Úcopyº   ó:   
öõ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   rW   Ústatus_coder	   ZBadRequestErrorÚAuthenticationErrorZPermissionDeniedErrorZNotFoundErrorZConflictErrorZUnprocessableEntityErrorZRateLimitErrorZInternalServerErrorr!   ©r]   r…   r†   rˆ   Údatar`   r`   ra   Ú_make_status_erroró   ó$   







zOpenAI._make_status_error)r6   r7   r8   r7   r9   r7   r=   r:   r;   r:   r>   rD   r?   rE   r@   rF   rA   rG   rB   rH   rC   rI   rJ   rK   ©rJ   r   ©rJ   rh   ©rJ   rp   )r6   r7   r8   r7   r9   r7   r;   r:   r=   r:   r>   rx   rB   rH   r?   ry   r@   rF   ru   rF   rA   rG   rv   rG   rw   rz   rJ   r   ©r…   r5   r†   r‡   rˆ   r‰   rJ   r!   ©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   r"   rY   Úpropertyr   rf   rn   r@   rƒ   Zwith_optionsr’   Ú__classcell__r`   r`   r^   ra   r,   /   óx   
 
	èVñ7r,   c                      r0   )]r-   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)   ÚAsyncOpenAIWithRawResponser2   ÚAsyncOpenAIWithStreamedResponser4   r5   r6   r7   r8   r9   r:   r;   NFr<   r=   r>   rD   r?   rE   r@   rF   rA   rG   rB   úhttpx.AsyncClient | NonerC   rI   rJ   rK   c             
     rL   )	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`
        NrM   rN   rO   rP   rQ   rR   rS   )-rU   rV   rW   r    r6   r8   r9   r;   rX   rY   r   r   rZ   r   ZAsyncCompletionsr&   Z	AsyncChatr   ZAsyncEmbeddingsr   Z
AsyncFilesr   ZAsyncImagesr'   Z
AsyncAudior   ZAsyncModerationsr   ZAsyncModelsr*   ZAsyncFineTuningr+   ZAsyncVectorStoresr%   Z	AsyncBetar   ZAsyncBatchesr(   ZAsyncUploadsr)   ZAsyncResponsesr    r2   r¡   r4   r\   r^   r`   ra   rY   5  rb   zAsyncOpenAI.__init__r   c                 C  rc   rd   r
   re   r`   r`   ra   rf   ‹  rg   zAsyncOpenAI.qsrh   c                 C  ri   rj   rl   rm   r`   r`   ra   rn     ro   zAsyncOpenAI.auth_headersrp   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:rr   )rX   r@   r   r8   r   r9   rs   re   r^   r`   ra   r@   –  s   ÿ
üûzAsyncOpenAI.default_headersrt   rx   ry   ru   rv   rw   rz   r   c                C  r{   r|   r}   r€   r`   r`   ra   rƒ   ¡  r„   zAsyncOpenAI.copyr…   r†   r‡   rˆ   r‰   r!   c                C  rŠ   r‹   r   r   r`   r`   ra   r’   Ú  r“   zAsyncOpenAI._make_status_error)r6   r7   r8   r7   r9   r7   r=   r:   r;   r:   r>   rD   r?   rE   r@   rF   rA   rG   rB   r¢   rC   rI   rJ   rK   r”   r•   r–   )r6   r7   r8   r7   r9   r7   r;   r:   r=   r:   r>   rx   rB   r¢   r?   ry   r@   rF   ru   rF   rA   rG   rv   rG   rw   rz   rJ   r   r—   r˜   r`   r`   r^   ra   r-     rŸ   r-   c                   @  ó   e Zd Zddd„ZdS )	r1   Úclientr,   rJ   rK   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¡| _t |j¡| _t |j¡| _d S ©N)r   ZCompletionsWithRawResponser&   ZChatWithRawResponser   ZEmbeddingsWithRawResponser   ZFilesWithRawResponser   ZImagesWithRawResponser'   ZAudioWithRawResponser   ZModerationsWithRawResponser   ZModelsWithRawResponser*   ZFineTuningWithRawResponser+   ZVectorStoresWithRawResponser%   ZBetaWithRawResponser   ZBatchesWithRawResponser(   ZUploadsWithRawResponser)   ZResponsesWithRawResponse©r]   r¤   r`   r`   ra   rY   þ  ó   zOpenAIWithRawResponse.__init__N©r¤   r,   rJ   rK   ©r™   rš   r›   rY   r`   r`   r`   ra   r1   ý  ó    r1   c                   @  r£   )	r    r¤   r-   rJ   rK   c                 C  r¥   r¦   )r   ZAsyncCompletionsWithRawResponser&   ZAsyncChatWithRawResponser   ZAsyncEmbeddingsWithRawResponser   ZAsyncFilesWithRawResponser   ZAsyncImagesWithRawResponser'   ZAsyncAudioWithRawResponser   ZAsyncModerationsWithRawResponser   ZAsyncModelsWithRawResponser*   ZAsyncFineTuningWithRawResponser+   Z AsyncVectorStoresWithRawResponser%   ZAsyncBetaWithRawResponser   ZAsyncBatchesWithRawResponser(   ZAsyncUploadsWithRawResponser)   ZAsyncResponsesWithRawResponser§   r`   r`   ra   rY     r¨   z#AsyncOpenAIWithRawResponse.__init__N©r¤   r-   rJ   rK   rª   r`   r`   r`   ra   r      r«   r    c                   @  r£   )	r3   r¤   r,   rJ   rK   c                 C  r¥   r¦   )r   Z CompletionsWithStreamingResponser&   ZChatWithStreamingResponser   ZEmbeddingsWithStreamingResponser   ZFilesWithStreamingResponser   ZImagesWithStreamingResponser'   ZAudioWithStreamingResponser   Z ModerationsWithStreamingResponser   ZModelsWithStreamingResponser*   ZFineTuningWithStreamingResponser+   Z!VectorStoresWithStreamingResponser%   ZBetaWithStreamingResponser   ZBatchesWithStreamingResponser(   ZUploadsWithStreamingResponser)   ZResponsesWithStreamingResponser§   r`   r`   ra   rY   "  r¨   z#OpenAIWithStreamedResponse.__init__Nr©   rª   r`   r`   r`   ra   r3   !  r«   r3   c                   @  r£   )	r¡   r¤   r-   rJ   rK   c                 C  r¥   r¦   )r   Z%AsyncCompletionsWithStreamingResponser&   ZAsyncChatWithStreamingResponser   Z$AsyncEmbeddingsWithStreamingResponser   ZAsyncFilesWithStreamingResponser   Z AsyncImagesWithStreamingResponser'   ZAsyncAudioWithStreamingResponser   Z%AsyncModerationsWithStreamingResponser   Z AsyncModelsWithStreamingResponser*   Z$AsyncFineTuningWithStreamingResponser+   Z&AsyncVectorStoresWithStreamingResponser%   ZAsyncBetaWithStreamingResponser   Z!AsyncBatchesWithStreamingResponser(   Z!AsyncUploadsWithStreamingResponser)   Z#AsyncResponsesWithStreamingResponser§   r`   r`   ra   rY   4  r¨   z(AsyncOpenAIWithStreamedResponse.__init__Nr¬   rª   r`   r`   r`   ra   r¡   3  r«   r¡   )EÚ
__future__r   rU   Útypingr   r   r   Ztyping_extensionsr   r   ZhttpxÚ r	   Z_qsr   Ú_typesr   r   r   r   r   r   r   Ú_utilsr   r   r   Ú_versionr   Ú	resourcesr   r   r   r   r   r   r   Z
_streamingr   r   r    r!   Z_base_clientr"   r#   r$   Zresources.betar%   Zresources.chatr&   Zresources.audior'   Zresources.uploadsr(   Zresources.responsesr)   Zresources.fine_tuningr*   Zresources.vector_storesr+   Ú__all__r,   r-   r1   r    r3   r¡   r.   r/   r`   r`   r`   ra   Ú<module>   s@   $	$ h h