a
    ç‚ÄfÙV  ã                   @  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                      s|  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ddd%d&d'd(d)d*d+d,d-œ‡ fd.d/„Zeed0d1œd2d3„ƒƒZ	eed4d1œd5d6„ƒƒZ
eed7d1œ‡ fd8d9„ƒƒZd"d"d"d"ed"ed"d"d"d"i d:œdddd%d;d*d<d(d(d)d)d=d>d?œd@dA„ZeZeddBdCdDdEœdFdG„ƒZ‡  ZS )Hr   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©
r4   r6   r7   Úbase_urlÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ_strict_response_validationústr | httpx.URL | Noneú%Union[float, Timeout, None, NotGiven]ÚintúMapping[str, str] | NoneúMapping[str, object] | Nonezhttpx.Client | NoneÚboolÚNone©r4   r6   r7   r9   r:   r;   r<   r=   r>   r?   Úreturnc       
      
     sH  |du rt j d¡}|du r$tdƒ‚|| _|du r>t j d¡}|| _|du rXt j d¡}|| _|du rrt j d¡}|du r~d}tƒ jt	||||	|||
d 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©Úversionr9   r;   r:   r>   Zcustom_headersZcustom_queryr?   ))ÚosÚenvironÚgetr   r4   r6   r7   Ú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+   ÚBetar,   ZBatchesr-   ZUploadsr.   r/   r0   r1   r2   ©Úselfr4   r6   r7   r9   r:   r;   r<   r=   r>   r?   ©Ú	__class__© úG/var/www/ai-form-bot/venv/lib/python3.9/site-packages/openai/_client.pyrU   F   sT     ÿø
zOpenAI.__init__r   ©rH   c                 C  s
   t ddS ©NZbrackets)Zarray_formatr   ©rY   r\   r\   r]   Úqs—   s    z	OpenAI.qsúdict[str, str]c                 C  s   | j }dd|› iS ©NÚAuthorizationzBearer ©r4   ©rY   r4   r\   r\   r]   Úauth_headersœ   s    zOpenAI.auth_headersúdict[str, str | Omit]c                   sB   i t ƒ j¥d| jd ur| jntƒ | jd ur0| jntƒ dœ¥| j¥S )NÚfalse©zX-Stainless-AsynczOpenAI-OrganizationzOpenAI-Project)rT   r<   r6   r   r7   Ú_custom_headersr`   rZ   r\   r]   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 | NotGivenúMapping[str, Any]r   ©r4   r6   r7   r9   r:   r>   r;   r<   rm   r=   rn   ro   rH   c                C  sä   |dur|	durt dƒ‚|
dur0|dur0t dƒ‚| j}|durLi |¥|¥}n|	durX|	}| j}|
durti |¥|
¥}n|dur€|}|pˆ| j}| jf |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)	r4   r6   r7   r9   r:   r>   r;   r<   r=   ©Ú
ValueErrorrk   Z_custom_queryZ_clientr[   r4   r6   r7   r9   Ú
isinstancer   r:   r   r;   ©rY   r4   r6   r7   r9   r:   r>   r;   r<   rm   r=   rn   ro   ÚheadersÚparamsr\   r\   r]   Úcopy­   s8    
÷
özOpenAI.copyÚobjectúhttpx.Responser   ©Úerr_msgÚbodyÚresponserH   c                C  sö   t |ƒr| d|¡n|}|jdkr2tj|||dS |jdkrLtj|||dS |jdkrftj|||dS |jdkr€tj|||dS |jdkrštj|||dS |jdkr´tj	|||dS |jd	krÎtj
|||dS |jd
krètj|||dS t|||dS ©NÚerrori  )r   r€   i‘  i“  i”  i™  i¦  i­  iô  ©r   rS   Ústatus_coder
   ZBadRequestErrorÚAuthenticationErrorZPermissionDeniedErrorZNotFoundErrorZConflictErrorZUnprocessableEntityErrorZRateLimitErrorZInternalServerErrorr   ©rY   r   r€   r   Údatar\   r\   r]   Ú_make_status_errorä   s$    







zOpenAI._make_status_error©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   r   rU   Úpropertyr   ra   rg   r<   r{   Zwith_optionsr‰   Ú__classcell__r\   r\   rZ   r]   r   1   sj   
	é*Qò*5r   c                      s|  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ddd%d&d'd(d)d*d+d,d-œ‡ fd.d/„Zeed0d1œd2d3„ƒƒZ	eed4d1œd5d6„ƒƒZ
eed7d1œ‡ fd8d9„ƒƒZd"d"d"d"ed"ed"d"d"d"i d:œdddd%d;d*d<d(d(d)d)d=d>d?œd@dA„ZeZeddBdCdDdEœdFdG„ƒZ‡  ZS )Hr    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.AsyncUploadsr.   ÚAsyncOpenAIWithRawResponser0   ÚAsyncOpenAIWithStreamedResponser2   r3   r4   r5   r6   r7   NFr8   r@   rA   rB   rC   rD   zhttpx.AsyncClient | NonerE   rF   rG   c       
      
     sH  |du rt j d¡}|du r$tdƒ‚|| _|du r>t j d¡}|| _|du rXt j d¡}|| _|du rrt j d¡}|du r~d}tƒ jt	||||	|||
d t
| _t | ¡| _t | ¡| _t | ¡| _t | ¡| _t | ¡| _t | ¡| _t | ¡| _t | ¡| _t | ¡| _t | ¡| _ t !| ¡| _"t #| ¡| _$t%| ƒ| _&t'| ƒ| _(dS )	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`
        NrI   rJ   rK   rL   rM   rN   rO   ))rQ   rR   rS   r   r4   r6   r7   rT   rU   r   r   rV   r	   ZAsyncCompletionsr#   Z	AsyncChatr$   ZAsyncEmbeddingsr%   Z
AsyncFilesr&   ZAsyncImagesr'   Z
AsyncAudior(   ZAsyncModerationsr)   ZAsyncModelsr*   ZAsyncFineTuningr+   Z	AsyncBetar,   ZAsyncBatchesr-   ZAsyncUploadsr.   r‘   r0   r’   r2   rX   rZ   r\   r]   rU     sT     ÿø
zAsyncOpenAI.__init__r   r^   c                 C  s
   t ddS r_   r   r`   r\   r\   r]   ra   m  s    zAsyncOpenAI.qsrb   c                 C  s   | j }dd|› iS rc   re   rf   r\   r\   r]   rg   r  s    zAsyncOpenAI.auth_headersrh   c                   sJ   i t ƒ j¥dtƒ › | jd ur$| jntƒ | jd ur8| jntƒ dœ¥| j¥S )Nzasync:rj   )rT   r<   r   r6   r   r7   rk   r`   rZ   r\   r]   r<   x  s    ÿ
üûzAsyncOpenAI.default_headersrl   rp   rq   rr   r   rs   c                C  sä   |dur|	durt dƒ‚|
dur0|dur0t dƒ‚| j}|durLi |¥|¥}n|	durX|	}| j}|
durti |¥|
¥}n|dur€|}|pˆ| j}| jf |p˜| j|p | j|p¨| j|p°| jt	|t
ƒrÀ| jn||t|ƒrÐ|n| j||dœ	|¤ŽS rt   ru   rx   r\   r\   r]   r{   ƒ  s8    
÷
özAsyncOpenAI.copyr|   r}   r   r~   c                C  sö   t |ƒr| d|¡n|}|jdkr2tj|||dS |jdkrLtj|||dS |jdkrftj|||dS |jdkr€tj|||dS |jdkrštj|||dS |jdkr´tj	|||dS |jd	krÎtj
|||dS |jd
krètj|||dS t|||dS r‚   r„   r‡   r\   r\   r]   r‰   º  s$    







zAsyncOpenAI._make_status_errorrŠ   r\   r\   rZ   r]   r      sj   
	é*Qò*5r    c                   @  s   e Zd Zdddœdd„ZdS )r/   r   rF   ©ÚclientrH   c                 C  s¬   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BetaWithRawResponser,   ZBatchesWithRawResponser-   ZUploadsWithRawResponser.   ©rY   r”   r\   r\   r]   rU   Þ  s    zOpenAIWithRawResponse.__init__N©r‹   rŒ   r   rU   r\   r\   r\   r]   r/   Ý  s   r/   c                   @  s   e Zd Zdddœdd„ZdS )r‘   r    rF   r“   c                 C  s¬   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 r•   )r	   ZAsyncCompletionsWithRawResponser#   ZAsyncChatWithRawResponser$   ZAsyncEmbeddingsWithRawResponser%   ZAsyncFilesWithRawResponser&   ZAsyncImagesWithRawResponser'   ZAsyncAudioWithRawResponser(   ZAsyncModerationsWithRawResponser)   ZAsyncModelsWithRawResponser*   ZAsyncFineTuningWithRawResponser+   ZAsyncBetaWithRawResponser,   ZAsyncBatchesWithRawResponser-   ZAsyncUploadsWithRawResponser.   r–   r\   r\   r]   rU   î  s    z#AsyncOpenAIWithRawResponse.__init__Nr—   r\   r\   r\   r]   r‘   í  s   r‘   c                   @  s   e Zd Zdddœdd„ZdS )r1   r   rF   r“   c                 C  s¬   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 r•   )r	   Z CompletionsWithStreamingResponser#   ZChatWithStreamingResponser$   ZEmbeddingsWithStreamingResponser%   ZFilesWithStreamingResponser&   ZImagesWithStreamingResponser'   ZAudioWithStreamingResponser(   Z ModerationsWithStreamingResponser)   ZModelsWithStreamingResponser*   ZFineTuningWithStreamingResponser+   ZBetaWithStreamingResponser,   ZBatchesWithStreamingResponser-   ZUploadsWithStreamingResponser.   r–   r\   r\   r]   rU   þ  s    z#OpenAIWithStreamedResponse.__init__Nr—   r\   r\   r\   r]   r1   ý  s   r1   c                   @  s   e Zd Zdddœdd„ZdS )r’   r    rF   r“   c                 C  s¬   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 r•   )r	   Z%AsyncCompletionsWithStreamingResponser#   ZAsyncChatWithStreamingResponser$   Z$AsyncEmbeddingsWithStreamingResponser%   ZAsyncFilesWithStreamingResponser&   Z AsyncImagesWithStreamingResponser'   ZAsyncAudioWithStreamingResponser(   Z%AsyncModerationsWithStreamingResponser)   Z AsyncModelsWithStreamingResponser*   Z$AsyncFineTuningWithStreamingResponser+   ZAsyncBetaWithStreamingResponser,   Z!AsyncBatchesWithStreamingResponser-   Z!AsyncUploadsWithStreamingResponser.   r–   r\   r\   r]   rU     s    z(AsyncOpenAIWithStreamedResponse.__init__Nr—   r\   r\   r\   r]   r’     s   r’   )0Ú
__future__r   rQ   Útypingr   r   r   Útyping_extensionsr   r   ZhttpxÚ r	   r
   Z_qsr   Ú_typesr   r   r   r   r   r   r   Z_utilsr   r   r   Ú_versionr   Z
_streamingr   r   r   r   Z_base_clientr   r   r   Ú__all__r   r    r/   r‘   r1   r’   r!   r"   r\   r\   r\   r]   Ú<module>   s.   $	 W W