
    ^h@.                     b   S SK r S SKrS SKJr  S SKJrJrJrJrJ	r	J
r
Jr  S SKrS SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJrJ r   S SK!J"r"J#r#  S SK$7  S SK%J&r&J'r'J(r(  \" 5       r)\" 5       r*\" 5       r+\" 5       r,\'     SS\-S\-S\\\-\\-\4   4      S\
\	S      S\
\.   S\
\\-      S\
\/   S\
\.   S\\#\\\\#4   4   4S jj5       r0\'     SS\-S\-S\\\-\\-\4   4      S\
\	S      S\
\.   S\
\\-      S\
\/   S\
\.   S\\#\\\\#4   4   4S jj5       r1g)    N)partial)Any	CoroutineDictListLiteralOptionalUnion)verbose_logger)Logging)BaseRerankConfig)BedrockRerankHandler)BaseLLMHTTPHandler)JinaAIRerank)TogetherAIRerank)get_optional_rerank_params)
get_secretget_secret_str)OptionalRerankParamsRerankResponse)*)ProviderConfigManagerclientexception_typemodelquery	documentscustom_llm_provider)coheretogether_aitop_nrank_fieldsreturn_documentsmax_chunks_per_docreturnc                   #     [         R                  " 5       n	SUS'   [        [        U UUUUUUU4	0 UD6n
[        R
                  " 5       n[        UR                  U
5      nU	R                  SU5      I Sh  vN n[         R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  nUeSnAff = f7f)zJ
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                   Q/home/james-whalen/.local/lib/python3.13/site-packages/litellm/rerank_api/main.pyr'   r'      s     %%' y
 
 &&(#CGGT2"2249JKK}--**H  %H L +  sY   B>A2B* 6B&7$B* B(B* !B>"B* %B>&B* (B* *
B;4B66B;;B>)r   r    azure_aiinfinityc                    UR                  S5      n	UR                  S5      n
UR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  S0 5      nUR                  SS5      nUR                  S	S5      n UR                  S
S5      SL n[        S+0 UD6n[        R                  " U UUR
                  UR                  S9u  n nnn[        R                  " U [        R                  " U5      S9n[        UU UR                  S5      =(       d    [        R                  =(       d    SUUUUUUUUS9n[        UR                  [        5      (       a  [        UR                  5      Ul        [!        5       nU
R#                  U UUUUUUS0 S.UR%                  SS9EUS9  US:X  a  U=(       d#    UR                  =(       d    [        R                  nU=(       d>    UR
                  =(       d+    [        R
                  =(       d    ['        S5      =(       d    SnUc  [)        S5      e[*        R-                  U UUU
UR                  U=(       d    UR                  UUU	=(       d    [        R.                  =(       d    0 UUS9nU$ US:X  a  U=(       d5    UR
                  =(       d"    [        R
                  =(       d    ['        S5      n[*        R-                  U UUU
UR                  U=(       d    UR                  UUU	=(       d    [        R.                  =(       d    0 UUS9nU$ US:X  a  U=(       d#    UR                  =(       d    [        R                  nU=(       d5    UR
                  =(       d"    [        R
                  =(       d    [1        S5      nUc  [)        S5      e[*        R-                  U UUU
UR                  U=(       d    UR                  UUU	=(       d    [        R.                  =(       d    0 UUS9nU$ US:X  a  U=(       dL    UR                  =(       d9    [        R2                  =(       d"    ['        S5      =(       d    [        R                  nUc  [5        S 5      e[6        R-                  U UUUUUUUUS!9	nU$ US":X  a+  Uc  [5        S#5      e[8        R-                  U UUUUUUUUS$9	nU$ US%:X  aj  U=(       d5    UR
                  =(       d"    [        R
                  =(       d    ['        S&5      n[:        R-                  U UUUUUUUUR%                  SS9UU
S'9nU$ [5        S(U 35      e! [(         a1  n[<        R>                  " S)[        U5       35        [A        XUS*9eSnAff = f),zC
Reranks a list of documents based on their relevance to the query
headerslitellm_logging_objlitellm_call_idNproxy_server_request
model_infometadatauserr   r'   FT)r   r   api_baseapi_key)r   providerdrop_params)rerank_provider_configr   rG   r   r   r   r!   r"   r#   r$   non_default_params)r?   r@   rA   rB   preset_cache_keystream_response)exclude_unset)r   rC   optional_paramslitellm_paramsr   r   COHERE_API_BASEzhttps://api.cohere.comzNInvalid api base. api_base=None. Set in call or via `COHERE_API_BASE` env var.)r   r   optional_rerank_paramslogging_objtimeoutrE   rD   	_is_asyncr=   r   model_responser:   AZURE_AI_API_BASEr;   INFINITY_API_BASEzPInvalid api base. api_base=None. Set in call or via `INFINITY_API_BASE` env var.r    TOGETHERAI_API_KEYzSTogetherAI API key is required, please set 'TOGETHERAI_API_KEY' in your environment)	r   r   r   r!   r"   r#   r$   rE   rS   jina_aizMJina AI API key is required, please set 'JINA_AI_API_KEY' in your environment)	r   rE   r   r   r!   r"   r#   r$   rS   bedrockBEDROCK_API_BASE)r   r   r   r!   r"   r#   r$   rS   rM   rD   rQ   zUnsupported provider: zError in rerank: )r   r   original_exception )!getpopGenericLiteLLMParamslitellmget_llm_providerrD   rE   r   get_provider_rerank_configLlmProvidersr   rG   
isinstancerR   strfloatr   update_environment_variables
model_dumpr   r0   base_llm_http_handlerr*   r=   r   togetherai_api_key
ValueErrortogether_rerankjina_ai_rerankbedrock_rerankr   errorr   )r   r   r   r   r!   r"   r#   r$   r1   r=   r>   r?   r@   rA   rB   rC   r   rS   rM   _custom_llm_providerdynamic_api_keydynamic_api_baserH   rP   rT   rE   rD   r7   r8   s                                r9   r*   r*   J   s   " %jj3G-3ZZ8M-N%+ZZ0A4%HO!::&<dCL$/Jzz*b)H::fd#DZZ$'FQ
JJy%0D8	.88 $$$7(11'//	 	G#_6F "<< --.BC 	 8R#9

=1QW5H5HQE 4#-1%8
 o--s33&+O,C,C&DO#')882#2(<($$(#% ",,4,@ !5 	9 	
"  8+  M?#:#:Mgoo 
 ! ,"++,##, /0, ,  d  -33$8'=/'//'B?+B+B!#87??8b- 4 HD k "Z/  3"++3##3 12	  -33$8'=/'//'B?+B+B!#87??8b- 4 H\ C "Z/%S)@)@SGOOG ! 7"++7##7 ""56	  f  -33$8'=/'//'B?+B+B!#87??8b- 4 Hb I "]2   #"**#--# 23# ??   i  '--#'!1#5# . 
Hj U "Y.& c  &,,'#'!1#5# - 
HH 3 "Y.  2"++2##2 01	  &,,#'!1#5# / : : : N!/ - H"  56J5KLMM  
0Q9:UV
 	

sA   HU BU 9CU BU 0U 
A/U :U 
V,U>>V)NNNNN)NNNTN)2r(   r+   	functoolsr   typingr   r   r   r   r   r	   r
   r`   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.jina_ai.rerank.handlerr   'litellm.llms.together_ai.rerank.handlerr   litellm.rerank_api.rerank_utilsr   litellm.secret_managers.mainr   r   litellm.types.rerankr   r   litellm.types.routerlitellm.utilsr   r   r   rl   rm   rn   ri   re   intboolr'   r*   r\       r9   <module>r      s      G G G  + S H D I < D F C E " G G #$%'*,  
 GK'+'+(,))) E#tCH~-./) "'*A"BC	)
 C=) $s)$) tn) !) >9S#~%=>>?) )X  	'+'+(,i
i
i
 E#tCH~-./i
 "?@	i
 C=i
 $s)$i
 tni
 !i
 >9S#~%=>>?i
 i
r   