
    g                     j    d Z ddl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  G d d	e	      Zy)
zO
Translate between Cohere's `/rerank` format and Azure AI's `/rerank` format. 
    )OptionalN)Logging)CohereRerankConfig)get_secret_str)RerankResponsec                        e Zd ZdZdee   dedefdZ	 ddededee   defd	Z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 fdZdee   dee   fdZ xZS )AzureAIRerankConfigzB
    Azure AI Rerank - Follows the same Spec as Cohere Rerank
    api_basemodelreturnc                 L    |t        d      |j                  d      s| d}|S )Nz]Azure AI API Base is required. api_base=None. Set in call or via `AZURE_AI_API_BASE` env var.z
/v1/rerank)
ValueErrorendswith)selfr
   r   s      `/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/transformation.pyget_complete_urlz$AzureAIRerankConfig.get_complete_url   s9    o    .":.H    Nheadersapi_keyc                     |t        d      xs t        j                  }|t        d      d| ddd}d|v r|d   |d<   i ||S )NAZURE_AI_API_KEYzRAzure AI API key is required. Please set 'AZURE_AI_API_KEY' or 'litellm.azure_key'zBearer zapplication/json)Authorizationacceptzcontent-typer   )r   litellm	azure_keyr   )r   r   r   r   default_headerss        r   validate_environmentz(AzureAIRerankConfig.validate_environment   sx     ?$%78MG<M<MG?d 
  'wi0(.
 g%/6/GOO, ./-W--r   raw_responsemodel_responselogging_objrequest_dataoptional_paramslitellm_paramsc	           
          t         |   ||||||||      }	| j                  |	j                  j	                  d            }
|
|	j                  d<   |	S )N)r   r   r   r    r   r!   r"   r#   z llm_provider-azureml-model-groupr   )supertransform_rerank_response_get_base_model_hidden_paramsget)r   r   r   r   r    r   r!   r"   r#   rerank_response
base_model	__class__s              r   r&   z-AzureAIRerankConfig.transform_rerank_response9   sp      ';%)#%+) < 	
 ))**../QR

 3=&&w/r   azure_model_groupc                 $    |y |dk(  ry|dk(  ry|S )Nzoffer-cohere-rerank-mul-paygoz&azure_ai/cohere-rerank-v3-multilingualzoffer-cohere-rerank-eng-paygoz!azure_ai/cohere-rerank-v3-english )r   r-   s     r   r'   z#AzureAIRerankConfig._get_base_modelT   s)    $ ??; ??6  r   )N)__name__
__module____qualname____doc__r   strr   dictr   httpxResponser   LiteLLMLoggingObjr&   r'   __classcell__)r,   s   @r   r	   r	      s    # s s  "&	.. . #	.
 
.B "& "! nn '	
 ' #    
6!# !8C= !r   r	   )r3   typingr   r6   r   *litellm.litellm_core_utils.litellm_loggingr   r8   )litellm.llms.cohere.rerank.transformationr   litellm.secret_managers.mainr   litellm.types.utilsr   r	   r/   r   r   <module>r?      s0       S H 7 .K!, K!r   