U
    ~fh:+                  *   @  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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z= ddl>m?Z@ ddlAmBZB 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/d0d1d2d3d4d5d6d7d8d9d:g*ZCejDsdd;lEmFZF dd<lGmHZImJZJ dd=lKmLZL dd>lMmNZNmOZO dd?lPT dd@lQmRZRmSZS e@  eT ZUeCD ]<ZVeVWdAszdBeUeV _XW n eYeZfk
r>   Y nX qd dlZd dlZ[d dl\Z]ddCl:m%Z%m&Z& da^dDe_dE< da`dDe_dF< daadDe_dG< dabdDe_dH< dZcdIe_dJ< e%addKe_dL< e&aedMe_dN< dafdOe_dP< dagdQe_dR< dahdSe_dT< e[jidU ZjekejejlmdVandWe_dX< ejlmdYaodDe_dZ< ejlmd[apdDe_d\< ejlmd]aqdDe_d^< dZrd_e_d`< G dadb dbeZsG dcdd ddeseNZtG dedf dfe*ZudgdhdidjZvdgdhdkdlZwdgdhdmdnZxdadoe_dp< d1dhdqdrZydsdhdtduZzddvl{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZmZmZmZmZ dS )w    )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InvalidWebhookSignatureError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.   r0   r/   )	resources)azurepydantic_function_tool)VERSION)AzureOpenAIAsyncAzureOpenAI)*)AssistantEventHandlerAsyncAssistantEventHandler__openai)r   r   
str | Noneapi_keyorganizationprojectwebhook_secretz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=   r4   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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 r\   3/tmp/pip-unpacked-wheel-rjiviquo/openai/__init__.pyr?      s    z_ModuleClient.api_keyNone)valuerW   c                 C  s   |a d S rX   rY   r[   r_   r\   r\   r]   r?      s    c                 C  s   t S rX   r@   rZ   r\   r\   r]   r@      s    z_ModuleClient.organizationc                 C  s   |a d S rX   ra   r`   r\   r\   r]   r@      s    c                 C  s   t S rX   rA   rZ   r\   r\   r]   rA      s    z_ModuleClient.projectc                 C  s   |a d S rX   rb   r`   r\   r\   r]   rA      s    c                 C  s   t S rX   rB   rZ   r\   r\   r]   rB      s    z_ModuleClient.webhook_secretc                 C  s   |a d S rX   rc   r`   r\   r\   r]   rB      s    z
_httpx.URLc                   s   t d k	rtt S t j S rX   )rC   _httpxURLsuperrZ   	__class__r\   r]   rC      s    
z_ModuleClient.base_urlz_httpx.URL | str)urlrW   c                   s   |t  _d S rX   )rf   rC   )r[   ri   rg   r\   r]   rC      s    rD   c                 C  s   t S rX   rE   rZ   r\   r\   r]   rE      s    z_ModuleClient.timeoutc                 C  s   |a d S rX   rj   r`   r\   r\   r]   rE      s    rF   c                 C  s   t S rX   rG   rZ   r\   r\   r]   rG      s    z_ModuleClient.max_retriesc                 C  s   |a d S rX   rk   r`   r\   r\   r]   rG      s    rH   c                 C  s   t S rX   rI   rZ   r\   r\   r]   _custom_headers   s    z_ModuleClient._custom_headersc                 C  s   |a d S rX   rl   r`   r\   r\   r]   rm      s    rJ   c                 C  s   t S rX   rK   rZ   r\   r\   r]   _custom_query   s    z_ModuleClient._custom_queryc                 C  s   |a d S rX   rn   r`   r\   r\   r]   ro      s    z_httpx.Clientc                   s   t p
t jS rX   )rL   rf   _clientrZ   rg   r\   r]   rp     s    z_ModuleClient._clientc                 C  s   |a d S rX   )rL   r`   r\   r\   r]   rp     s    )__name__
__module____qualname__propertyr   r?   setterr@   rA   rB   rC   rE   rG   rm   ro   rp   __classcell__r\   r\   rg   r]   rU      sd   rU   c                   @  s   e Zd ZdS )_AzureModuleClientN)rq   rr   rs   r\   r\   r\   r]   rw     s   rw   c                      s"   e Zd Zdd fddZ  ZS ) _AmbiguousModuleClientUsageErrorr^   rV   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`)rf   __init__rZ   rg   r\   r]   ry     s    z)_AmbiguousModuleClientUsageError.__init__)rq   rr   rs   ry   rv   r\   r\   rg   r]   rx     s   rx   boolrV   c                   C  s   t jdd k	S )NZOPENAI_API_KEY)_osenvirongetr\   r\   r\   r]   _has_openai_credentials  s    r~   c                   C  s   t d k	ptjdd k	S )NAZURE_OPENAI_API_KEY)rQ   r{   r|   r}   r\   r\   r\   r]   _has_azure_credentials  s    r   c                   C  s    t jdd k	ptd k	ptd k	S )NrR   )r{   r|   r}   rS   rT   r\   r\   r\   r]   _has_azure_ad_credentials   s
    r   zOpenAI | Nonerp   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td
a t S t S )	NrP   rR   rN   r   r4   r=   )rO   rQ   r?   rS   rT   r@   rC   rE   rG   rI   rK   rL   )
r?   r@   rA   rB   rC   rE   rG   rI   rK   rL   )rp   rQ   r{   r|   r}   rS   rO   rM   r~   r   r   rx   rT   rw   r?   r@   rC   rE   rG   rI   rK   rL   rU   rA   rB   )Z
has_openaiZ	has_azureZhas_azure_adr\   r\   r]   _load_client+  sh    r   r^   c                   C  s   d a d S rX   )rp   r\   r\   r\   r]   _reset_clientn  s    r   )betachataudioevalsfilesimagesmodelsbatchesuploadswebhooks	responses
containers
embeddingscompletionsfine_tuningmoderationsvector_stores)
__future__r   osr{   typingZ_tZtyping_extensionsr    r   _typesr   r   r   r	   r
   r   _utilsr   rp   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,   r-   Z_base_clientr.   r/   r0   Z_utils._logsr1   Z_setup_loggingZ_legacy_responser2   __all__TYPE_CHECKINGZ_utils._resources_proxyr3   libr4   Z_azurer5   versionr6   Z	lib.azurer7   r8   Zlib._old_apiZlib.streamingr:   r;   localsZ__localsZ__name
startswithrr   	TypeErrorAttributeErrorZ_teZhttpxrd   r?   __annotations__r@   rA   rB   rC   rE   rG   rI   rK   rL   LiteralZ_ApiTypecastr|   r}   rM   rO   rQ   rS   rT   rU   rw   rx   r~   r   r   r   r   Z_module_clientr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r\   r\   r\   r]   <module>   s     ,L-

tC