Ë
    uPêj  ã                   ó¼   — d Z ddlmZ ddlmZm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mZmZmZmZmZmZmZ  G d„ de«      Z G d„ de«      Zy)z-
Transformation logic for Hosted VLLM rerank
é    )ÚMapping)ÚAnyÚFinalN)Úuuid)ÚLogging)ÚBaseLLMException)ÚBaseRerankConfig©Úget_secret_str)ÚOptionalRerankParamsÚRerankBilledUnitsÚRerankRequestÚRerankResponseÚRerankResponseDocumentÚRerankResponseMetaÚRerankResponseResultÚRerankTokensc                   óP   ‡ — e Zd Z	 ddededeej                  z  dz  fˆ fd„Zˆ xZ	S )ÚHostedVLLMRerankErrorNÚstatus_codeÚmessageÚheadersc                 ó*   •— t         ‰| �  |||¬«       y )N)r   r   r   )ÚsuperÚ__init__)Úselfr   r   r   Ú	__class__s       €ús/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/rerank/transformation.pyr   zHostedVLLMRerankError.__init__   s   ø€ ô 	‰Ñ [¸'È7ÐÕSó    ©N)
Ú__name__Ú
__module__Ú__qualname__ÚintÚstrÚdictÚhttpxÚHeadersr   Ú__classcell__)r   s   @r   r   r      sA   ø„ ð
 04ñ	TàðTð ðTð ˜Ÿ™Ñ%¨Ñ,÷	Tñ Tr   r   c                   óà  — e Zd Zd%d„Z	 d&dedz  dededz  defd„Zdedefd„Z	 	 	 	 	 	 	 d'd	edz  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(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&dededede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d ed!edeej,                  z  defd"„Zd#edefd$„Zy))ÚHostedVLLMRerankConfigÚreturnNc                  ó   — y r    © )r   s    r   r   zHostedVLLMRerankConfig.__init__&   s   € Ør   Úapi_baseÚmodelÚoptional_paramsc                 ó¸   — |rN|j                  d«      }|j                  d«      r|j                  dd«      }|S |j                  d«      s|› d�}|S t        d«      ‚)Nú/z
/v1/rerankz/rerankz0api_base must be provided for Hosted VLLM rerank)ÚrstripÚendswithÚreplaceÚ
ValueError)r   r/   r0   r1   s       r   Úget_complete_urlz'HostedVLLMRerankConfig.get_complete_url)   si   € ñ à—‘ sÓ+ˆHà× Ñ  Ô.Ø#×+Ñ+¨L¸)ÓD�ð ˆOð ×&Ñ& yÔ1Ø&˜Z wÐ/�ØˆOÜÐKÓLÐLr   c                 ó
   — g d¢S )N)ÚqueryÚ	documentsÚtop_nÚrank_fieldsÚreturn_documentsÚinstructionr.   )r   r0   s     r   Ú"get_supported_cohere_rerank_paramsz9HostedVLLMRerankConfig.get_supported_cohere_rerank_params:   s   € ò
ð 	
r   Únon_default_paramsÚdrop_paramsr:   r;   Úcustom_llm_providerr<   r=   r>   Úmax_chunks_per_docÚmax_tokens_per_docr?   c                 ó`   — |
�t        d«      ‚t        |||||	¬«      }|�||d<   t        |«      S )z7
        Map parameters for Hosted VLLM rerank
        z/Hosted VLLM does not support max_chunks_per_doc)r:   r;   r<   r=   r>   r?   )r7   r   r&   )r   rA   r0   rB   r:   r;   rC   r<   r=   r>   rD   rE   r?   Úmapped_paramss                 r   Úmap_cohere_rerank_paramsz/HostedVLLMRerankConfig.map_cohere_rerank_paramsD   sL   € ð$ Ð)ÜÐNÓOÐOä3ØØØØ#Ø-ô 
ˆð Ð"Ø+6ˆM˜-Ñ(ä�MÓ"Ð"r   r   Úapi_keyÚlitellm_paramsc                 óZ   — |€t        d«      xs d}d|› �dddœ}d|v r|d   |d<   i |¥|¥S )NÚHOSTED_VLLM_API_KEYzfake-api-keyzBearer zapplication/json)ÚAuthorizationÚacceptzcontent-typerM   r
   )r   r   r0   rI   r1   rJ   Údefault_headerss          r   Úvalidate_environmentz+HostedVLLMRerankConfig.validate_environmenti   s]   € ð ˆ?Ü$Ð%:Ó;ÒM¸~ˆGð  ' w iÐ0Ø(Ø.ñ"
ˆð ˜gÑ%Ø/6°Ñ/GˆO˜OÑ,ð .�/Ð- WÐ-Ð-r   Úoptional_rerank_paramsc                 ó  — d|vrt        d«      ‚d|vrt        d«      ‚t        ||d   |d   |j                  dd «      |j                  dd «      |j                  dd «      |j                  dd «      ¬	«      }|j                  d
¬«      S )Nr:   z(query is required for Hosted VLLM rerankr;   z,documents is required for Hosted VLLM rerankr<   r=   r>   r?   )r0   r:   r;   r<   r=   r>   r?   T)Úexclude_none)r7   r   ÚgetÚ
model_dump)r   r0   rQ   r   rJ   Úrerank_requests         r   Útransform_rerank_requestz/HostedVLLMRerankConfig.transform_rerank_request�   s¢   € ð Ð0Ñ0ÜÐGÓHÐHØÐ4Ñ4ÜÐKÓLÐLä -ØØ(¨Ñ1Ø,¨[Ñ9Ø(×,Ñ,¨W°dÓ;Ø.×2Ñ2°=À$ÓGØ3×7Ñ7Ð8JÈDÓQØ.×2Ñ2°=À$ÓGô!
ˆð ×(Ñ(°dÐ(Ó;Ð;r   Úraw_responseÚmodel_responseÚlogging_objÚrequest_datac	                 óª   — 	 |j                  «       }	| j                  |	«      S # t        $ r& t        d|j                  › d|j                  › �«      ‚w xY w)z>
        Process response from Hosted VLLM rerank API
        zError parsing response: z, status_code=)ÚjsonÚ	Exceptionr7   Útextr   Ú_transform_response)
r   r0   rX   rY   rZ   rI   r[   r1   rJ   Úraw_response_jsons
             r   Útransform_rerank_responsez0HostedVLLMRerankConfig.transform_rerank_response˜   sf   € ð	uØ'3×'8Ñ'8Ó':Ðð ×'Ñ'Ð(9Ó:Ð:øô ò 	uÜÐ7¸×8IÑ8IÐ7JÈ.ÐYe×YqÑYqÐXrÐsÓtÐtð	uús	   ‚# £/AÚerror_messager   c                 ó   — t        |||¬«      S )N)r   r   r   )r   )r   rc   r   r   s       r   Úget_error_classz&HostedVLLMRerankConfig.get_error_class­   s   € Ü$¨]ÈÐ]dÔeÐer   Úresponsec           	      ó²  ‡— |j                  di «      }t        |j                  dd«      ¬«      }t        |j                  dd«      ¬«      }t        ||¬«      }|j                  d«      }|€t	        d|› �«      ‚g }|D ]œ  Št        ˆfd	„d
D «       «      st	        d‰› �«      ‚‰j                  di «      }|r%t        t        |j                  dd«      «      ¬«      nd }	t        t        ‰d   «      t        ‰d   «      ¬
«      }
|	r|	|
d<   |j                  |
«       Œž t        |j                  d«      xs t        t        j                  «       «      ||¬«      S )NÚusageÚtotal_tokensr   )ri   )Úinput_tokens)Úbilled_unitsÚtokensÚresultsz!No results found in the response=c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr    r.   )Ú.0ÚkeyÚresults     €r   ú	<genexpr>z=HostedVLLMRerankConfig._transform_response.<locals>.<genexpr>Á   s   øè ø€ ÒM¨�s˜f”}ÑMùs   ƒ)ÚindexÚrelevance_scorez&Missing required fields in the result=Údocumentr_   Ú )r_   rs   rt   Úid)rw   rm   Úmeta)rT   r   r   r   r7   Úallr   r%   r   r$   ÚfloatÚappendr   r   Úuuid4)r   rf   Ú
usage_dataÚ_billed_unitsÚ_tokensÚrerank_metaÚ_resultsÚrerank_resultsÚdocument_dataru   Úrerank_resultrq   s              @r   r`   z*HostedVLLMRerankConfig._transform_response°   sT  ø€ à$ŸL™L¨°"Ó5ˆ
Ü0¸j¿n¹nÈ^Ð]^Ó>_Ô`ˆÜ%°:·>±>À.ÐRSÓ3TÔUˆÜ/¸]ÐSZÔ[ˆð .6¯\©\¸)Ó-DˆàÐÜÐ@ÀÀ
ÐKÓLÐLà<>ˆàò 	1ˆFäÓMÐ0LÔMÔMÜ Ð#IÈ&ÈÐ!RÓSÐSð #ŸJ™J z°2Ó6ˆMÙZgÔ-´3°}×7HÑ7HÈÐQSÓ7TÓ3UÕVÐmqˆHô 1Ü˜& ™/Ó*Ü % fÐ->Ñ&?Ó @ôˆMñ Ø,4�˜jÑ)à×!Ñ! -Õ0ð'	1ô* Ø�|‰|˜DÓ!Ò6¤S¬¯©«Ó%6Ø"Øô
ð 	
r   )r,   Nr    )NNNTNNN)NNN)r!   r"   r#   r   r%   r&   r8   Úlistr@   Úboolr   r$   rH   r   ÚobjectrP   rW   r'   ÚResponser   ÚLiteLLMLoggingObjrb   r(   r   re   r`   r.   r   r   r+   r+   %   s‚  „ óð (,ñ	Mà˜‘*ðMð ðMð  ™ð	Mð
 
óMð"
¸ð 
Àó 
ð" +/Ø Ø(,Ø(,Ø)-Ø)-Ø"&ñ##à  4™Kð##ð ð##ð ð	##ð
 ð##ð ˜˜d 3¨ 8™nÑ,Ñ-ð##ð ! 4™Zð##ð �T‰zð##ð ˜#‘Y Ñ%ð##ð  ™+ð##ð   $™Jð##ð   $™Jð##ð ˜4‘Zð##ð 
ó##ðR #Ø'+Ø6:ñ.àð.ð ð.ð �t‘ð	.ð
  ™ð.ð    V Ñ,¨tÑ3ð.ð 
ó.ð: '+ñ<àð<ð !%ð<ð ð	<ð
 ˜t™ð<ð 
ó<ð: #ØØ "Ø!ñ;àð;ð —n‘nð;ð 'ð	;ð
 'ð;ð �t‘ð;ð ð;ð ð;ð ð;ð 
ó;ð*f¨Sð f¸sð fÈTÐTY×TaÑTaÑMað fÐfvó fð(
¨Dð (
°^ô (
r   r+   )Ú__doc__Úcollections.abcr   Útypingr   r   r'   Úlitellm._uuidr   Ú*litellm.litellm_core_utils.litellm_loggingr   r‰   Ú)litellm.llms.base_llm.chat.transformationr   Ú+litellm.llms.base_llm.rerank.transformationr	   Úlitellm.secret_managers.mainr   Úlitellm.types.rerankr   r   r   r   r   r   r   r   r   r+   r.   r   r   ú<module>r“      sQ   ðñõ $ß ã å Ý SÝ FÝ HÝ 7÷	÷ 	ó 	ôTÐ,ô Tôs
Ð-õ s
r   