Ë
    uPêjšY  ã                   óV  — U d dl Z d dlZd dl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 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 d dlmZ d dlmZmZ d dlm Z  d dl!­ d dl"m#Z#m$Z$m%Z%  e«       Z&ee'd<    e«       Z(ee'd<    e«       Z)e$	 	 	 	 	 d!de*de*de+e*e,e*ef   z     de	d   dz  de-dz  de+e*   dz  de.dz  de-dz  de eeee f   z  fd„«       Z/e$	 	 	 	 	 	 d"de*de*de+e*e,e*ef   z     de	d   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 eeee f   z  fd „«       Z0y)#é    N)Ú	Coroutine)Úpartial)ÚAnyÚFinalÚLiteral)Úverbose_logger)ÚLogging)ÚBaseRerankConfig)ÚBedrockRerankHandler)ÚBaseLLMHTTPHandler)ÚTogetherAIRerank)ÚIBMWatsonXMixin)Úget_optional_rerank_params)Ú
get_secretÚget_secret_str)ÚRerankResponse)Ú*)ÚProviderConfigManagerÚclientÚexception_typeÚtogether_rerankÚbedrock_rerankÚmodelÚqueryÚ	documentsÚcustom_llm_provider)ÚcohereÚtogether_aiÚ	deepinfraÚfireworks_aiÚvoyageÚwatsonxÚtop_nÚrank_fieldsÚreturn_documentsÚmax_chunks_per_docÚreturnc              ‹   ón  K  — 	 t        j                  «       }	d|d<   t        t        | |||||||f	i |¤Ž}
t	        j
                  «       }t        |j                  |
«      }|	j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}|‚d}~ww xY w­w)zR
    Async: Reranks a list of documents based on their relevance to the query
    TÚarerankN)
ÚasyncioÚget_event_loopr   ÚrerankÚcontextvarsÚcopy_contextÚrunÚrun_in_executorÚiscoroutineÚ	Exception)r   r   r   r   r#   r$   r%   r&   ÚkwargsÚloopÚfuncÚctxÚfunc_with_contextÚinit_responseÚresponseÚes                   ú\/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/rerank_api/main.pyr)   r)      sÔ   è ø€ ð"Ü×,Ñ,Ó.ˆØ ˆˆyÑäÜØØØØØØØØñ
ð ñ
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHØˆð  Søð +ùô ò ØˆûðüsY   ‚B5„A0B" Á4BÁ5B" ÂB ÂB" ÂB5ÂB" ÂB5ÂB" Â B" Â"	B2Â+B-Â-B2Â2B5)
r   r   Úazure_aiÚinfinityÚlitellm_proxyÚhosted_vllmr   r    r!   r"   Úmax_tokens_per_docc	                 ó°  — |	j                  dd«      }
|	j                  d«      }|	j                  d«      }|	j                  dd«      }|	j                  dd«      }|	j                  dd«      }|	j                  dd«      }|	j                  d	d«      }	 |	j                  d
d«      du }t        dAi |	¤Ž}||dœ}|j                  «       D ��cg c]
  \  }}|€Œ	|‘Œ }}}t	        j
                  | ||j                  |j                  ¬«      \  } }}}t        j                  | t	        j                  |«      |j                  |¬«      }t        || |	j                  d«      xs t        j                  xs d|||||||||
|	¬«      }t        j                  d|«       t        |j                   t"        «      rt%        |j                   «      |_        t'        «       }|||di dœ|j)                  d¬«      ¥}|j+                  |	| |t-        |«      t-        |«      |¬«       |t        j                  j.                  k(  s|t        j                  j0                  k(  r¦|xs |j                  xs t        j                  }|xs/ |j                  xs! t        j                  xs t3        d«      xs d} | €t5        d«      ‚t6        j9                  | |||||j                   || ||xs t        j:                  xs i |||¬«      }!|!S |t        j                  j<                  k(  r�|xs+ |j                  xs t        j                  xs t3        d«      } t6        j9                  | |||||j                   |xs |j                  | ||xs t        j:                  xs i |||¬«      }!|!S |t        j                  j>                  k(  r°|xs |j                  xs t        j                  }|xs+ |j                  xs t        j                  xs tA        d«      } | €t5        d«      ‚t6        j9                  | |||||j                   |xs |j                  | ||xs t        j:                  xs i |||¬«      }!|!S |t        j                  jB                  k(  r•|xs= |j                  xs/ t        jD                  xs t3        d«      xs t        j                  }|€tG        d«      ‚|xs" |j                  xs t        j                  xs d } tH        j9                  | |||||||| |¬!«
      }!|!S |t        j                  jJ                  k(  rŽ|€tG        d"«      ‚|xs+ |j                  xs t        j                  xs t3        d#«      } t6        j9                  | |||||j                   |xs |j                  | ||xs t        j:                  xs i |||¬$«      }!|!S |t        j                  jL                  k(  r||€tG        d%«      ‚|j                  xs t3        d&«      xs d'} t6        j9                  | |||||j                   |xs |j                  | ||xs t        j:                  xs i |||¬$«      }!|!S |t        j                  jN                  k(  rŸ|xs+ |j                  xs t        j                  xs t3        d#«      } |xs t        j:                  xs i }"|	j                  d(«      }#|#ri |"¥|#¥}"tP        j9                  | ||||||||j)                  d¬«      |j                   | |"||¬)«      }!|!S |t        j                  jR                  k(  r‹|xs |j                  xs tA        d*«      }|xs |j                  xs tA        d+«      } | €tG        d,«      ‚t6        j9                  | |||||j                   || ||xs t        j:                  xs i |||¬«      }!|!S |t        j                  jT                  k(  r‹|xs |j                  xs tA        d-«      }|xs |j                  xs tA        d.«      } | €tG        d/«      ‚t6        j9                  | |||||j                   || ||xs t        j:                  xs i |||¬«      }!|!S |t        j                  jV                  k(  r¥|xs@ |j                  xs2 tA        d0«      xs% tA        d1«      xs tA        d2«      xs tA        d3«      }|xs |j                  xs tA        d4«      } t6        j9                  | |||||j                   || ||xs t        j:                  xs i |||¬«      }!|!S |t        j                  jX                  k(  r‹|xs& |j                  xs tA        d5«      xs tA        d6«      }|xs |j                  xs tA        d7«      } t6        j9                  | |||||j                   || ||xs t        j:                  xs i |||¬«      }!|!S |t        j                  jZ                  k(  rˆt]        j^                  t-        |«      ||¬8«      }$|$d9   }|$d:   } |$j                  d;«      �|$d;   |d;<   t6        j9                  | |||||j                   || ||xs t        j:                  xs i |||¬«      }!|!S t        |t        j`                  «      st        |t        jb                  «      r|d<k7  r|d=k7  rtG        d>|› �«      ‚t6        j9                  | |||||j                   |xs |j                  |xs |j                  ||xs t        j:                  xs i |||¬«      }!|!S c c}}w # t4        $ r)}%t        jd                  d?|%«       tg        | ||%¬@«      ‚d}%~%ww xY w)BzK
    Reranks a list of documents based on their relevance to the query
    ÚinstructionNÚheadersÚlitellm_logging_objÚlitellm_call_idÚproxy_server_requestÚ
model_infoÚuserr   r)   FT)r&   r@   )r   r   Úapi_baseÚapi_key)r   ÚproviderrI   Úpresent_version_paramsÚdrop_params)Úrerank_provider_configr   rM   r   r   r   r#   r$   r%   r&   r@   rB   Únon_default_paramszoptional_rerank_params: %s)rE   rF   rG   Úpreset_cache_keyÚstream_response)Úexclude_unset)r3   r   rH   Úoptional_paramsÚlitellm_paramsr   ÚCOHERE_API_BASEzhttps://api.cohere.comzNInvalid api base. api_base=None. Set in call or via `COHERE_API_BASE` env var.)r   r   Úprovider_configÚoptional_rerank_paramsÚlogging_objÚtimeoutrJ   rI   Ú	_is_asyncrC   r   Úmodel_responserT   ÚAZURE_AI_API_BASE)r   r   rW   rV   rX   rY   rJ   rI   rZ   rC   r   r[   rT   ÚINFINITY_API_BASEzPInvalid api base. api_base=None. Set in call or via `INFINITY_API_BASE` env var.ÚTOGETHERAI_API_KEYzSTogetherAI API key is required, please set 'TOGETHERAI_API_KEY' in your environmentzhttps://api.together.ai/v1)
r   r   r   r#   r$   r%   r&   rJ   rI   rZ   zMJina AI API key is required, please set 'JINA_AI_API_KEY' in your environmentÚBEDROCK_API_BASE)r   r   rW   rX   rV   rY   rJ   rI   rZ   rC   r   r[   rT   zSNvidia NIM API key is required, please set 'NVIDIA_NIM_API_KEY' in your environmentÚNVIDIA_NIM_API_BASEzhttps://ai.api.nvidia.comÚextra_headers)r   r   r   r#   r$   r%   r&   rZ   rS   rY   rI   ra   rX   r   ÚHOSTED_VLLM_API_KEYÚHOSTED_VLLM_API_BASEzbapi_base must be provided for Hosted VLLM rerank. Set in call or via HOSTED_VLLM_API_BASE env var.ÚDEEPINFRA_API_KEYÚDEEPINFRA_API_BASEz^api_base must be provided for Deepinfra rerank. Set in call or via DEEPINFRA_API_BASE env var.ÚFIREWORKS_API_KEYÚFIREWORKS_AI_API_KEYÚFIREWORKSAI_API_KEYÚFIREWORKS_AI_TOKENÚFIREWORKS_AI_API_BASEÚVOYAGE_API_KEYÚVOYAGE_AI_API_KEYÚVOYAGE_API_BASE)rS   rJ   rI   rJ   rI   Útokenr   r>   zUnsupported provider: zError in rerank: %s)r   r   Úoriginal_exception© )4ÚgetÚpopÚGenericLiteLLMParamsÚitemsÚlitellmÚget_llm_providerrI   rJ   r   Úget_provider_rerank_configÚLlmProvidersr   rM   r   ÚdebugÚ
isinstancerY   ÚstrÚfloatr   Ú
model_dumpÚupdate_from_kwargsÚdictÚCOHEREÚLITELLM_PROXYr   r2   Úbase_llm_http_handlerr,   rC   ÚAZURE_AIÚINFINITYr   ÚTOGETHER_AIÚtogetherai_api_keyÚ
ValueErrorr   ÚJINA_AIÚ
NVIDIA_NIMÚBEDROCKr   ÚHOSTED_VLLMÚ	DEEPINFRAÚFIREWORKS_AIÚVOYAGEÚWATSONXr   Úget_watsonx_credentialsÚCohereRerankConfigÚCohereRerankV2ConfigÚerrorr   )&r   r   r   r   r#   r$   r%   r&   r@   r3   rB   rC   rD   rE   rF   rG   rH   r   rZ   rS   Úunique_version_paramsÚkÚvrL   Ú_custom_llm_providerÚdynamic_api_keyÚdynamic_api_baserN   rW   r[   Úrerank_litellm_paramsrJ   rI   r9   Úmerged_headersÚextra_headers_from_kwargsÚcredentialsr:   s&                                         r;   r,   r,   L   s—  € ðD &,§Z¡Z°¸tÓ%D€KØ"(§*¡*¨YÓ"7€GØ4:·J±JÐ?TÓ4UÐØ)/¯©Ð4EÀtÓ)L€OØ"(§*¡*Ð-CÀTÓ"JÐØŸ
™
 <°Ó6€JØ—*‘*˜V TÓ*€DØ—J‘J˜x¨Ó.€FðgiØ!Ÿ:™: i°Ó7¸4Ð?ˆ	Ü!5Ñ!?¸Ñ!?ˆð #5Ø"4ñ(
Ðð 8M×7RÑ7RÓ7T×(f©t¨q°!ÐXYÑXeªÐ(fÐÑ(fô ×$Ñ$ØØ 3Ø$×-Ñ-Ø#×+Ñ+ô	
ñ	
ØØ ØØô ;P×:jÑ:jØÜ×)Ñ)Ð*>Ó?Ø$×-Ñ-Ø#9ô	;
Ðô /IØ#9ØØŸ
™
 =Ó1ÒQ´W×5HÑ5HÒQÈEØØØ 4ØØ#Ø-Ø1Ø1Ø#Ø%ô/
Ðô 	×ÑÐ9Ð;QÔRÜ�o×-Ñ-¬sÔ3Ü&+¨O×,CÑ,CÓ&DˆOÔ#ä .Ó 0ˆð  /Ø$8Ø$Ø $Ø!ñ(
ð ×(Ñ(°tÐ(Ó<ð(
Ðð 	×.Ñ.ØØØÜ Ð!7Ó8ÜÐ 5Ó6Ø 4ð 	/ô 	
ð !¤G×$8Ñ$8×$?Ñ$?Ò?Ø#¤w×';Ñ';×'IÑ'IÒIð #2Ò"_°_×5LÑ5LÒ"_ÔPW×P_ÑP_ˆGð !ò ,Ø"×+Ñ+ò,ä×#Ñ#ò,ô Ð/Ó0ò,ð ,ð ð ÐÜÐ pÓqÐqÜ,×3Ñ3ØØ$8Ø 6Ø'=Ø/Ø'×/Ñ/ØØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHð\
 ˆð	 "¤W×%9Ñ%9×%BÑ%BÒBà ò 3Ø"×+Ñ+ò3ä×#Ñ#ò3ô Ð1Ó2ð	 ô -×3Ñ3ØØ$8Ø'=Ø 6Ø/Ø'×/Ñ/Ø'ÒB¨?×+BÑ+BØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHðp	 ˆðS	 "¤W×%9Ñ%9×%BÑ%BÒBà%ÒS¨×)@Ñ)@ÒSÄGÇOÁOˆGð !Òw O×$<Ñ$<ÒwÄ×@PÑ@PÒwÔTbÐcvÓTwð ð ÐÜÐ rÓsÐsä,×3Ñ3ØØ$8Ø 6Ø'=Ø/Ø'×/Ñ/Ø'ÒB¨?×+BÑ+BØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHð| ˆð_ "¤W×%9Ñ%9×%EÑ%EÒEð  ò #Ø"×*Ñ*ò#ä×-Ñ-ò#ô Ð2Ó3ò#ô —?‘?ð ð ˆÜ Ð!vÓwÐwà'Òw¨?×+CÑ+CÒwÄw×GWÑGWÒwÐ[wˆHä&×-Ñ-ØØØ#ØØ'Ø!1Ø#5ØØ!Ø#ð .ó ˆHð@ ˆði "¤W×%9Ñ%9×%AÑ%AÒAØÐ&Ü Ð!pÓqÐqð !Òr O×$<Ñ$<ÒrÄ×@PÑ@PÒrÔT^Ð_qÓTrð ô -×3Ñ3ØØ$8Ø'=Ø/Ø 6Ø'×/Ñ/Ø'ÒB¨?×+BÑ+BØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHðX ˆð{ "¤W×%9Ñ%9×%DÑ%DÒDØÐ&Ü Ð!vÓwÐwð
  ×(Ñ(ò /ÜÐ3Ó4ò/à.ð ô -×3Ñ3ØØ$8Ø'=Ø/Ø 6Ø'×/Ñ/Ø'ÒB¨?×+BÑ+BØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHðb ˆðE "¤W×%9Ñ%9×%AÑ%AÒAà Òr O×$<Ñ$<ÒrÄ×@PÑ@PÒrÔT^Ð_qÓTrð ð
 %Ò=¬¯©Ò=¸2ˆNØ/5¯z©z¸/Ó/JÐ%Ù(Ø!P NÐ!PÐ6OÐ!P�ä%×,Ñ,ØØØ#ØØ'Ø!1Ø#5Ø#Ø /× :Ñ :ÈÐ :Ó NØ'×/Ñ/Ø!Ø,Ø/Øð -ó ˆHðn ˆðO "¤W×%9Ñ%9×%EÑ%EÒEà%Òi¨×)@Ñ)@ÒiÄNÐShÓDiˆGà'Òm¨?×+CÑ+CÒmÄ~ÐVlÓGmˆHàÐÜ Øxóð ô -×3Ñ3ØØ$8Ø 6Ø'=Ø/Ø'×/Ñ/ØØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHðx ˆðY "¤W×%9Ñ%9×%CÑ%CÒCØ%Òg¨×)@Ñ)@ÒgÄNÐSfÓDgˆGà'Òk¨?×+CÑ+CÒkÄ~ÐVjÓGkˆHàÐÜ Øtóð ô -×3Ñ3ØØ$8Ø 6Ø'=Ø/Ø'×/Ñ/ØØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHðD ˆðg "¤W×%9Ñ%9×%FÑ%FÒFàò 8Ø"×*Ñ*ò8ä!Ð"5Ó6ò8ô "Ð"8Ó9ò8ô "Ð"7Ó8ò	8ô
 "Ð"6Ó7ð ð (Òn¨?×+CÑ+CÒnÄ~ÐVmÓGnˆHä,×3Ñ3ØØ$8Ø 6Ø'=Ø/Ø'×/Ñ/ØØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHðN ˆðq "¤W×%9Ñ%9×%@Ñ%@Ò@àò 7Ø"×*Ñ*ò7ä!Ð"2Ó3ò7ô "Ð"5Ó6ð	 ð (Òh¨?×+CÑ+CÒhÄ~ÐVgÓGhˆHä,×3Ñ3ØØ$8Ø 6Ø'=Ø/Ø'×/Ñ/ØØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHð\ ˆð "¤W×%9Ñ%9×%AÑ%AÒAÜ!0×!HÑ!HÜ $ _Ó 5Ø'Ø)ô"ˆKð " )Ñ,ˆGØ" :Ñ.ˆHà�‰˜wÓ'Ð3Ø2=¸gÑ2FÐ& wÑ/ä,×3Ñ3ØØ$8Ø 6Ø'=Ø/Ø'×/Ñ/ØØ!Ø#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHðd ˆô3 Ð5´w×7QÑ7QÔRÜ!Ð"8¼'×:VÑ:VÔWà(¨HÒ4Ø(¨OÒ;ä Ð#9Ð:NÐ9OÐ!PÓQÐQä,×3Ñ3ØØ$8Ø 6Ø'=Ø/Ø'×/Ñ/Ø'ÒB¨?×+BÑ+BØ)ÒE¨_×-EÑ-EØ#ØÒ8¤7§?¡?Ò8°bØØ-Ø4ð 4ó ˆHð" ˆùóy )gøôz ò iÜ×ÑÐ2°AÔ6Ü 5Ð>QÐfgÔhÐhûðiús…   Â7l# Ã
lÃlÃHl# Ë5Bl# ÎCl# Ñ B1l# ÔB*l# Ö=Bl# ÙB;l# ÜB'l# Þ:B'l# á"Cl# ä$B'l# çB$l# é1B+l# ìl# ì#	mì,$mím)NNNNN)NNNTNN)1r*   r-   Úcollections.abcr   Ú	functoolsr   Útypingr   r   r   ru   Úlitellm._loggingr   Ú*litellm.litellm_core_utils.litellm_loggingr	   ÚLiteLLMLoggingObjÚ+litellm.llms.base_llm.rerank.transformationr
   Ú#litellm.llms.bedrock.rerank.handlerr   Ú*litellm.llms.custom_httpx.llm_http_handlerr   Ú'litellm.llms.together_ai.rerank.handlerr   Ú!litellm.llms.watsonx.common_utilsr   Úlitellm.rerank_api.rerank_utilsr   Úlitellm.secret_managers.mainr   r   Úlitellm.types.rerankr   Úlitellm.types.routerÚlitellm.utilsr   r   r   r   Ú__annotations__r   r‚   r{   Úlistr   ÚintÚboolr)   r,   rp   ó    r;   ú<module>r³      s  ðÜ Û Ý %Ý ß &Ñ &ã Ý +Ý SÝ HÝ DÝ IÝ DÝ =Ý Fß CÝ /Ü "ß GÑ Gñ *Ó+€�Ó +Ù,Ó.€�Ó .Ù*Ó,Ð ð ð 	ØØ$(Ø$(Ø%)ñ+Øð+àð+ð �C˜$˜s C˜x™.Ñ(Ñ)ð+ð
 	ÐYÑZÐ]aÑað+ð �‰:ð+ð �c‘˜TÑ!ð+ð ˜T‘kð+ð ˜d™
ð+ð �i  S¨.Ð 8Ñ9Ñ9ò+ó ð+ð\ ð& 	ØØ$(Ø$(Ø%)Ø%)ñ/PiØðPiàðPið �C˜$˜s C˜x™.Ñ(Ñ)ðPið
 	ð	ñ	
ð ñ	ðPið& �‰:ð'Pið( �c‘˜TÑ!ð)Pið* ˜T‘kð+Pið, ˜d™
ð-Pið. ˜d™
ð/Pið2 �i  S¨.Ð 8Ñ9Ñ9ò3Pió ñPir²   