
    ^h                         S SK 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
r
S SKJr  S SKJr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  \(       a  S SKJr  O\r " S S\5      rg)    N)TYPE_CHECKINGAnyDictListOptionalUnioncast)Logging)_get_httpx_clientget_async_httpx_client)BedrockPreparedRequest)RerankRequest)RerankResponse   )
BaseAWSLLM)BedrockError   )BedrockRerankConfig)AWSPreparedRequestc                       \ rS rSrS\4S jr       SS\S\S\\\\	\\
4   4      S\S	\S
\\   S\\\      S\\   S\\   S\\   S\\   S\\   S\4S jjrS\\   S\\   S\S\S\4
S jrSrg)BedrockRerankHandler   prepared_requestc                   #    [        [        R                  R                  S9n UR	                  US   US   R
                  US   S9I S h  vN nUR                  5         [        5       R                  UR!                  5       5      $  N;! [        R                   a8  nUR                  R                  n[        XTR                  R                  S9eS nAf[        R                   a    [        SSS9ef = f7f)	N)llm_providerendpoint_urlpreppedbodyurlheadersdatastatus_codemessage  Timeout error occurred.)r   litellmLlmProvidersBEDROCKpostr!   raise_for_statushttpxHTTPStatusErrorresponser$   r   textTimeoutExceptionr   _transform_responsejson)selfr   clientr/   err
error_codes         ]/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/bedrock/rerank/handler.pyarerankBedrockRerankHandler.arerank   s      (W5I5I5Q5QR	S#[[-=n-MWghqWrWzWz  BR  SY  BZ[  [  [H%%' #$88II [$$ 	R11J:||?P?PQQ%% 	S38QRR	Ss:   "C6'B
 BB
 !'C6B
 
C33C"C33C6Nmodelquery	documentsoptional_paramslogging_objtop_nrank_fieldsreturn_documentsmax_chunks_per_doc	_is_asyncapi_baseextra_headersreturnc           	         [        UUUUUUS9n[        5       R                  U5      nU R                  UUU[	        [
        U5      S9nUR                  USUUS   US   R                  S.S9  U
(       a  U R                  U5      $ [        5       n UR                  US   US   R                  US   S	9nUR                  5         [        5       R'                  UR)                  5       5      $ ! [        R                   a9  nUR                  R                  n[!        UUR                  R"                  S
9eS nAf[        R$                   a    [!        SSS
9ef = f)N)r;   r<   r=   r@   rA   rB   )r>   rE   rF   r"    r   r   )complete_input_dictrE   r!   )inputapi_keyadditional_argsr   r   r#   r&   r'   )r   r   _transform_request_prepare_requestr	   dictpre_callr!   r9   r   r+   r,   r-   r.   r/   r$   r   r0   r1   r2   r3   )r4   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   request_datar"   r   r5   r/   r6   r7   s                       r8   rerankBedrockRerankHandler.rerank+   s|    %#-
 #$77E00+'dD!	 1 
 	'+,^<+I6>> 	 	
 << 011"$	S{{'7'GQabkQlQtQt  |L  MS  |T{  UH%%' #$88II $$ 	R11J:s||?P?PQQ%% 	S38QRR	Ss   4C+ +E?4D33"Er"   c                 ,    SSK Jn  SSKJn  U R                  U5      nU R                  UUR                  UR                  S9u  pU	R                  SS5      n	U	 S3n	U" UR                  S	UR                  5      n
[        R                  " U5      R                  S
5      nSS0nUb  SS0UEnU" SXUS9nU
R                  U5        Ub  SU;   a  US   UR                  S'   UR!                  5       n[#        U	UUUS9$ ! [         a    [	        S5      ef = f)Nr   )	SigV4Auth)
AWSRequestz7Missing boto3 to call bedrock. Run 'pip install boto3'.)rE   aws_bedrock_runtime_endpointaws_region_namezbedrock-runtimezbedrock-agent-runtimez/rerankbedrockzutf-8zContent-Typezapplication/jsonPOST)methodr    r"   r!   Authorization)r   r   r   r"   )botocore.authrV   botocore.awsrequestrW   ImportError*_get_boto_credentials_from_optional_paramsget_runtime_endpointrX   rY   replacecredentialsr3   dumpsencodeadd_authr!   preparer   )r4   rE   rF   r"   r>   rV   rW   boto3_credentials_info_proxy_endpoint_urlsigv4r   r!   requestr   s                  r8   rO   %BedrockRerankHandler._prepare_requestd   s\   	Y/6 "&!P!P"

 !% 9 9)?)\)\2BB !: !

 0776
 !337;".."22
 zz$&&w/!#56$%'9K]KG1g
 	w%/]*J/<_/MGOOO,//#%+	
 	
K  	YWXX	Ys   C= =D )NNTNFNN)__name__
__module____qualname____firstlineno__r   r9   strr   r   r   r   rP   LitellmLoggingr   intboolr   rS   rO   __static_attributes__ro       r8   r   r      s1   J0J.  $+/+/,0$)"&(,7J7J 7J c4S>123	7J
 7J $7J }7J d3i(7J #4.7J %SM7J D>7J 3-7J  ~7J 
7Jr4
3-4
  ~4
 	4

 4
 
 4
ry   r   ) r3   typingr   r   r   r   r   r   r	   r-   r(   *litellm.litellm_core_utils.litellm_loggingr
   ru   &litellm.llms.custom_httpx.http_handlerr   r   litellm.types.llms.bedrockr   litellm.types.rerankr   litellm.types.utilsr   base_aws_llmr   common_utilsr   transformationr   r_   r   r   ro   ry   r8   <module>r      sM     H H H   P > . . % ' /6~
: ~
ry   