Ë
    uPêjY1  ã                   óÀ   — d Z ddlmZmZ ddlmZm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mZmZmZmZmZmZmZ ddlmZ ddlmZ er	dd	lmZ eZneZ G d
„ de«      Z y)z(
Base configuration class for Evals API
é    )ÚABCÚabstractmethod)ÚTYPE_CHECKINGÚAnyN©ÚBaseLLMException)ÚCancelEvalResponseÚCancelRunResponseÚCreateEvalRequestÚCreateRunRequestÚDeleteEvalResponseÚEvalÚListEvalsParamsÚListEvalsResponseÚListRunsParamsÚListRunsResponseÚRunÚRunDeleteResponseÚUpdateEvalRequest)ÚGenericLiteLLMParams)ÚLlmProviders)ÚLoggingc                   óà  — e Zd ZdZd„ Zeedefd„«       «       Zede	de
dz  de	fd„«       Ze	 d-d	edz  d
ededz  defd„«       Zedede
de	de	fd„«       Zedej"                  dedefd„«       Zedede
de	deee	f   fd„«       Zedej"                  dedefd„«       Zeded	ede
de	deee	f   f
d„«       Zedej"                  dedefd„«       Zededed	ede
de	deee	e	f   fd„«       Zedej"                  dedefd„«       Zeded	ede
de	deee	f   f
d„«       Zedej"                  dede fd„«       Z!eded	ede
de	deee	e	f   f
d„«       Z"edej"                  dede#fd„«       Z$edede%de
de	deee	f   f
d„«       Z&edej"                  dede'fd„«       Z(edede)de
de	deee	f   f
d „«       Z*edej"                  dede+fd!„«       Z,eded"ed	ede
de	deee	f   fd#„«       Z-edej"                  dede'fd$„«       Z.eded"ed	ede
de	deee	e	f   fd%„«       Z/edej"                  dede0fd&„«       Z1eded"ed	ede
de	deee	e	f   fd'„«       Z2edej"                  dedd(fd)„«       Z3d*ed+e4de	de5fd,„Z6y).ÚBaseEvalsAPIConfigz*Base configuration for Evals API providersc                  ó   — y ©N© ©Úselfs    úo/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/evals/transformation.pyÚ__init__zBaseEvalsAPIConfig.__init__(   s   € Øó    Úreturnc                  ó   — y r   r   r   s    r    Úcustom_llm_providerz&BaseEvalsAPIConfig.custom_llm_provider+   s   € ð 	r"   ÚheadersÚlitellm_paramsNc                 ó   — |S )zõ
        Validate and update headers with provider-specific requirements

        Args:
            headers: Base headers dictionary
            litellm_params: LiteLLM parameters

        Returns:
            Updated headers dictionary
        r   )r   r&   r'   s      r    Úvalidate_environmentz'BaseEvalsAPIConfig.validate_environment0   s	   € ð ˆr"   Úapi_baseÚendpointÚeval_idc                 ó*   — |€t        d«      ‚|› d|› �S )a  
        Get the complete URL for the API request

        Args:
            api_base: Base API URL
            endpoint: API endpoint (e.g., 'evals', 'evals/{id}')
            eval_id: Optional eval ID for specific eval operations

        Returns:
            Complete URL
        zapi_base is requiredz/v1/)Ú
ValueError)r   r*   r+   r,   s       r    Úget_complete_urlz#BaseEvalsAPIConfig.get_complete_url>   s'   € ð$ ÐÜÐ3Ó4Ð4Ø�˜4 ˜zÐ*Ð*r"   Úcreate_requestc                  ó   — y)a   
        Transform create eval request to provider-specific format

        Args:
            create_request: Eval creation parameters
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Provider-specific request body
        Nr   )r   r0   r'   r&   s       r    Útransform_create_eval_requestz0BaseEvalsAPIConfig.transform_create_eval_requestT   ó   � r"   Úraw_responseÚlogging_objc                  ó   — y©zÉ
        Transform provider response to Eval object

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            Eval object
        Nr   ©r   r4   r5   s      r    Útransform_create_eval_responsez1BaseEvalsAPIConfig.transform_create_eval_responseg   r3   r"   Úlist_paramsc                  ó   — y)a  
        Transform list evals request parameters

        Args:
            list_params: List parameters (pagination, filters)
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, query_params)
        Nr   )r   r:   r'   r&   s       r    Útransform_list_evals_requestz/BaseEvalsAPIConfig.transform_list_evals_requestx   r3   r"   c                  ó   — y)zÜ
        Transform provider response to ListEvalsResponse

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            ListEvalsResponse object
        Nr   r8   s      r    Útransform_list_evals_responsez0BaseEvalsAPIConfig.transform_list_evals_response‹   r3   r"   c                  ó   — y)a  
        Transform get eval request

        Args:
            eval_id: Eval ID
            api_base: Base API URL
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, headers)
        Nr   ©r   r,   r*   r'   r&   s        r    Útransform_get_eval_requestz-BaseEvalsAPIConfig.transform_get_eval_requestœ   r3   r"   c                  ó   — yr7   r   r8   s      r    Útransform_get_eval_responsez.BaseEvalsAPIConfig.transform_get_eval_response±   r3   r"   Úupdate_requestc                  ó   — y)a<  
        Transform update eval request

        Args:
            eval_id: Eval ID
            update_request: Update parameters
            api_base: Base API URL
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, headers, body)
        Nr   )r   r,   rD   r*   r'   r&   s         r    Útransform_update_eval_requestz0BaseEvalsAPIConfig.transform_update_eval_requestÂ   r3   r"   c                  ó   — yr7   r   r8   s      r    Útransform_update_eval_responsez1BaseEvalsAPIConfig.transform_update_eval_responseÙ   r3   r"   c                  ó   — y)a  
        Transform delete eval request

        Args:
            eval_id: Eval ID
            api_base: Base API URL
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, headers)
        Nr   r@   s        r    Útransform_delete_eval_requestz0BaseEvalsAPIConfig.transform_delete_eval_requestê   r3   r"   c                  ó   — y)zÞ
        Transform provider response to DeleteEvalResponse

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            DeleteEvalResponse object
        Nr   r8   s      r    Útransform_delete_eval_responsez1BaseEvalsAPIConfig.transform_delete_eval_responseÿ   r3   r"   c                  ó   — y)a  
        Transform cancel eval request

        Args:
            eval_id: Eval ID
            api_base: Base API URL
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, headers, body)
        Nr   r@   s        r    Útransform_cancel_eval_requestz0BaseEvalsAPIConfig.transform_cancel_eval_request  r3   r"   c                  ó   — y)zÞ
        Transform provider response to CancelEvalResponse

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            CancelEvalResponse object
        Nr   r8   s      r    Útransform_cancel_eval_responsez1BaseEvalsAPIConfig.transform_cancel_eval_response%  r3   r"   c                  ó   — y)a9  
        Transform create run request to provider-specific format

        Args:
            eval_id: Eval ID
            create_request: Run creation parameters
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, request_body)
        Nr   )r   r,   r0   r'   r&   s        r    Útransform_create_run_requestz/BaseEvalsAPIConfig.transform_create_run_request7  r3   r"   c                  ó   — y©zÇ
        Transform provider response to Run object

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            Run object
        Nr   r8   s      r    Útransform_create_run_responsez0BaseEvalsAPIConfig.transform_create_run_responseL  r3   r"   c                  ó   — y)a2  
        Transform list runs request parameters

        Args:
            eval_id: Eval ID
            list_params: List parameters (pagination, filters)
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, query_params)
        Nr   )r   r,   r:   r'   r&   s        r    Útransform_list_runs_requestz.BaseEvalsAPIConfig.transform_list_runs_request]  r3   r"   c                  ó   — y)zÚ
        Transform provider response to ListRunsResponse

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            ListRunsResponse object
        Nr   r8   s      r    Útransform_list_runs_responsez/BaseEvalsAPIConfig.transform_list_runs_responser  r3   r"   Úrun_idc                  ó   — y)a  
        Transform get run request

        Args:
            eval_id: Eval ID
            run_id: Run ID
            api_base: Base API URL
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, headers)
        Nr   ©r   r,   rZ   r*   r'   r&   s         r    Útransform_get_run_requestz,BaseEvalsAPIConfig.transform_get_run_requestƒ  r3   r"   c                  ó   — yrT   r   r8   s      r    Útransform_get_run_responsez-BaseEvalsAPIConfig.transform_get_run_responseš  r3   r"   c                  ó   — y)a(  
        Transform cancel run request

        Args:
            eval_id: Eval ID
            run_id: Run ID
            api_base: Base API URL
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, headers, body)
        Nr   r\   s         r    Útransform_cancel_run_requestz/BaseEvalsAPIConfig.transform_cancel_run_request«  r3   r"   c                  ó   — y)zÜ
        Transform provider response to CancelRunResponse

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            CancelRunResponse object
        Nr   r8   s      r    Útransform_cancel_run_responsez0BaseEvalsAPIConfig.transform_cancel_run_responseÂ  r3   r"   c                  ó   — y)a(  
        Transform delete run request

        Args:
            eval_id: Eval ID
            run_id: Run ID
            api_base: Base API URL
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, headers, body)
        Nr   r\   s         r    Útransform_delete_run_requestz/BaseEvalsAPIConfig.transform_delete_run_requestÓ  r3   r"   r   c                  ó   — y)zÜ
        Transform provider response to RunDeleteResponse

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            RunDeleteResponse object
        Nr   r8   s      r    Útransform_delete_run_responsez0BaseEvalsAPIConfig.transform_delete_run_responseê  r3   r"   Úerror_messageÚstatus_codec                 ó   — t        |||¬«      S )z-Get appropriate error class for the provider.)ri   Úmessager&   r   )r   rh   ri   r&   s       r    Úget_error_classz"BaseEvalsAPIConfig.get_error_classû  s   € ô  Ø#Ø!Øô
ð 	
r"   r   )7Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   Úpropertyr   r   r%   Údictr   r)   Ústrr/   r   r2   ÚhttpxÚResponseÚLiteLLMLoggingObjr   r9   r   Útupler<   r   r>   rA   rC   r   rF   rH   rJ   r   rL   rN   r	   rP   r   rR   r   rU   r   rW   r   rY   r]   r_   ra   r
   rc   re   rg   ÚintÚ	Exceptionrl   r   r"   r    r   r   %   sn  „ Ù4òð Øð \ò ó ó ðð ð¨Dð ÐBVÐY]ÑB]ð Ðbfò ó ðð ð
 #ñ	+à˜‘*ð+ð ð+ð �t‘ð	+ð
 
ò+ó ð+ð* ðà)ðð -ðð ð	ð
 
òó ðð$ ðà—n‘nðð 'ðð 
ò	ó ðð  ðà$ðð -ðð ð	ð
 
ˆs�DˆyÑ	òó ðð$ ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð ðð -ð	ð
 ðð 
ˆs�DˆyÑ	òó ðð( ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð *ðð ð	ð
 -ðð ðð 
ˆs�D˜$ˆÑ	òó ðð, ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð ðð -ð	ð
 ðð 
ˆs�DˆyÑ	òó ðð( ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð ðð -ð	ð
 ðð 
ˆs�D˜$ˆÑ	òó ðð( ðà—n‘nðð 'ðð 
ò	ó ðð" ðàðð )ðð -ð	ð
 ðð 
ˆs�DˆyÑ	òó ðð( ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð $ðð -ð	ð
 ðð 
ˆs�DˆyÑ	òó ðð( ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð ðð ð	ð
 -ðð ðð 
ˆs�DˆyÑ	òó ðð, ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð ðð ð	ð
 -ðð ðð 
ˆs�D˜$ˆÑ	òó ðð, ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð ðð ð	ð
 -ðð ðð 
ˆs�D˜$ˆÑ	òó ðð, ðà—n‘nðð 'ðð 
ò	ó ðð 
àð
ð ð
ð ð	
ð
 
ô
r"   r   )!rp   Úabcr   r   Útypingr   r   rt   Ú)litellm.llms.base_llm.chat.transformationr   Úlitellm.types.llms.openai_evalsr	   r
   r   r   r   r   r   r   r   r   r   r   r   Úlitellm.types.routerr   Úlitellm.types.utilsr   Ú*litellm.litellm_core_utils.litellm_loggingr   Ú_LiteLLMLoggingObjrv   r   r   r"   r    ú<module>r‚      sT   ðñ÷ $ß %ã å F÷÷ ÷ õ õ 6Ý ,áÝXà*ÑàÐôa
˜õ a
r"   