
    g                         d dl mZmZ d dlmZmZmZmZmZm	Z	 d dl
Z
d dlmZ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)
    )ABCabstractmethod)TYPE_CHECKINGAnyDictListOptionalUnionN)OptionalRerankParamsRerankResponse   )BaseLLMException)Loggingc                      e Zd Ze	 d dededee   defd       Zededededefd       Z	edi i i fded	e
j                  d
ededee   dedededefd       Zedee   dedefd       Zededefd       Ze	 	 	 	 	 d!dee   dedededeeeeeef   f      dee   dee   deee      dee   dee   defd       Zedededeee
j2                  f   defd       Zy)"BaseRerankConfigNheadersmodelapi_keyreturnc                      y N )selfr   r   r   s       `/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/base_llm/rerank/transformation.pyvalidate_environmentz%BaseRerankConfig.validate_environment   s     	    optional_rerank_paramsc                     i S r   r   )r   r   r   r   s       r   transform_rerank_requestz)BaseRerankConfig.transform_rerank_request   s	     	r   raw_responsemodel_responselogging_objrequest_dataoptional_paramslitellm_paramsc	                     |S r   r   )	r   r   r    r!   r"   r   r#   r$   r%   s	            r   transform_rerank_responsez*BaseRerankConfig.transform_rerank_response%   s
     r   api_basec                     |xs dS )z{
        OPTIONAL

        Get the complete url for the request

        Some providers need `model` in `api_base`
         r   )r   r(   r   s      r   get_complete_urlz!BaseRerankConfig.get_complete_url3   s     ~2r   c                      y r   r   )r   r   s     r   "get_supported_cohere_rerank_paramsz3BaseRerankConfig.get_supported_cohere_rerank_params>   s    r   non_default_paramsdrop_paramsquery	documentscustom_llm_providertop_nrank_fieldsreturn_documentsmax_chunks_per_docc                      y r   r   )r   r.   r   r/   r0   r1   r2   r3   r4   r5   r6   s              r   map_cohere_rerank_paramsz)BaseRerankConfig.map_cohere_rerank_paramsB   s     	r   error_messagestatus_codec                      y r   r   )r   r9   r:   r   s       r   get_error_classz BaseRerankConfig.get_error_classR   s     	r   r   )NNNTN)__name__
__module____qualname__r   dictstrr	   r   r   r   httpxResponser   LiteLLMLoggingObjr'   r+   listr-   boolr   r
   r   r   intr8   Headersr   r<   r   r   r   r   r      sU   
 "&	  #	
 
   !5 	
 
   "& "! nn '	
 ' #    
  # s s        .2#+/+/,0$TN  	
  c4S>123 &c] } d3i( #4. %SM 
   /2=B4CV=W	 r   r   )abcr   r   typingr   r   r   r   r	   r
   rB   litellm.types.rerankr   r   chat.transformationr   *litellm.litellm_core_utils.litellm_loggingr   _LiteLLMLoggingObjrD   r   r   r   r   <module>rO      s7    # B B  E 2X*Ds Dr   