Ë
    uPêjt  ã                   ó”   — d dl mZmZ d dlmZ d dlmZmZmZ d dl	Z	d dl
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)é    )ÚABCÚabstractmethod)ÚMapping)ÚTYPE_CHECKINGÚAnyÚFinalN)ÚRerankBilledUnitsÚRerankResponse)Ú	ModelInfoé   ©ÚBaseLLMException)ÚLoggingc                   ó>  — e Zd Ze	 	 	 d%dedededz  dedz  deeef   dz  defd„«       Ze	 d&ded	edededz  def
d
„«       Z	edi i i fdede
j                  dedededz  dedede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fd„«       Ze	 	 	 	 	 	 	 d'dededededeeeeef   z     dedz  dedz  dee   dz  dedz  dedz  dedz  dedz  defd„«       Zded edee
j,                  z  defd!„Z	 	 	 d%dededz  d"edz  d#edz  deeef   f
d$„Zy)(ÚBaseRerankConfigNÚheadersÚmodelÚapi_keyÚoptional_paramsÚlitellm_paramsÚreturnc                  ó   — y ©N© )Úselfr   r   r   r   r   s         úp/home/oem/CyberBrain26-unified/.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   r   s        r   Útransform_rerank_requestz)BaseRerankConfig.transform_rerank_request    s	   € ð ˆ	r   Úraw_responseÚmodel_responseÚlogging_objÚrequest_datac	                 ó   — |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   r   s       r   Úget_complete_urlz!BaseRerankConfig.get_complete_url8   s   € ð Š~˜2Ðr   c                  ó   — y r   r   )r   r   s     r   Ú"get_supported_cohere_rerank_paramsz3BaseRerankConfig.get_supported_cohere_rerank_paramsH   s   € àr   Únon_default_paramsÚdrop_paramsÚqueryÚ	documentsÚcustom_llm_providerÚtop_nÚrank_fieldsÚreturn_documentsÚmax_chunks_per_docÚmax_tokens_per_docÚinstructionc                  ó   — y r   r   )r   r.   r   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   s                r   Úmap_cohere_rerank_paramsz)BaseRerankConfig.map_cohere_rerank_paramsL   s   € ð  	r   Úerror_messageÚstatus_codec                 ó   — t        |||¬«      ‚)N)r<   Úmessager   r   )r   r;   r<   r   s       r   Úget_error_classz BaseRerankConfig.get_error_class^   s   € ÜØ#Ø!Øô
ð 	
r   Úbilled_unitsÚ
model_infoc                 ó^   — |�d|vs|d   �|€y|j                  d«      }|€y|d   |z  }|dfS )a%  
        Calculates the cost per query for a given rerank model.

        Input:
            - model: str, the model name without provider prefix
            - custom_llm_provider: str, the provider used for the model. If provided, used to check if the litellm model info is for that provider.
            - num_queries: int, the number of queries to calculate the cost for
            - model_info: ModelInfo, the model info for the given model

        Returns:
            Tuple[float, float] - prompt_cost_in_usd, completion_cost_in_usd
        Úinput_cost_per_query)ç        rD   Úsearch_unitsrD   )Úget)r   r   r2   r@   rA   rE   Úprompt_costs          r   Úcalculate_rerank_costz&BaseRerankConfig.calculate_rerank_coste   s[   € ð* ÐØ%¨ZÑ7ØÐ0Ñ1Ð9ØÐ#àà*×.Ñ.¨~Ó>ˆàÐØà'Ð(>Ñ?À,ÑNˆà˜CÐÐr   )NNNr   )NNNTNNN)Ú__name__Ú
__module__Ú__qualname__r   ÚdictÚstrr   Úobjectr   r!   ÚhttpxÚResponser
   ÚLiteLLMLoggingObjr'   r+   Úlistr-   Úboolr   Úintr:   ÚHeadersr   r?   r	   r   ÚtupleÚfloatrH   r   r   r   r   r      s
  „ Øð
 #Ø'+Ø6:ñàðð ðð �t‘ð	ð
  ™ðð    V Ñ,¨tÑ3ðð 
òó ðð ð '+ñàðð !%ðð ð	ð
 ˜t™ðð 
òó ðð ð #ØØ "Ø!ñàðð —n‘nðð 'ð	ð
 'ðð �t‘ðð ðð ðð ðð 
òó ðð ð
 (,ñ	à˜‘*ðð ðð  ™ð	ð
 
òó ðð ð¸ð Àò ó ðð ð +/Ø Ø(,Ø(,Ø)-Ø)-Ø"&ñà ðð ðð ð	ð
 ðð ˜˜d 3¨ 8™nÑ,Ñ-ðð ! 4™Zðð �T‰zðð ˜#‘Y Ñ%ðð  ™+ðð   $™Jðð   $™Jðð ˜4‘Zðð 
òó ðð"
¨Sð 
¸sð 
ÈTÐTY×TaÑTaÑMað 
Ðfvó 
ð +/Ø15Ø'+ñ# àð# ð ! 4™Zð# ð (¨$Ñ.ð	# ð
  Ñ$ð# ð 
ˆu�eˆ|Ñ	ô# r   r   )Úabcr   r   Úcollections.abcr   Útypingr   r   r   rO   Úlitellm.types.rerankr	   r
   Úlitellm.types.utilsr   Úchat.transformationr   Ú*litellm.litellm_core_utils.litellm_loggingr   Ú_LiteLLMLoggingObjrQ   r   r   r   r   ú<module>r`      s=   ðß #Ý #ß ,Ñ ,ã ç BÝ )å 2áÝXà*ÑàÐôt �sõ t r   