Ë
    uPêjZ  ã                   óŽ   — d Z ddlm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 dd	lmZ dd
lmZ  G d„ de«      Zy)zN
Translate between Cohere's `/rerank` format and Azure AI's `/rerank` format.
é    )ÚMapping)ÚFinalN)ÚLogging)Úget_azure_ai_auth_headers)ÚCohereRerankConfig)Úget_secret_str)ÚRerankResponse)Ú_add_path_to_api_basec                   óô   ‡ — e Zd ZdZ	 ddedz  dededz  defd„Z	 	 	 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	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ˆ fd„Zdedz  dedz  fd„Zˆ xZS )ÚAzureAIRerankConfigzB
    Azure AI Rerank - Follows the same Spec as Cohere Rerank
    NÚapi_baseÚmodelÚoptional_paramsÚreturnc                 ó  — |€t        d«      ‚t        j                  |«      }|j                  st        d|›d�«      ‚|j                  j                  d«      }|j                  d«      s|j                  d«      rt        |j                  |xs d¬«      «      S |j                  d«      s"|j                  d	«      s|j                  d
«      r*t        t        |j                  |xs d¬«      «      d¬«      S t        |d¬«      S )Nz]Azure AI API Base is required. api_base=None. Set in call or via `AZURE_AI_API_BASE` env var.z{Azure AI API Base must be an absolute URL including scheme (e.g. 'https://<resource>.services.ai.azure.com'). Got api_base=ú.ú/z
/v1/rerankz
/v2/rerank)Úpathz/v1z/v2z/providers/cohere/v2z/rerank)r   Úending_path)
Ú
ValueErrorÚhttpxÚURLÚis_absolute_urlr   ÚrstripÚendswithÚstrÚ	copy_withr
   )Úselfr   r   r   Úoriginal_urlÚnormalized_paths         úp/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/azure_ai/rerank/transformation.pyÚget_complete_urlz$AzureAIRerankConfig.get_complete_url   s  € ð ÐÜØoóð ô $Ÿi™i¨Ó1ˆØ×+Ò+Üð à (˜|¨1ð.óð ð
 ".×!2Ñ!2×!9Ñ!9¸#Ó!>ˆð
 ×#Ñ# LÔ1°_×5MÑ5MÈlÔ5[Ü�|×-Ñ-°?Ò3IÀcÐ-ÓJÓKÐKð ×$Ñ$ UÔ+Ø×'Ñ'¨Ô.Ø×'Ñ'Ð(>Ô?ä(Ü˜\×3Ñ3¸Ò9OÈCÐ3ÓPÓQØ%ôð ô %¨hÀLÔQÐQó    ÚheadersÚapi_keyÚlitellm_paramsc                 óŒ   — |€t        d«      xs t        j                  }i t        ||¬«      ¥dddœ¥}d|v r|d   |d<   i |¥|¥S )NÚAZURE_AI_API_KEY)r%   r&   zapplication/json)Úacceptzcontent-typeÚAuthorization)r   ÚlitellmÚ	azure_keyr   )r   r$   r   r%   r   r&   Údefault_headerss          r!   Úvalidate_environmentz(AzureAIRerankConfig.validate_environment?   sk   € ð ˆ?Ü$Ð%7Ó8ÒM¼G×<MÑ<MˆGð"
Ü'°ÈÔWð"
à(Ø.ò"
ˆð ˜gÑ%Ø/6°Ñ/GˆO˜OÑ,ð .�/Ð- WÐ-Ð-r#   Úraw_responseÚmodel_responseÚlogging_objÚrequest_datac	           
      ó¨   •— t         ‰| �  ||||||||¬«      }	| j                  |	j                  j	                  d«      «      }
|
|	j                  d<   |	S )N)r   r/   r0   r1   r%   r2   r   r&   z llm_provider-azureml-model-groupr   )ÚsuperÚtransform_rerank_responseÚ_get_base_modelÚ_hidden_paramsÚget)r   r   r/   r0   r1   r%   r2   r   r&   Úrerank_responseÚ
base_modelÚ	__class__s              €r!   r5   z-AzureAIRerankConfig.transform_rerank_responseW   sl   ø€ ô "'¡Ñ!BØØ%Ø)Ø#ØØ%Ø+Ø)ð "Có 	"
ˆð !×0Ñ0°×1OÑ1O×1SÑ1SÐTvÓ1wÓxˆ
Ø2<ˆ×&Ñ& 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!   r6   z#AzureAIRerankConfig._get_base_modelp   s)   € ØÐ$ØØÐ ?Ò?Ø;ØÐ ?Ò?Ø6Ø Ð r#   )N)NNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Údictr"   r   Úobjectr.   r   ÚResponser	   ÚLiteLLMLoggingObjr5   r6   Ú__classcell__)r;   s   @r!   r   r      s4  ø„ ñð (,ñ	%Rà˜‘*ð%Rð ð%Rð  ™ð	%Rð
 
ó%RðV #Ø'+Ø6:ñ.àð.ð ð.ð �t‘ð	.ð
  ™ð.ð    V Ñ,¨tÑ3ð.ð 
ó.ð< #ØØ "Ø!ñàðð —n‘nðð 'ð	ð
 'ðð �t‘ðð ðð ðð ðð 
õð2!°°t±ð !ÀÀdÁ
÷ !r#   r   )rB   Úcollections.abcr   Útypingr   r   r+   Ú*litellm.litellm_core_utils.litellm_loggingr   rF   Ú"litellm.llms.azure_ai.common_utilsr   Ú)litellm.llms.cohere.rerank.transformationr   Úlitellm.secret_managers.mainr   Úlitellm.types.utilsr	   Úlitellm.utilsr
   r   r>   r#   r!   ú<module>rP      s9   ðñõ $Ý ã ã Ý SÝ HÝ HÝ 7Ý .Ý /ôd!Ð,õ d!r#   