
    ^hF                         S r SSKrSSKrSSK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JrJ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$  SSK%J&r&   " S S\5      r'g)z:
Handles embedding calls to Bedrock's `/invoke` endpoint 
    N)AnyCallableListOptionalTupleUnion)	embedding)AsyncHTTPHandlerHTTPHandler_get_httpx_clientget_async_httpx_client)
get_secret)AmazonEmbeddingRequestCohereEmbeddingRequest)EmbeddingResponse   )
BaseAWSLLM)BedrockError   )AmazonTitanG1Config)&AmazonTitanMultimodalEmbeddingG1Config)AmazonTitanV2Config)BedrockCohereEmbeddingConfigc                      \ rS rSrS\S\\\4   4S jrS r	S\
\   S\
\\\R                  4      S\S	\S
\S\4S jrS\
\   S\
\\\R                  4      S\S	\S
\S\4S jrS\
\   S\
\\\R                  4      S\\   S\S\
\   S\S\S\S\4S jrS\
\   S\
\\\R                  4      S\\   S\S\
\   S\S\S\S\4S jrS\S\\   S\
\   S\S\S\
\\\4      S\
\\\R                  4      S\
\   S\
\   S\S\S\4S jrSrg)BedrockEmbedding!   optional_paramsreturnc                 b    SSK Jn  UR                  SS 5      nUR                  SS 5      nUR                  SS 5      nUR                  SS 5      nUR                  SS 5      nUR                  S	S 5      nUR                  S
S 5      n	UR                  SS 5      n
UR                  SS 5      nUcQ  [	        SS 5      nUb  [        U[        5      (       a  Un[	        SS 5      nUb  [        U[        5      (       a  UnUc  SnU R                  UUUUUU	UU
US9	nX4$ ! [         a    [        S5      ef = f)Nr   )Credentials7Missing boto3 to call bedrock. Run 'pip install boto3'.aws_secret_access_keyaws_access_key_idaws_session_tokenaws_region_nameaws_role_nameaws_session_nameaws_profile_nameaws_web_identity_tokenaws_sts_endpointAWS_REGION_NAME
AWS_REGIONz	us-west-2)	r#   r"   r$   r%   r'   r(   r&   r)   r*   )botocore.credentialsr    ImportErrorpopr   
isinstancestrget_credentials)selfr   r    r"   r#   r$   r%   r&   r'   r(   r)   r*   litellm_aws_region_namestandard_aws_region_namecredentialss                  ^/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/bedrock/embed/embedding.py_load_credentials"BedrockEmbedding._load_credentials"   s   	Y8
 !0 3 34KT R+//0CTJ+//0CTJ)--.?F'++OTB*../A4H*../A4H!0!4!45Mt!T*../A4H "&01BD&I#&2z'8 8 #:'1,'E$'3
(#9 9 #;&"-#'#7#7/"7/+--'#9- $8 
$
 ++Y  	YWXX	Ys   D D.c                    #    g 7f)N )r3   s    r7   async_embeddings!BedrockEmbedding.async_embeddingsV   s     s   clienttimeoutapi_baseheadersdatac                 B   Ub  [        U[        5      (       dU  0 nUbD  [        U[        5      (       d  [        U[        5      (       a  [        R
                  " U5      nX&S'   [        U5      nOUn UR                  X4[        R                  " U5      S9nUR                  5         UR                  5       $ ! [        R                   a8  nUR                  R                  n	[        XR                  R                  S9eS nAf[        R                    a    [        SSS9ef = f)Nr?   urlrA   rB   status_codemessage  Timeout error occurred.)r0   r   floatinthttpxTimeoutr   postjsondumpsraise_for_statusHTTPStatusErrorresponserG   r   textTimeoutException
r3   r>   r?   r@   rA   rB   _paramsrT   err
error_codes
             r7   _make_sync_call BedrockEmbedding._make_sync_callY   s     >FK!@!@G"gu--GS1I1I#mmG4G%,	"&w/FF	S{{xtzzRVGW{XH%%' }} $$ 	R11J:||?P?PQQ%% 	S38QRR	Ss   14B5 5D	3C<<"Dc                   #    Ub  [        U[        5      (       dl  0 nUbD  [        U[        5      (       d  [        U[        5      (       a  [        R
                  " U5      nX&S'   [        U[        R                  R                  S9nOUn UR                  X4[        R                  " U5      S9I S h  vN nUR                  5         UR                  5       $  N$! [        R                   a8  nUR                  R                   n	[#        XR                  R$                  S9eS nAf[        R&                   a    [#        SSS9ef = f7f)Nr?   )paramsllm_providerrD   rF   rI   rJ   )r0   r
   rK   rL   rM   rN   r   litellmLlmProvidersBEDROCKrO   rP   rQ   rR   rS   rT   rG   r   rU   rV   rW   s
             r7   _make_async_call!BedrockEmbedding._make_async_callu   s     >F4D!E!EG"gu--GS1I1I#mmG4G%,	"+W-A-A-I-IF F	S#[[XTZZX\M][^^H%%' }} _$$ 	R11J:||?P?PQQ%% 	S38QRR	Ss<   BE
'C 1C2C EC E,3D"EE
batch_datar6   extra_headersendpoint_urlr%   modellogging_objc
           	      "    SSK Jn
  SSKJn  / nU H  nU
" USU5      nSS0nUb  SS0UEnU" SU[
        R                  " U5      US	9nUR                  U5        Ub  S
U;   a  US
   UR                  S
'   UR                  5       nU	R                  USUUR                  UR                  S.S9  U R                  UUUR                  UR                  US9nU	R                  USUSU0S9  UR                  U5        M     S nUS:X  a  [        5       R!                  XS9nO;US:X  a  [#        5       R!                  XS9nOUS:X  a  [%        5       R!                  XS9nUc  ['        SR)                  U5      5      eU$ ! [         a    [	        S5      ef = fNr   	SigV4Auth
AWSRequestr!   bedrockContent-Typeapplication/jsonPOSTmethodrE   rB   rA   Authorization )complete_input_dictr@   rA   )inputapi_keyadditional_args)r>   r?   r@   rA   rB   rx   )ry   rz   original_responser{   amazon.titan-embed-image-v1)response_listrh   amazon.titan-embed-text-v1amazon.titan-embed-text-v2:0z?Unable to map model response to known provider format. model={})botocore.authrm   botocore.awsrequestro   r.   rP   rQ   add_authrA   preparepre_callrE   r[   	post_callappendr   _transform_responser   r   	Exceptionformatr3   r>   r?   re   r6   rf   rg   r%   rh   ri   rm   ro   	responsesrB   sigv4rA   requestpreppedrT   returned_responses                       r7   _single_func_embeddings(BedrockEmbedding._single_func_embeddings   s   	Y/6 !#	Dk9oFE%'9:G()+=OO <djj6FPWG NN7#)o.N3@3Q0oo'G   +/ '&! !  ++  , H !!"*!6 =	 "  X&S V :> 1168LL"+ M  
 22 3 5 I I' !J ! 44 3 5 I I' !J ! $QXX  ! Q  	YWXX	Ys   E8 8Fc
           	      >  #     SSK Jn
  SSKJn  / nU H  nU
" USU5      nSS0nUb  SS0UEnU" SU[
        R                  " U5      US	9nUR                  U5        Ub  S
U;   a  US
   UR                  S
'   UR                  5       nU	R                  USUUR                  UR                  S.S9  U R                  UUUR                  UR                  US9I S h  vN nU	R                  USUSU0S9  UR                  U5        M     S nUS:X  a  [        5       R!                  XS9nO;US:X  a  [#        5       R!                  XS9nOUS:X  a  [%        5       R!                  XS9nUc  ['        SR)                  U5      5      eU$ ! [         a    [	        S5      ef = f N7frk   )r   rm   r   ro   r.   rP   rQ   r   rA   r   r   rE   rc   r   r   r   r   r   r   r   r   r   s                       r7   _async_single_func_embeddings.BedrockEmbedding._async_single_func_embeddings   s    	Y/6 !#	Dk9oFE%'9:G()+=OO <djj6FPWG NN7#)o.N3@3Q0oo'G   +/ '&! !  "22  3  H !!"*!6 =	 "  X&S V :> 1168LL"+ M  
 22 3 5 I I' !J ! 44 3 5 I I' !J ! $QXX  ! Q  	YWXX	Y:s)   FF C
FFB'FFFry   model_responseprint_verbose
aembeddinglitellm_paramsc                 ,    SSK Jn  SSKJn  U R                  U5      u  nnUR                  S5      S   n[        R                  " U5      nUR                  SS 5        UR                  SS 5      =(       d    UnS nS nUS:X  a  [        5       R                  XUS	9nOUS
:X  a  US;   a  / nU H  nUS:X  a  [        5       R                  UUS9nO[US:X  a  [        5       R                  UUS9nO<US:X  a  [        5       R                  UUS9nO[        SR!                  U/ SQ5      5      eUR#                  U5        M     U R%                  UUR                  SS 5      US9u  nnU SU S3nUbi  U
(       a1  U R'                  Ub  [)        U[*        5      (       a  UOS U	UUUUUUUS9	$ U R-                  Ub  [)        U[.        5      (       a  UOS U	UUUUUUUS9	$ Uc  [        S5      eU" USU5      nSS0nUb  SS0UEnU" SU[0        R2                  " U5      US9nUR5                  U5        Ub  SU;   a  US   UR6                  S'   UR9                  5       n[;        UUUUUUUUR<                  S U
U	UUR6                  S9$ ! [         a    [	        S5      ef = f)Nr   rl   rn   r!   .usermodel_idcohere)rh   ry   inference_paramsamazon)r}   r   r   r}   )ry   r   r   r   z(Unmapped model. Received={}. Expected={}aws_bedrock_runtime_endpoint)r@   r   r%   z/model/z/invoke)	r>   r?   re   r6   rf   rg   r%   rh   ri   z!Unable to map request to providerrp   rq   rr   rs   rt   rv   )rh   ry   r   ri   r   encodingrB   complete_api_baserz   r   r?   r>   rA   )r   rm   r   ro   r.   r8   splitcopydeepcopyr/   r   _transform_requestr   r   r   r   r   r   get_runtime_endpointr   r0   r
   r   r   rP   rQ   r   rA   r   cohere_embeddingrE   )r3   rh   ry   r@   r   r   r   ri   r>   r?   r   rf   r   r   rm   ro   r6   r%   providerr   modelIdrB   re   itransformed_requestrg   proxy_endpoint_urlr   rA   r   r   s                                  r7   
embeddingsBedrockEmbedding.embeddingsF  sr    	Y/6 (,'='=o'N$_ ;;s#A&==9D	
 
D1:U 	 26%)
x/1DD;K E D !e 0
 '

 J99 ?@SS2B T  (
 ::*=*?*R*R2B +S +' <<*=*?*R*R2B +S +' $BII!	 	 !!"565 : ,0+D+D)8)<)<.* , ,E ,
(( 'wwiw?!99 "-*VEU2V2V !#) +"/!-$3 + :   // )j.M.M %'+) /' 0   \?@@+y/B!#56$%'9K]KG|$**T2BG
 	w%/]*J/<_/MGOOO,//#  )#+%kk!OO
 	
i  	YWXX	Ys   I= =Jr;   N)__name__
__module____qualname____firstlineno__dictr   r   r1   r8   r<   r   r   r   rK   rM   rN   r[   r
   rc   r   r   r   r   r   boolr   __static_attributes__r;       r7   r   r   !   s   2,2, 
sCx2,h% %u}} 456 	
   
8)* %u}} 456 	
   
>W!%W! %u}} 456W! J	W!
 W!  ~W! W! W! W! W!rW!)*W! %u}} 456W! J	W!
 W!  ~W! W! W! W! W!rU
U
 CyU
 3-	U

 *U
  U
 {,<<=>U
 %u}} 456U
 TNU
  ~U
 U
 U
 
U
r   r   )(__doc__r   rP   typingr   r   r   r   r   r   rM   r`   !litellm.llms.cohere.embed.handlerr	   r   &litellm.llms.custom_httpx.http_handlerr
   r   r   r   litellm.secret_managers.mainr   litellm.types.llms.bedrockr   r   litellm.types.utilsr   base_aws_llmr   common_utilsr   amazon_titan_g1_transformationr   &amazon_titan_multimodal_transformationr   amazon_titan_v2_transformationr   cohere_transformationr   r   r;   r   r7   <module>r      s[      > >   K  4 U 1 % ' ? @ ?z
z z
r   