
    ^h'                     z    S r SSKJrJrJrJrJr  SSKrSSKJ	r	  SSK
JrJr  SSKJr  SSKJrJr   " S S	\	5      rg)
zY
Re rank api

LiteLLM supports the re rank API format, no paramter transformation occurs
    )AnyDictListOptionalUnionN)BaseLLM)_get_httpx_clientget_async_httpx_client)TogetherAIRerankConfig)RerankRequestRerankResponsec                       \ rS rSr     SS\S\S\S\\\\\\4   4      S\	\
   S\	\\      S	\	\   S
\	\
   S\	\   S\4S jjrS\\\4   S\S\4S jrSrg)TogetherAIRerank   Nmodelapi_keyquery	documentstop_nrank_fieldsreturn_documentsmax_chunks_per_doc	_is_asyncreturnc
           	      h   [        5       n
[        UUUUUUS9nUR                  SS9nUb  [        S5      eU	(       a  U R	                  X5      $ U
R                  SSSSU 3S.US	9nUR                  S
:w  a  [        UR                  5      eUR                  5       n[        5       R                  U5      $ )N)r   r   r   r   r   r   T)exclude_nonez.TogetherAI does not support max_chunks_per_doc"https://api.together.xyz/v1/rerankapplication/jsonBearer acceptzcontent-typeauthorizationheadersjson   )r	   r   dict
ValueErrorasync_rerankpoststatus_code	Exceptiontextr%   r   _transform_response)selfr   r   r   r   r   r   r   r   r   clientrequest_datarequest_data_dictresponse_json_responses                  a/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/together_ai/rerank/handler.pyrerankTogetherAIRerank.rerank   s     #$$#-
 )--4-@)MNN$$%6@@;;0, 2#*7)!4
 #  
 3&HMM**!%';;NKK    r2   c                 ,  #    [        [        R                  R                  S9nUR	                  SSSSU 3S.US9I S h  vN nUR
                  S:w  a  [        UR                  5      eUR                  5       n[        5       R                  U5      $  NR7f)N)llm_providerr   r   r   r    r#   r&   )r
   litellmLlmProvidersTOGETHER_AIr*   r+   r,   r-   r%   r   r.   )r/   r2   r   r0   r3   r4   s         r5   r)   TogetherAIRerank.async_rerankD   s     
 ( --99
  0, 2#*7)!4
 # % 
 
 3&HMM**!%';;NKK
s   =BB AB )NNTNF)__name__
__module____qualname____firstlineno__strr   r   r   r   r   intboolr   r6   r)   __static_attributes__r?   r8   r5   r   r      s      $+/+/,0$).L.L .L 	.L
 c4S>123.L }.L d3i(.L #4..L %SM.L D>.L 
.L`LS>L L 
	Lr8   r   )__doc__typingr   r   r   r   r   r;   litellm.llms.baser   &litellm.llms.custom_httpx.http_handlerr	   r
   .litellm.llms.together_ai.rerank.transformationr   litellm.types.rerankr   r   r   r?   r8   r5   <module>rN      s6    4 3  % R >ILw ILr8   