o
    ưi                     @   s   d dl Z d dlZd dlmZ d dlmZ dZdZdZdZ	ej
Zd dlmZmZmZ d	d
 ZG dd deZG dd deZG dd dZdS )    N)Enum)verbose_loggerz!https://deepeval.confident-ai.comz$https://eu.deepeval.confident-ai.comzhttps://api.confident-ai.comzhttps://eu.api.confident-ai.com)HTTPHandlerget_async_httpx_clienthttpxSpecialProviderc                 C   sJ   |  d}|  d}|rtd| d| d d S td| d d S )N	exceptiontrieszConfident AI Error: z. Retrying: z time(s)...z
Retrying: )getloggingerror)detailsr   r    r   X/home/app/Keep/.python/lib/python3.10/site-packages/litellm/integrations/deepeval/api.pylog_retry_error   s
   

r   c                   @   s   e Zd ZdZdZdZdZdS )HttpMethodsGETPOSTDELETEPUTN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r      s
    r   c                   @   s8   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdS )	Endpointsz/v1/datasetz/v1/test-runz/v1/tracingz	/v1/eventz/v1/feedbackz
/v1/promptz/v1/recommend-metricsz	/evaluatez/guardz/guardrailsz/generate-baseline-attacksN)r   r   r   ZDATASET_ENDPOINTZTEST_RUN_ENDPOINTZTRACING_ENDPOINTZEVENT_ENDPOINTZFEEDBACK_ENDPOINTZPROMPT_ENDPOINTZRECOMMEND_ENDPOINTZEVALUATE_ENDPOINTZGUARD_ENDPOINTZGUARDRAILS_ENDPOINTZBASELINE_ATTACKS_ENDPOINTr   r   r   r   r   $   s    r   c                   @   s^   e Zd ZddefddZ	ddedefddZ	dded	efd
dZ	dded	efddZ	dS )ApiNapi_keyc                 C   s6   || _ d|d| _|pt| _t | _ttjd| _	d S )Nzapplication/json)zContent-TypeZCONFIDENT_API_KEY)Zllm_provider)
r   _headersAPI_BASE_URLbase_api_urlr   sync_http_handlerr   r   ZLoggingCallbackasync_http_handler)selfr   base_urlr   r   r   __init__3   s   
zApi.__init__methodurlc              
   C   sr   |dkrt dz| jj||||d W d S  tjy+ } z	t d|jj d }~w t y8 } z|d }~ww )Nr    Only POST requests are supportedr$   headersjsonparamsDeepEval logging error: )	Exceptionr   posthttpxHTTPStatusErrorresponsetext)r    r#   r$   r'   r(   r)   er   r   r   _http_requestA   s    zApi._http_requestendpointc                 C   sz   | j  |j }| j|j|| j||d}|jdkr+z| W S  ty*   |j Y S w t	|  t
| d|j)N)r#   r$   r'   r(   r)      r   )r   valuer2   r   status_coder(   
ValueErrorr0   r   debugr+   r	   )r    r#   r3   bodyr)   r$   resr   r   r   send_requestR   s    


zApi.send_requestc              
      s   |t jkr
td| j |j }z| jj|| j||dI d H  W d S  tj	y9 } z	td|j
j d }~w tyF } z|d }~ww )Nr%   r&   r*   )r   r   r+   r   r5   r   r,   r   r-   r.   r/   r0   )r    r#   r3   r9   r)   r$   r1   r   r   r   a_send_requestg   s$   
zApi.a_send_request)N)NNN)NN)
r   r   r   strr"   r2   r   r   r;   r<   r   r   r   r   r   2   s(    

r   )r
   r-   enumr   Zlitellm._loggingr   ZDEEPEVAL_BASE_URLZDEEPEVAL_BASE_URL_EUr   ZAPI_BASE_URL_EU	HTTPErrorZretryable_exceptionsZ&litellm.llms.custom_httpx.http_handlerr   r   r   r   r   r   r   r   r   r   r   <module>   s   	