U
    ·ÜŸj¤(  ã                (   @  sê  U d dl 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 ddlmZ ddlmZmZmZmZmZmZ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% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z< ddl=m>Z> dddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8g(Z?dd9l@mAZBmCZC dd:lDmEZE dd;lFmGZGmHZH dd<lIT dd=lJmKZKmLZL e<ƒ  eMƒ ZNe?D ]<ZOeO Pd>¡�sÞzd?eNeO _QW n eReSfk
�r   Y nX �qÞd dlTZUd dlZVd dlWZXdd@l7m#Z#m$Z$ daYdAeZdB< da[dAeZdC< da\dAeZdD< dZ]dEeZdF< e#a^dGeZdH< e$a_dIeZdJ< da`dKeZdL< daadMeZdN< dabdOeZdP< eVjcdQ ZdeU eedejf gdR¡¡ahdSeZdT< ejf gdU¡aidAeZdV< ejf gdW¡ajdAeZdX< ejf gdY¡akdAeZdZ< dZld[eZd\< G d]d^„ d^eƒZmG d_d`„ d`emeGƒZnG dadb„ dbe(ƒZodcddœdedf„Zpdcddœdgdh„Zqdcddœdidj„ZrdadkeZdl< d0ddœdmdn„Zsdoddœdpdq„ZtddrlumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„ dS )sé    )ÚannotationsN)Úoverrideé   )Útypes)Ú	NOT_GIVENÚOmitÚNoneTypeÚNotGivenÚ	TransportÚProxiesTypes)Úfile_from_path)	ÚClientÚOpenAIÚStreamÚTimeoutr
   ÚAsyncClientÚAsyncOpenAIÚAsyncStreamÚRequestOptions)Ú	BaseModel)Ú	__title__Ú__version__)ÚAPIResponseÚAsyncAPIResponse)ÚDEFAULT_TIMEOUTÚDEFAULT_MAX_RETRIESÚDEFAULT_CONNECTION_LIMITS)ÚAPIErrorÚOpenAIErrorÚConflictErrorÚNotFoundErrorÚAPIStatusErrorÚRateLimitErrorÚAPITimeoutErrorÚBadRequestErrorÚAPIConnectionErrorÚAuthenticationErrorÚInternalServerErrorÚPermissionDeniedErrorÚLengthFinishReasonErrorÚUnprocessableEntityErrorÚAPIResponseValidationErrorÚContentFilterFinishReasonError)ÚDefaultHttpxClientÚDefaultAsyncHttpxClient)Úsetup_logging)ÚHttpxBinaryResponseContentr   r   r   r   r
   r   r	   r   r   r   r   r!   r#   r%   r+   r$   r&   r(   r    r   r*   r"   r'   r)   r,   r   r   r   r   r   r   r   r   r   r   r   r   r   r-   r.   )ÚazureÚpydantic_function_tool)ÚVERSION)ÚAzureOpenAIÚAsyncAzureOpenAI)Ú*)ÚAssistantEventHandlerÚAsyncAssistantEventHandlerÚ__Úopenai)r   r   ú
str | NoneÚapi_keyÚorganizationÚprojectzstr | _httpx.URL | NoneÚbase_urlúfloat | Timeout | NoneÚtimeoutÚintÚmax_retriesú_t.Mapping[str, str] | NoneÚdefault_headersú_t.Mapping[str, object] | NoneÚdefault_queryz_httpx.Client | NoneÚhttp_client)r:   r1   ZOPENAI_API_TYPEz_ApiType | NoneÚapi_typeÚOPENAI_API_VERSIONÚapi_versionÚAZURE_OPENAI_ENDPOINTÚazure_endpointÚAZURE_OPENAI_AD_TOKENÚazure_ad_tokenz"_azure.AzureADTokenProvider | NoneÚazure_ad_token_providerc                      s¨  e Zd Zeeddœdd„ƒƒZejdddœdd„ƒZeeddœdd	„ƒƒZejdddœd
d	„ƒZeeddœdd„ƒƒZejdddœdd„ƒZeeddœ‡ fdd„ƒƒZ	e	jdddœ‡ fdd„ƒZ	eeddœdd„ƒƒZ
e
jdddœdd„ƒZ
eeddœdd„ƒƒZejdddœdd„ƒZeeddœdd„ƒƒZejdddœdd„ƒZeed dœd!d"„ƒƒZejd ddœd#d"„ƒZeed$dœ‡ fd%d&„ƒƒZejd$ddœd'd&„ƒZ‡  ZS )(Ú_ModuleClientr;   ©Úreturnc                 C  s   t S ©N©r<   ©Úself© rX   ú3/tmp/pip-unpacked-wheel-2qj3ofc_/openai/__init__.pyr<   ”   s    z_ModuleClient.api_keyÚNone)ÚvaluerS   c                 C  s   |a d S rT   rU   ©rW   r[   rX   rX   rY   r<   ™   s    c                 C  s   t S rT   ©r=   rV   rX   rX   rY   r=   Ÿ   s    z_ModuleClient.organizationc                 C  s   |a d S rT   r]   r\   rX   rX   rY   r=   ¤   s    c                 C  s   t S rT   ©r>   rV   rX   rX   rY   r>   ª   s    z_ModuleClient.projectc                 C  s   |a d S rT   r^   r\   rX   rX   rY   r>   ¯   s    z
_httpx.URLc                   s   t d k	rt t ¡S tƒ j S rT   )r?   Ú_httpxÚURLÚsuperrV   ©Ú	__class__rX   rY   r?   µ   s    
z_ModuleClient.base_urlz_httpx.URL | str)ÚurlrS   c                   s   |t ƒ _d S rT   )ra   r?   )rW   rd   rb   rX   rY   r?   ½   s    r@   c                 C  s   t S rT   ©rA   rV   rX   rX   rY   rA   Á   s    z_ModuleClient.timeoutc                 C  s   |a d S rT   re   r\   rX   rX   rY   rA   Æ   s    rB   c                 C  s   t S rT   ©rC   rV   rX   rX   rY   rC   Ì   s    z_ModuleClient.max_retriesc                 C  s   |a d S rT   rf   r\   rX   rX   rY   rC   Ñ   s    rD   c                 C  s   t S rT   ©rE   rV   rX   rX   rY   Ú_custom_headers×   s    z_ModuleClient._custom_headersc                 C  s   |a d S rT   rg   r\   rX   rX   rY   rh   Ü   s    rF   c                 C  s   t S rT   ©rG   rV   rX   rX   rY   Ú_custom_queryâ   s    z_ModuleClient._custom_queryc                 C  s   |a d S rT   ri   r\   rX   rX   rY   rj   ç   s    z_httpx.Clientc                   s   t p
tƒ jS rT   )rH   ra   Ú_clientrV   rb   rX   rY   rk   í   s    z_ModuleClient._clientc                 C  s   |a d S rT   )rH   r\   rX   rX   rY   rk   ò   s    )Ú__name__Ú
__module__Ú__qualname__Úpropertyr   r<   Úsetterr=   r>   r?   rA   rC   rh   rj   rk   Ú__classcell__rX   rX   rb   rY   rQ   �   sZ   rQ   c                   @  s   e Zd ZdS )Ú_AzureModuleClientN)rl   rm   rn   rX   rX   rX   rY   rr   ù   s   rr   c                      s"   e Zd Zddœ‡ fdd„Z‡  ZS )Ú _AmbiguousModuleClientUsageErrorrZ   rR   c                   s   t ƒ  d¡ d S )Nz�Ambiguous use of module client; please set `openai.api_type` or the `OPENAI_API_TYPE` environment variable to `openai` or `azure`)ra   Ú__init__rV   rb   rX   rY   rt   þ   s    ÿz)_AmbiguousModuleClientUsageError.__init__)rl   rm   rn   rt   rq   rX   rX   rb   rY   rs   ý   s   rs   ÚboolrR   c                   C  s   t j d¡d k	S )NZOPENAI_API_KEY)Ú_osÚenvironÚgetrX   rX   rX   rY   Ú_has_openai_credentials  s    ry   c                   C  s   t d k	ptj d¡d k	S )NÚAZURE_OPENAI_API_KEY)rM   rv   rw   rx   rX   rX   rX   rY   Ú_has_azure_credentials  s    r{   c                   C  s    t j d¡d k	ptd k	ptd k	S )NrN   )rv   rw   rx   rO   rP   rX   rX   rX   rY   Ú_has_azure_ad_credentials  s
    ÿýr|   zOpenAI | Nonerk   c                  C  sö   t d kròtd krtj d¡atd kr0tj d¡atd krDtj d¡atd kr¨tƒ } t	ƒ }t
ƒ }| rp|sj|rptƒ ‚td k	s€td k	r–tj d¡d k	r–tƒ ‚|sž|r¤dandatdkrÔtttttttttttttd�a t S ttttttttttd�	a t S t S )	NrL   rN   rJ   rz   r1   r:   )rK   rM   r<   rO   rP   r=   r?   rA   rC   rE   rG   rH   )	r<   r=   r>   r?   rA   rC   rE   rG   rH   )rk   rM   rv   rw   rx   rO   rK   rI   ry   r{   r|   rs   rP   rr   r<   r=   r?   rA   rC   rE   rG   rH   rQ   r>   )Z
has_openaiZ	has_azureZhas_azure_adrX   rX   rY   Ú_load_client  sf    ÿþô÷r}   rZ   c                   C  s   d a d S rT   )rk   rX   rX   rX   rY   Ú_reset_clientY  s    r~   )ÚbetaÚchatÚaudioÚevalsÚfilesÚimagesÚmodelsÚbatchesÚuploadsÚ	responsesÚ
embeddingsÚcompletionsÚfine_tuningÚmoderationsÚvector_stores)…Ú
__future__r   Úosrv   Útyping_extensionsr   Ú r   Ú_typesr   r   r   r	   r
   r   Ú_utilsr   rk   r   r   r   r   r   r   r   r   Z_modelsr   Ú_versionr   r   Ú	_responser   r   Ú
_constantsr   r   r   Ú_exceptionsr   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   Z_base_clientr-   r.   Z_utils._logsr/   Z_setup_loggingZ_legacy_responser0   Ú__all__Úlibr1   Z_azurer2   Úversionr3   Z	lib.azurer4   r5   Zlib._old_apiZlib.streamingr7   r8   ÚlocalsZ__localsZ__nameÚ
startswithrm   Ú	TypeErrorÚAttributeErrorÚtypingZ_tZ_teZhttpxr_   r<   Ú__annotations__r=   r>   r?   rA   rC   rE   rG   rH   ÚLiteralZ_ApiTypeÚcastrw   rx   rI   rK   rM   rO   rP   rQ   rr   rs   ry   r{   r|   r}   r~   Z_module_clientr   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rX   rX   rX   rY   Ú<module>   sÄ     ,HØ+

iB