a
    f'                  
   @  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 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.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z; g dZ<ddl=m>Z?m@Z@ ddlAmBZB ddlCmDZDmEZE ddlFT ddlGmHZHmIZI e;  eJ ZKe<D ]:ZLeLMdszdeKeL _NW n eOePfy   Y n0 qd dlQZRd dlZSd dlTZUddl6m"Z"m#Z# daVdeWd< daXdeWd< daYdeWd< dZZdeWd< e"a[deWd < e#a\d!eWd"< da]d#eWd$< da^d%eWd&< da_d'eWd(< eSj`d) ZaeRbeaejcdd*aed+eWd,< ejcdd-afdeWd.< ejcdd/agdeWd0< ejcdd1ahdeWd2< dZid3eWd4< G d5d6 d6eZjG d7d8 d8ejeDZkG d9d: d:e'Zld;d<d=d>Zmd;d<d?d@Znd;d<dAdBZodadCeWdD< dEd<dFdGZpdHd<dIdJZqddKlrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z} dS )L    )annotationsN)override   )types)	NOT_GIVEN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)'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)r8   r/   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 )(_ModuleClientr9   returnc                 C  s   t S Nr:   self rV   H/var/www/ai-form-bot/venv/lib/python3.9/site-packages/openai/__init__.pyr:      s    z_ModuleClient.api_keyNone)valuerQ   c                 C  s   |a d S rR   rS   rU   rY   rV   rV   rW   r:      s    c                 C  s   t S rR   r;   rT   rV   rV   rW   r;      s    z_ModuleClient.organizationc                 C  s   |a d S rR   r[   rZ   rV   rV   rW   r;      s    c                 C  s   t S rR   r<   rT   rV   rV   rW   r<      s    z_ModuleClient.projectc                 C  s   |a d S rR   r\   rZ   rV   rV   rW   r<      s    z
_httpx.URLc                   s   t d urtt S t j S rR   )r=   _httpxURLsuperrT   	__class__rV   rW   r=      s    
z_ModuleClient.base_urlz_httpx.URL | str)urlrQ   c                   s   |t  _d S rR   )r_   r=   )rU   rb   r`   rV   rW   r=      s    r>   c                 C  s   t S rR   r?   rT   rV   rV   rW   r?      s    z_ModuleClient.timeoutc                 C  s   |a d S rR   rc   rZ   rV   rV   rW   r?      s    r@   c                 C  s   t S rR   rA   rT   rV   rV   rW   rA      s    z_ModuleClient.max_retriesc                 C  s   |a d S rR   rd   rZ   rV   rV   rW   rA      s    rB   c                 C  s   t S rR   rC   rT   rV   rV   rW   _custom_headers   s    z_ModuleClient._custom_headersc                 C  s   |a d S rR   re   rZ   rV   rV   rW   rf      s    rD   c                 C  s   t S rR   rE   rT   rV   rV   rW   _custom_query   s    z_ModuleClient._custom_queryc                 C  s   |a d S rR   rg   rZ   rV   rV   rW   rh      s    z_httpx.Clientc                   s   t p
t jS rR   )rF   r_   _clientrT   r`   rV   rW   ri      s    z_ModuleClient._clientc                 C  s   |a d S rR   )rF   rZ   rV   rV   rW   ri      s    )__name__
__module____qualname__propertyr   r:   setterr;   r<   r=   r?   rA   rf   rh   ri   __classcell__rV   rV   r`   rW   rO      sZ   rO   c                   @  s   e Zd ZdS )_AzureModuleClientN)rj   rk   rl   rV   rV   rV   rW   rp      s   rp   c                      s"   e Zd Zdd fddZ  ZS ) _AmbiguousModuleClientUsageErrorrX   rP   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`)r_   __init__rT   r`   rV   rW   rr      s    z)_AmbiguousModuleClientUsageError.__init__)rj   rk   rl   rr   ro   rV   rV   r`   rW   rq      s   rq   boolrP   c                   C  s   t jdd uS )NZOPENAI_API_KEY)_osenvirongetrV   rV   rV   rW   _has_openai_credentials  s    rw   c                   C  s   t d uptjdd uS )NAZURE_OPENAI_API_KEY)rK   rt   ru   rv   rV   rV   rV   rW   _has_azure_credentials  s    ry   c                   C  s    t jdd uptd uptd uS )NrL   )rt   ru   rv   rM   rN   rV   rV   rV   rW   _has_azure_ad_credentials
  s
    rz   zOpenAI | Noneri   r   c                  C  s   t d u rtd u rtjdatd u r0tjdatd u rDtjdatd u rt } t	 }t
 }| rp|sj|rpt td ustd urtjdd u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 )	NrJ   rL   rH   rx   r/   r8   )rI   rK   r:   rM   rN   r;   r=   r?   rA   rC   rE   rF   )	r:   r;   r<   r=   r?   rA   rC   rE   rF   )ri   rK   rt   ru   rv   rM   rI   rG   rw   ry   rz   rq   rN   rp   r:   r;   r=   r?   rA   rC   rE   rF   rO   r<   )Z
has_openaiZ	has_azureZhas_azure_adrV   rV   rW   _load_client  sf    r{   rX   c                   C  s   d a d S rR   )ri   rV   rV   rV   rW   _reset_clientW  s    r|   )betachataudiofilesimagesmodelsbatches
embeddingscompletionsfine_tuningmoderations)~
__future__r   osrt   typing_extensionsr    r   _typesr   r   r   r	   r
   Z_utilsr   ri   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_logging__all__libr/   Z_azurer0   versionr1   Z	lib.azurer2   r3   Zlib._old_apiZlib.streamingr5   r6   localsZ__localsZ__name
startswithrk   	TypeErrorAttributeErrortypingZ_tZ_teZhttpxr]   r:   __annotations__r;   r<   r=   r?   rA   rC   rE   rF   LiteralZ_ApiTypecastru   rv   rG   rI   rK   rM   rN   rO   rp   rq   rw   ry   rz   r{   r|   Z_module_clientr}   r~   r   r   r   r   r   r   r   r   r   rV   rV   rV   rW   <module>   sp   ,H*

iB