Ë
    uPêjj  ã                   ó¢   — 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mZmZmZmZmZ d
dlmZ  G d„ de«      Zy)z›
Transformation logic from Cohere's /v1/rerank format to Infinity's  `/v1/rerank` format.

Why separate file? Make it easy to see how transformation works
é    )ÚMapping)ÚFinalN)Úuuid)ÚLogging)ÚCohereRerankConfig)Úget_secret_str)ÚRerankBilledUnitsÚRerankResponseÚRerankResponseDocumentÚRerankResponseMetaÚRerankResponseResultÚRerankTokensé   )ÚInfinityErrorc                   óÈ   — e 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d„Zy)ÚInfinityRerankConfigNÚapi_baseÚmodelÚoptional_paramsÚreturnc                 ón   — |€t        d«      ‚|j                  d«      }|j                  d«      s|› d�}|S )Nz(api_base is required for Infinity rerankú/z/rerank)Ú
ValueErrorÚrstripÚendswith)Úselfr   r   r   s       úp/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/infinity/rerank/transformation.pyÚget_complete_urlz%InfinityRerankConfig.get_complete_url   sC   € ð ÐÜÐGÓHÐHà—?‘? 3Ó'ˆØ× Ñ  Ô+Ø"˜ 7Ð+ˆHØˆó    ÚheadersÚapi_keyÚlitellm_paramsc                 ó�   — |€*t        d«      xs t        d«      xs t        j                  }d|› �dddœ}d|v r|d   |d<   i |¥|¥S )NÚINFINITY_API_KEYzBearer zapplication/json)ÚAuthorizationÚacceptzcontent-typer%   )r   ÚlitellmÚinfinity_key)r   r    r   r!   r   r"   Údefault_headerss          r   Úvalidate_environmentz)InfinityRerankConfig.validate_environment,   so   € ð ˆ?Ü$Ð%7Ó8Òv¼NÐK]Ó<^ÒvÔbi×bvÑbvˆGð  ' w iÐ0Ø(Ø.ñ"
ˆð ˜gÑ%Ø/6°Ñ/GˆO˜OÑ,ð .�/Ð- WÐ-Ð-r   Úraw_responseÚmodel_responseÚlogging_objÚrequest_datac	                 óp  — 	 |j                  «       }	t        di |	j                  di «      ¤Ž}
t        |	j                  di «      j                  dd«      |	j                  di «      j                  dd«      |	j                  di «      j                  dd«      z
  ¬«      }t        |
|¬«      }g }|	j                  d«      r�|	j                  d«      D ]m  }t        |j                  d	«      |j                  d
«      ¬«      }|j                  d«      rt        |j                  d«      ¬«      |d<   |j                  |«       Œo |€t        d|	› �«      ‚t        |	j                  d«      xs t        t        j                   «       «      ||¬«      S # t        $ r" t        |j                  |j                  ¬«      ‚w xY w)z…
        Transform Infinity rerank response

        No transformation required, Infinity follows Cohere API response format
        )ÚmessageÚstatus_codeÚusageÚprompt_tokensr   Útotal_tokens)Úinput_tokensÚoutput_tokens)Úbilled_unitsÚtokensÚresultsÚindexÚrelevance_score)r:   r;   Údocument)Útextz!No results found in the response=Úid)r>   r9   Úmeta© )ÚjsonÚ	Exceptionr   r=   r1   r	   Úgetr   r   r   r   Úappendr   r
   Ústrr   Úuuid4)r   r   r+   r,   r-   r!   r.   r   r"   Úraw_response_jsonÚ_billed_unitsÚ_tokensÚrerank_metaÚcohere_resultsÚresultÚ_rerank_responses                   r   Útransform_rerank_responsez.InfinityRerankConfig.transform_rerank_responseD   s®  € ð 	aØ'3×'8Ñ'8Ó':Ðô  1ÑVÐ3D×3HÑ3HÈÐRTÓ3UÑVˆÜ%Ø*×.Ñ.¨w¸Ó;×?Ñ?ÀÐQRÓSà!×%Ñ% g¨rÓ2×6Ñ6°~ÀqÓIØ#×'Ñ'¨°Ó4×8Ñ8¸È!ÓLñMô
ˆô 0¸]ÐSZÔ[ˆà<>ˆØ× Ñ  Ô+Ø+×/Ñ/°	Ó:ò 8�Ü#7Ø Ÿ*™* WÓ-Ø$*§J¡JÐ/@Ó$Aô$Ð ð —:‘:˜jÔ)Ü3IÈvÏzÉzÐZdÓOeÔ3fÐ$ ZÑ0Ø×%Ñ%Ð&6Õ7ð8ð Ð!ÜÐ@ÐARÐ@SÐTÓUÐUäØ ×$Ñ$ TÓ*Ò?¬c´$·*±*³,Ó.?Ø"Øô
ð 	
øô5 ò 	aÜ¨×(9Ñ(9À|×G_ÑG_Ô`Ð`ð	aús   ‚F
 Æ
+F5)N)NNN)Ú__name__Ú
__module__Ú__qualname__rE   Údictr   r   Úobjectr*   ÚhttpxÚResponser
   ÚLiteLLMLoggingObjrN   r@   r   r   r   r      s  „ ð
 (,ñ	à˜‘*ðð ðð  ™ð	ð
 
óð$ #Ø'+Ø6:ñ.àð.ð ð.ð �t‘ð	.ð
  ™ð.ð    V Ñ,¨tÑ3ð.ð 
ó.ð< #ØØ "Ø!ñ0
àð0
ð —n‘nð0
ð 'ð	0
ð
 'ð0
ð �t‘ð0
ð ð0
ð ð0
ð ð0
ð 
ô0
r   r   )Ú__doc__Úcollections.abcr   Útypingr   rT   r'   Úlitellm._uuidr   Ú*litellm.litellm_core_utils.litellm_loggingr   rV   Ú)litellm.llms.cohere.rerank.transformationr   Úlitellm.secret_managers.mainr   Úlitellm.types.rerankr	   r
   r   r   r   r   Úcommon_utilsr   r   r@   r   r   ú<module>r`      sB   ðñõ $Ý ã ã Ý Ý SÝ HÝ 7÷÷ õ )ôW
Ð-õ W
r   