
    g
                     z    d Z ddlmZmZmZmZmZ ddlZddlm	Z	 ddl
mZmZ ddlmZ ddlmZmZ  G d d	e	      Zy)
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)JinaAIRerankConfig)RerankRequestRerankResponsec                       e Zd Z	 	 	 	 	 ddedededeeeeeef   f      dee	   deee      dee
   d	ee	   d
ee
   defdZdeeef   dedefdZy)JinaAIRerankNmodelapi_keyquery	documentstop_nrank_fieldsreturn_documentsmax_chunks_per_doc	_is_asyncreturnc
                 T   t               }
t        ||||||      }|j                  d      }|	r| j                  ||      S |
j	                  dddd| d|      }|j
                  d	k7  rt        |j                        |j                         }t               j                  |      S )
N)r   r   r   r   r   r   T)exclude_nonehttps://api.jina.ai/v1/rerankapplication/jsonBearer acceptzcontent-typeauthorizationheadersjson   )r	   r   dict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                  X/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/jina_ai/rerank/handler.pyrerankzJinaAIRerank.rerank   s     #$$#-
 )--4-@$$%6@@;;+, 2#*7)!4
 #  
 3&HMM**!!#77GG    r0   c                 6  K   t        t        j                  j                        }|j	                  dddd| d|       d {   }|j
                  dk7  rt        |j                        |j                         }t               j                  |      S 7 Qw)N)llm_providerr   r   r   r   r"   r%   )r
   litellmLlmProvidersJINA_AIr(   r)   r*   r+   r$   r   r,   )r-   r0   r   r.   r1   r2   s         r3   r'   zJinaAIRerank.async_rerankB   s     
 ( --55
  +, 2#*7)!4
 # % 
 
 3&HMM**!!#77GG
s   ABBAB)NNTNF)__name__
__module____qualname__strr   r   r   r   r   intboolr   r4   r'    r5   r3   r   r      s      $+/+/,0$),H,H ,H 	,H
 c4S>123,H },H d3i(,H #4.,H %SM,H D>,H 
,H\HS>H H 
	H4 	r5   r   )__doc__typingr   r   r   r   r   r8   litellm.llms.baser   &litellm.llms.custom_httpx.http_handlerr	   r
   *litellm.llms.jina_ai.rerank.transformationr   litellm.types.rerankr   r   r   rA   r5   r3   <module>rH      s4    4 3  % J >I	7 I	r5   