o
    ưi                     @   s  d Z ddlZddlZddlmZ ddlmZmZmZm	Z	m
Z
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 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 m!Z!m"Z"m#Z#m$Z$ dd
l%m&Z& ddl'm(Z(m)Z) e Z*dZ+e)							dKdee,ef de	ee,ef  de
e, de
ee,ef  de
ee,ef  de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, defddZ/e)							dKdee,ef de	ee,ef  de
e, de
ee,ef  de
ee,ef  de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, deeeeeef f fddZ0e)									dLde
e1 de
e, de
e, de
e, de
e, de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, defd d!Z2e)									dLde
e1 de
e, de
e, de
e, de
e, de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, deeeeeef f fd"d#Z3e)				dMd$e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, defd%d&Z4e)				dMd$e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, deeeeeef f fd'd(Z5e)							dKd$e,de
e, de
ee,ef  de
ee,ef  de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, defd)d*Z6e)							dKd$e,de
e, de
ee,ef  de
ee,ef  de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, deeeeeef f fd+d,Z7e)				dMd$e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, defd-d.Z8e)				dMd$e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, deeeeeef f fd/d0Z9e)				dMd$e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, defd1d2Z:e)				dMd$e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, deeeeeef f fd3d4Z;e)							dKd$e,d5ee,ef de
e, de
ee,ef  de
ee,ef  de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, de"fd6d7Z<e)							dKd$e,d5ee,ef de
e, de
ee,ef  de
ee,ef  de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, dee"eeee"f f fd8d9Z=e)								dNd$e,de
e1 de
e, de
e, de
e, de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, de!fd:d;Z>e)								dNd$e,de
e1 de
e, de
e, de
e, de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, dee!eeee!f f fd<d=Z?e)				dMd$e,d>e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, de"fd?d@Z@e)				dMd$e,d>e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, dee"eeee"f f fdAdBZAe)				dMd$e,d>e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, defdCdDZBe)				dMd$e,d>e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, deeeeeef f fdEdFZCe)				dMd$e,d>e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, de#fdGdHZDe)				dMd$e,d>e,de
ee,ef  de
ee,ef  de
ee-ej.f  de
e, dee#eeee#f f fdIdJZEdS )Ozw
Main entry point for Evals API operations
Provides create, list, get, update, delete, and cancel operations for evals
    N)partial)Any	CoroutineDictListOptionalUnion)request_timeout)Logging)BaseEvalsAPIConfig)BaseLLMHTTPHandler)CancelEvalResponseCancelRunResponseCreateEvalRequestCreateRunRequestDeleteEvalResponseEvalListEvalsParamsListEvalsResponseListRunsParamsListRunsResponseRunRunDeleteResponseUpdateEvalRequest)GenericLiteLLMParams)ProviderConfigManagerclientzhttps://api.openai.comdata_source_configtesting_criterianamemetadataextra_headersextra_query
extra_bodytimeoutcustom_llm_providerreturnc	                       t  }
z?t }d|	d< ttf| ||||||||d	|	}t }t|j|}|d|I dH }t	|r?|I dH }|W S |}|W S  t
yY } z
tjd|||
|	dd}~ww )ae  
    Async: Create a new evaluation

    Args:
        data_source_config: Configuration for the data source
        testing_criteria: List of graders for all eval runs
        name: Optional name for the evaluation
        metadata: Optional additional metadata (max 16 key-value pairs)
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        extra_body: Additional body parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Eval object
    Tacreate_eval)	r   r   r   r    r!   r"   r#   r$   r%   Nmodelr%   Zoriginal_exceptionZcompletion_kwargsextra_kwargs)localsasyncioget_event_loopr   create_evalcontextvarscopy_contextrunrun_in_executoriscoroutine	Exceptionlitellmexception_type)r   r   r   r    r!   r"   r#   r$   r%   kwargs
local_varsloopfuncctxfunc_with_contextinit_responseresponsee rA   I/home/app/Keep/.python/lib/python3.10/site-packages/litellm/evals/main.pyr(   )   L   

r(   c	                 K   sN  t  }
z|	d}|	dd}|	dddu }tdi |	}|du r$d}tjt|d}|du r8td	| | |d
}|durE||d< |rL|	| |pOi }|j
||d}|j|||d}|jpct}|j|dd}|jd|d|i|d tj||||||||pt||	d|	dd}|W S  ty } z
tjd|||
|	dd}~ww )a^  
    Create a new evaluation

    Args:
        data_source_config: Configuration for the data source
        testing_criteria: List of graders for all eval runs
        name: Optional name for the evaluation
        metadata: Optional additional metadata (max 16 key-value pairs)
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        extra_body: Additional body parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Eval object
    litellm_logging_objlitellm_call_idNr(   FTopenaiproviderz!CREATE eval is not supported for )r   r   r   headerslitellm_params)create_requestrK   rJ   Zevals)api_baseendpointr*   Zoptional_paramsrK   r%   r   shared_sessionurlrequest_bodyevals_api_provider_configr%   rK   logging_objr!   r$   	_is_asyncr   rP   r)   rA   )r,   getpopr   r   get_provider_evals_api_configr6   LlmProviders
ValueErrorupdatevalidate_environmentZtransform_create_eval_requestrM   DEFAULT_OPENAI_API_BASEZget_complete_urlupdate_environment_variablesbase_llm_http_handlerZcreate_eval_handlerr	   r5   r7   )r   r   r   r    r!   r"   r#   r$   r%   r8   r9   rD   rE   rV   rK   rT   rL   rJ   rS   rM   rR   r?   r@   rA   rA   rB   r/   n   s   



r/   limitafterbeforeorderorder_byc	                    r'   )a  
    Async: List all evaluations

    Args:
        limit: Number of results to return per page (max 100, default 20)
        after: Cursor for pagination - returns evals after this ID
        before: Cursor for pagination - returns evals before this ID
        order: Sort order ('asc' or 'desc', default 'desc')
        order_by: Field to sort by ('created_at' or 'updated_at', default 'created_at')
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        ListEvalsResponse object
    Talist_evals)	ra   rb   rc   rd   re   r!   r"   r$   r%   Nr)   )r,   r-   r.   r   
list_evalsr0   r1   r2   r3   r4   r5   r6   r7   )ra   rb   rc   rd   re   r!   r"   r$   r%   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rA   rB   rf      rC   rf   c	                 K   st  t  }
z|	d}|	dd}|	dddu }tdi |	}|du r$d}tjt|d}|du r8td	| i }| durB| |d
< |durJ||d< |durR||d< |durZ||d< |durb||d< |ri|	| |pli }|j
||d}|j|||d\}}|jd|d|i|d tj||||||||pt||	d|	dd}|W S  ty } z
tjd|||
|	dd}~ww )a  
    List all evaluations

    Args:
        limit: Number of results to return per page (max 100, default 20)
        after: Cursor for pagination - returns evals after this ID
        before: Cursor for pagination - returns evals before this ID
        order: Sort order ('asc' or 'desc', default 'desc')
        order_by: Field to sort by ('created_at' or 'updated_at', default 'created_at')
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        ListEvalsResponse object
    rD   rE   Nrf   FTrF   rG   z LIST evals is not supported for ra   rb   rc   rd   re   rI   )list_paramsrK   rJ   rO   r   rP   rR   query_paramsrT   r%   rK   rU   r!   r$   rV   r   rP   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   r\   r]   Ztransform_list_evals_requestr_   r`   Zlist_evals_handlerr	   r5   r7   )ra   rb   rc   rd   re   r!   r"   r$   r%   r8   r9   rD   rE   rV   rK   rT   rh   rJ   rR   rj   r?   r@   rA   rA   rB   rg   .  s   



rg   eval_idc              
         t  }z;t }d|d< ttf| ||||d|}t }	t|	j|}
|d|
I dH }t	|r;|I dH }|W S |}|W S  t
yU } z
tjd||||dd}~ww )ax  
    Async: Get an evaluation by ID

    Args:
        eval_id: The ID of the evaluation to fetch
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Eval object
    T	aget_evalrk   r!   r"   r$   r%   Nr)   )r,   r-   r.   r   get_evalr0   r1   r2   r3   r4   r5   r6   r7   rk   r!   r"   r$   r%   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rA   rB   rm     D   


rm   c                 K      t  }zv|d}|dd}|dddu }	tdi |}
|du r$d}tjt|d}|du r8td	| |p;i }|j	||
d
}|
j
pGt}|j| ||
|d\}}|jdd| id|i|d tj||||
|||pkt|	|d|dd
}|W S  ty } z
tjd||||dd}~ww )aq  
    Get an evaluation by ID

    Args:
        eval_id: The ID of the evaluation to fetch
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Eval object
    rD   rE   Nrm   FTrF   rG   zGET eval is not supported for rI   rk   rM   rK   rJ   rk   rO   r   rP   
rR   rT   r%   rK   rU   r!   r$   rV   r   rP   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   r]   rM   r^   Ztransform_get_eval_requestr_   r`   Zget_eval_handlerr	   r5   r7   rk   r!   r"   r$   r%   r8   r9   rD   rE   rV   rK   rT   rJ   rM   rR   r?   r@   rA   rA   rB   ro     n   



ro   c                    s   t  }	z>t }
d|d< ttf| |||||||d|}t }t|j|}|
d|I dH }t	|r>|I dH }|W S |}|W S  t
yX } z
tjd|||	|dd}~ww )a  
    Async: Update an evaluation

    Args:
        eval_id: The ID of the evaluation to update
        name: Updated name
        metadata: Updated metadata
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        extra_body: Additional body parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Eval object
    Taupdate_eval)rk   r   r    r!   r"   r#   r$   r%   Nr)   )r,   r-   r.   r   update_evalr0   r1   r2   r3   r4   r5   r6   r7   )rk   r   r    r!   r"   r#   r$   r%   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rA   rB   rw   ?  sJ   


rw   c                    sv  t  }	z|d}
|dd}|dddu }tdi |}|du r$d}tjt|d}|du r8td	| i }|durB||d
< |dur[h d  fdd|	 D }|r[||d< |rb|
| |pei }|j||d}|jpqt}|j| ||||d\}}}|
jd|d|i|d tj||||||
||pt||d|dd}|W S  ty } z
tjd|||	|dd}~ww )a  
    Update an evaluation

    Args:
        eval_id: The ID of the evaluation to update
        name: Updated name
        metadata: Updated metadata
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        extra_body: Additional body parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Eval object
    rD   rE   Nrw   FTrF   rG   z!UPDATE eval is not supported for r   >   Zuser_api_key_authZlitellm_parent_otel_spanZuser_api_key_user_emailZuser_api_key_user_max_budgetZuser_api_keyZrequester_ip_addressrN   Zuser_api_key_hashZuser_api_end_user_max_budgetZuser_api_key_org_idZuser_api_key_aliasZuser_api_key_model_max_budgetZuser_api_key_request_routeZuser_api_key_metadataZrequester_metadataZuser_api_key_budget_reset_atrJ   Zuser_api_key_auth_metadataZlitellm_api_version
user_agentZglobal_max_parallel_requestsZuser_api_key_user_idZuser_api_key_team_aliasZuser_api_key_user_spendZuser_api_key_team_spendZuser_api_key_spendZuser_api_key_end_user_idZuser_api_key_max_budgetZuser_api_key_team_max_budgetZuser_api_key_team_idc                    s   i | ]\}}| vr||qS rA   rA   ).0kvZinternal_keysrA   rB   
<dictcomp>  s    zupdate_eval.<locals>.<dictcomp>r    rI   )rk   update_requestrM   rK   rJ   rO   r   rP   rQ   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   itemsr\   r]   rM   r^   Ztransform_update_eval_requestr_   r`   Zupdate_eval_handlerr	   r5   r7   )rk   r   r    r!   r"   r#   r$   r%   r8   r9   rD   rE   rV   rK   rT   r   Zfiltered_metadatarJ   rM   rR   rS   r?   r@   rA   r}   rB   rx     s   


	
rx   c              
      rl   )a  
    Async: Delete an evaluation

    Args:
        eval_id: The ID of the evaluation to delete
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        DeleteEvalResponse object
    Tadelete_evalrn   Nr)   )r,   r-   r.   r   delete_evalr0   r1   r2   r3   r4   r5   r6   r7   rp   rA   rA   rB   r   	  rq   r   c                 K   rr   )a}  
    Delete an evaluation

    Args:
        eval_id: The ID of the evaluation to delete
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        DeleteEvalResponse object
    rD   rE   Nr   FTrF   rG   z!DELETE eval is not supported for rI   rs   rk   rO   r   rP   rt   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   r]   rM   r^   Ztransform_delete_eval_requestr_   r`   Zdelete_eval_handlerr	   r5   r7   ru   rA   rA   rB   r   B  rv   r   c              
      rl   )a  
    Async: Cancel a running evaluation

    Args:
        eval_id: The ID of the evaluation to cancel
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        CancelEvalResponse object
    Tacancel_evalrn   Nr)   )r,   r-   r.   r   cancel_evalr0   r1   r2   r3   r4   r5   r6   r7   rp   rA   rA   rB   r     rq   r   c                 K   s"  t  }zw|d}|dd}|dddu }	tdi |}
|du r$d}tjt|d}|du r8td	| |p;i }|j	||
d
}|
j
pGt}|j| ||
|d\}}}|jdd| id|i|d tj||||
|||plt|	|d|dd
}|W S  ty } z
tjd||||dd}~ww )a  
    Cancel a running evaluation

    Args:
        eval_id: The ID of the evaluation to cancel
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        CancelEvalResponse object
    rD   rE   Nr   FTrF   rG   z!CANCEL eval is not supported for rI   rs   rk   rO   r   rP   rt   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   r]   rM   r^   Ztransform_cancel_eval_requestr_   r`   Zcancel_eval_handlerr	   r5   r7   )rk   r!   r"   r$   r%   r8   r9   rD   rE   rV   rK   rT   rJ   rM   rR   rS   r?   r@   rA   rA   rB   r     sn   


r   data_sourcec	                    r'   )ap  
    Async: Create a new run for an evaluation

    Args:
        eval_id: The ID of the evaluation to run
        data_source: Data source configuration for the run (can be jsonl, completions, or responses type)
        name: Optional name for the run
        metadata: Optional additional metadata
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        extra_body: Additional body parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Run object
    Tacreate_run)	rk   r   r   r    r!   r"   r#   r$   r%   Nr)   )r,   r-   r.   r   
create_runr0   r1   r2   r3   r4   r5   r6   r7   )rk   r   r   r    r!   r"   r#   r$   r%   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rA   rB   r   @  rC   r   c	                 K   sN  t  }
z|	d}|	dd}|	dddu }tdi |	}|du r$d}tjt|d}|du r8td	| d
|i}|durD||d< |rK|	| |pNi }|j
||d}|jpZt}|j| |||d\}}|jd|d|i|d tj||||||||ptjddd||	d|	dd}|W S  ty } z
tjd|||
|	dd}~ww )a  
    Create a new run for an evaluation

    Args:
        eval_id: The ID of the evaluation to run
        data_source: Data source configuration for the run (can be jsonl, completions, or responses type)
        name: Optional name for the run
        metadata: Optional additional metadata
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        extra_body: Additional body parameters
        timeout: Request timeout (default 600s for long-running operations)
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Run object
    rD   rE   Nr   FTrF   rG   z CREATE run is not supported for r   r   rI   )rk   rL   rK   rJ   rO   g     @g      @)r$   connectr   rP   rQ   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   r\   r]   rM   r^   Ztransform_create_run_requestr_   r`   Zcreate_run_handlerhttpxTimeoutr5   r7   )rk   r   r   r    r!   r"   r#   r$   r%   r8   r9   rD   rE   rV   rK   rT   rL   rJ   rM   rR   rS   r?   r@   rA   rA   rB   r     s   




r   c	                    r'   )a  
    Async: List all runs for an evaluation

    Args:
        eval_id: The ID of the evaluation
        limit: Number of results to return per page (max 100, default 20)
        after: Cursor for pagination - returns runs after this ID
        before: Cursor for pagination - returns runs before this ID
        order: Sort order ('asc' or 'desc', default 'desc')
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        ListRunsResponse object
    T
alist_runs)	rk   ra   rb   rc   rd   r!   r"   r$   r%   Nr)   )r,   r-   r.   r   	list_runsr0   r1   r2   r3   r4   r5   r6   r7   )rk   ra   rb   rc   rd   r!   r"   r$   r%   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rA   rB   r     rC   r   c	                 K   sn  t  }
z|	d}|	dd}|	dddu }tdi |	}|du r$d}tjt|d}|du r8td	| i }|durB||d
< |durJ||d< |durR||d< |durZ||d< |ra|	| |pdi }|j
||d}|j| |||d\}}|jdd| i|d|i|d tj||||||||pt||	d|	dd}|W S  ty } z
tjd|||
|	dd}~ww )a  
    List all runs for an evaluation

    Args:
        eval_id: The ID of the evaluation
        limit: Number of results to return per page (max 100, default 20)
        after: Cursor for pagination - returns runs after this ID
        before: Cursor for pagination - returns runs before this ID
        order: Sort order ('asc' or 'desc', default 'desc')
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        ListRunsResponse object
    rD   rE   Nr   FTrF   rG   zLIST runs is not supported for ra   rb   rc   rd   rI   )rk   rh   rK   rJ   rk   rO   r   rP   ri   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   r\   r]   Ztransform_list_runs_requestr_   r`   Zlist_runs_handlerr	   r5   r7   )rk   ra   rb   rc   rd   r!   r"   r$   r%   r8   r9   rD   rE   rV   rK   rT   rh   rJ   rR   rj   r?   r@   rA   rA   rB   r   B  s   




r   run_idc              
         t  }z<t }d|d< ttf| |||||d|}	t }
t|
j|	}|d|I dH }t	|r<|I dH }|W S |}|W S  t
yV } z
tjd||||dd}~ww )a  
    Async: Get a specific run

    Args:
        eval_id: The ID of the evaluation
        run_id: The ID of the run to retrieve
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Run object
    Taget_runrk   r   r!   r"   r$   r%   Nr)   )r,   r-   r.   r   get_runr0   r1   r2   r3   r4   r5   r6   r7   rk   r   r!   r"   r$   r%   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rA   rB   r     F   

r   c                 K   s$  t  }zx|d}|dd}	|dddu }
tdi |}|du r$d}tjt|d}|du r8td	| |p;i }|j	||d
}|j
pGt}|j| ||||d\}}|jd| |dd|	i|d tj|||||||pmt|
|d|dd
}|W S  ty } z
tjd||||dd}~ww )a  
    Get a specific run

    Args:
        eval_id: The ID of the evaluation
        run_id: The ID of the run to retrieve
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        Run object
    rD   rE   Nr   FTrF   rG   zGET run is not supported for rI   rk   r   rM   rK   rJ   rk   r   rO   r   rP   rt   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   r]   rM   r^   Ztransform_get_run_requestr_   r`   Zget_run_handlerr	   r5   r7   )rk   r   r!   r"   r$   r%   r8   r9   rD   rE   rV   rK   rT   rJ   rM   rR   r?   r@   rA   rA   rB   r     sp   


	
r   c              
      r   )a  
    Async: Cancel a running run

    Args:
        eval_id: The ID of the evaluation
        run_id: The ID of the run to cancel
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        CancelRunResponse object
    Tacancel_runr   Nr)   )r,   r-   r.   r   
cancel_runr0   r1   r2   r3   r4   r5   r6   r7   r   rA   rA   rB   r   X  r   r   c                 K   &  t  }zy|d}|dd}	|dddu }
tdi |}|du r$d}tjt|d}|du r8td	| |p;i }|j	||d
}|j
pGt}|j| ||||d\}}}|jd| |dd|	i|d tj|||||||pnt|
|d|dd
}|W S  ty } z
tjd||||dd}~ww )a  
    Cancel a running run

    Args:
        eval_id: The ID of the evaluation
        run_id: The ID of the run to cancel
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        CancelRunResponse object
    rD   rE   Nr   FTrF   rG   z CANCEL run is not supported for rI   r   r   rO   r   rP   rt   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   r]   rM   r^   Ztransform_cancel_run_requestr_   r`   Zcancel_run_handlerr	   r5   r7   rk   r   r!   r"   r$   r%   r8   r9   rD   rE   rV   rK   rT   rJ   rM   rR   rS   r?   r@   rA   rA   rB   r     p   

	
r   c              
      r   )a  
    Async: Delete a run

    Args:
        eval_id: The ID of the evaluation
        run_id: The ID of the run to delete
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        RunDeleteResponse object
    Tadelete_runr   Nr)   )r,   r-   r.   r   
delete_runr0   r1   r2   r3   r4   r5   r6   r7   r   rA   rA   rB   r     r   r   c                 K   r   )a  
    Delete a run

    Args:
        eval_id: The ID of the evaluation
        run_id: The ID of the run to delete
        extra_headers: Additional headers for the request
        extra_query: Additional query parameters
        timeout: Request timeout
        custom_llm_provider: Provider name (e.g., 'openai')
        **kwargs: Additional parameters

    Returns:
        RunDeleteResponse object
    rD   rE   Nr   FTrF   rG   z DELETE run is not supported for rI   r   r   rO   r   rP   rt   r)   rA   )r,   rW   rX   r   r   rY   r6   rZ   r[   r]   rM   r^   Ztransform_delete_run_requestr_   r`   Zdelete_run_handlerr	   r5   r7   r   rA   rA   rB   r   8  r   r   )NNNNNNN)	NNNNNNNNN)NNNN)NNNNNNNN)F__doc__r-   r0   	functoolsr   typingr   r   r   r   r   r   r   r6   Zlitellm.constantsr	   Z*litellm.litellm_core_utils.litellm_loggingr
   ZLiteLLMLoggingObjZ*litellm.llms.base_llm.evals.transformationr   Z*litellm.llms.custom_httpx.llm_http_handlerr   Zlitellm.types.llms.openai_evalsr   r   r   r   r   r   r   r   r   r   r   r   r   Zlitellm.types.routerr   Zlitellm.utilsr   r   r`   r^   strfloatr   r(   r/   intrf   rg   rm   ro   rw   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rA   rA   rA   rB   <module>   s2    <
	D
	z	D	w8_
A
 8_8d
	D
	w	D	v;b;g;