U
    Zhb)                  )   @  s  U d dl mZ d dl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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z:m;Z;m<Z< ddl=m>Z? ddl@mAZA 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/d0d1d2d3d4d5d6d7d8d9g)ZBejCsdd:lDmEZE dd;lFmGZHmIZI dd<lJmKZK dd=lLmMZMmNZN dd>lOT dd?lPmQZQmRZR e?  eS ZTeBD ]<ZUeUVd@s zdAeTeU _WW n eXeYfk
r8   Y nX q d dlZd dlZZd dl[Z\ddBl9m%Z%m&Z& da]dCe^dD< da_dCe^dE< da`dCe^dF< dZadGe^dH< e%abdIe^dJ< e&acdKe^dL< daddMe^dN< daedOe^dP< dafdQe^dR< eZjgdS ZheiehejjkdTaldUe^dV< ejjkdWamdCe^dX< ejjkdYandCe^dZ< ejjkd[aodCe^d\< dZpd]e^d^< G d_d` d`eZqG dadb dbeqeMZrG dcdd dde*ZsdedfdgdhZtdedfdidjZudedfdkdlZvdadme^dn< d0dfdodpZwdqdfdrdsZxddtlymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZmZ dS )u    )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DefaultAioHttpClient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/   r.   )	resources)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<   r3   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 rZ   3/tmp/pip-unpacked-wheel-693nel7n/openai/__init__.pyr>      s    z_ModuleClient.api_keyNone)valuerU   c                 C  s   |a d S rV   rW   rY   r]   rZ   rZ   r[   r>      s    c                 C  s   t S rV   r?   rX   rZ   rZ   r[   r?      s    z_ModuleClient.organizationc                 C  s   |a d S rV   r_   r^   rZ   rZ   r[   r?      s    c                 C  s   t S rV   r@   rX   rZ   rZ   r[   r@      s    z_ModuleClient.projectc                 C  s   |a d S rV   r`   r^   rZ   rZ   r[   r@      s    z
_httpx.URLc                   s   t d k	rtt S t j S rV   )rA   _httpxURLsuperrX   	__class__rZ   r[   rA      s    
z_ModuleClient.base_urlz_httpx.URL | str)urlrU   c                   s   |t  _d S rV   )rc   rA   )rY   rf   rd   rZ   r[   rA      s    rB   c                 C  s   t S rV   rC   rX   rZ   rZ   r[   rC      s    z_ModuleClient.timeoutc                 C  s   |a d S rV   rg   r^   rZ   rZ   r[   rC      s    rD   c                 C  s   t S rV   rE   rX   rZ   rZ   r[   rE      s    z_ModuleClient.max_retriesc                 C  s   |a d S rV   rh   r^   rZ   rZ   r[   rE      s    rF   c                 C  s   t S rV   rG   rX   rZ   rZ   r[   _custom_headers   s    z_ModuleClient._custom_headersc                 C  s   |a d S rV   ri   r^   rZ   rZ   r[   rj      s    rH   c                 C  s   t S rV   rI   rX   rZ   rZ   r[   _custom_query   s    z_ModuleClient._custom_queryc                 C  s   |a d S rV   rk   r^   rZ   rZ   r[   rl      s    z_httpx.Clientc                   s   t p
t jS rV   )rJ   rc   _clientrX   rd   rZ   r[   rm      s    z_ModuleClient._clientc                 C  s   |a d S rV   )rJ   r^   rZ   rZ   r[   rm      s    )__name__
__module____qualname__propertyr   r>   setterr?   r@   rA   rC   rE   rj   rl   rm   __classcell__rZ   rZ   rd   r[   rS      sZ   rS   c                   @  s   e Zd ZdS )_AzureModuleClientN)rn   ro   rp   rZ   rZ   rZ   r[   rt      s   rt   c                      s"   e Zd Zdd fddZ  ZS ) _AmbiguousModuleClientUsageErrorr\   rT   c                   s   t  d d S )NzAmbiguous use of module client; please set `openai.api_type` or the `OPENAI_API_TYPE` environment variable to `openai` or `azure`)rc   __init__rX   rd   rZ   r[   rv     s    z)_AmbiguousModuleClientUsageError.__init__)rn   ro   rp   rv   rs   rZ   rZ   rd   r[   ru     s   ru   boolrT   c                   C  s   t jdd k	S )NZOPENAI_API_KEY)_osenvirongetrZ   rZ   rZ   r[   _has_openai_credentials	  s    r{   c                   C  s   t d k	ptjdd k	S )NAZURE_OPENAI_API_KEY)rO   rx   ry   rz   rZ   rZ   rZ   r[   _has_azure_credentials  s    r}   c                   C  s    t jdd k	ptd k	ptd k	S )NrP   )rx   ry   rz   rQ   rR   rZ   rZ   rZ   r[   _has_azure_ad_credentials  s
    r~   zOpenAI | Nonerm   c                  C  s   t d krtd krtjdatd kr0tjdatd krDtjdatd krt } t	 }t
 }| rp|sj|rpt td k	std k	rtjdd k	rt |s|rdandatdkrt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 )	NrN   rP   rL   r|   r3   r<   )rM   rO   r>   rQ   rR   r?   rA   rC   rE   rG   rI   rJ   )	r>   r?   r@   rA   rC   rE   rG   rI   rJ   )rm   rO   rx   ry   rz   rQ   rM   rK   r{   r}   r~   ru   rR   rt   r>   r?   rA   rC   rE   rG   rI   rJ   rS   r@   )Z
has_openaiZ	has_azureZhas_azure_adrZ   rZ   r[   _load_client  sf    r   r\   c                   C  s   d a d S rV   )rm   rZ   rZ   rZ   r[   _reset_client^  s    r   )betachataudioevalsfilesimagesmodelsbatchesuploads	responses
containers
embeddingscompletionsfine_tuningmoderationsvector_stores)
__future__r   osrx   typingZ_tZtyping_extensionsr    r   _typesr   r   r   r	   r
   r   _utilsr   rm   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.   r/   Z_utils._logsr0   Z_setup_loggingZ_legacy_responser1   __all__TYPE_CHECKINGZ_utils._resources_proxyr2   libr3   Z_azurer4   versionr5   Z	lib.azurer6   r7   Zlib._old_apiZlib.streamingr9   r:   localsZ__localsZ__name
startswithro   	TypeErrorAttributeErrorZ_teZhttpxra   r>   __annotations__r?   r@   rA   rC   rE   rG   rI   rJ   LiteralZ_ApiTypecastry   rz   rK   rM   rO   rQ   rR   rS   rt   ru   r{   r}   r~   r   r   Z_module_clientr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rZ   rZ   rZ   r[   <module>   s     ,H,

iB