Ë
    uPêj˜  ã                   ón   — d Z ddlmZmZ ddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZ  G d„ d	e«      Zy)
zn
AWS Bedrock CountTokens API handler.

Simplified handler leveraging existing LiteLLM Bedrock infrastructure.
é    )ÚAnyÚFinalN)Úverbose_logger)ÚBedrockError)ÚBedrockCountTokensConfig)Úget_async_httpx_clientc            
       óF   — e Zd ZdZdeeef   deeef   dedeeef   fd„Zy)ÚBedrockCountTokensHandlerz™
    Simplified handler for AWS Bedrock CountTokens API requests.

    Uses existing LiteLLM infrastructure for authentication and request handling.
    Úrequest_dataÚlitellm_paramsÚresolved_modelÚreturnc           	   ƒ   ó4  K  — 	 | j                  |«       t        j                  d|«       | j                  ||d¬«      }t        j                  d|«       | j	                  |¬«      }t        j                  d|«       |j                  dd«      }|j                  dd«      }| j                  ||||¬	«      }t        j                  d
|«       |j                  dd«      }	ddi}
| j                  d|
|||||	¬«      \  }}t        t        j                  j                  ¬«      }|j                  |||d¬«      ƒ d{  –—† }t        j                  d|j                  «       |j                  dk7  r9|j                  }t        j                  d|«       t!        |j                  |¬«      ‚|j#                  «       }t        j                  d|«       | j%                  |«      }t        j                  d|«       |S 7 Œ»# t         $ r ‚ t&        j(                  $ rP}t        j                  d|«       t!        |j*                  j                  |j*                  j                  ¬«      ‚d}~wt,        $ r+}t        j                  d|«       t!        dd|› �¬«      ‚d}~ww xY w­w)a`  
        Handle a CountTokens request using existing LiteLLM patterns.

        Args:
            request_data: The incoming request payload
            litellm_params: LiteLLM configuration parameters
            resolved_model: The actual model ID resolved from router

        Returns:
            Dictionary containing token count response
        z5Processing CountTokens request for resolved model: %sN)Úoptional_paramsÚmodelÚmodel_idzRetrieved AWS region: %s)r   zTransformed request: %sÚapi_baseÚaws_bedrock_runtime_endpoint)r   Úaws_region_namer   r   zMaking request to: %sÚapi_keyzContent-Typezapplication/jsonÚbedrock)Úservice_nameÚheadersr   r   r   r   r   )Úllm_providerg      >@)r   ÚdataÚtimeoutzResponse status: %séÈ   zAWS Bedrock error: %s)Ústatus_codeÚmessagezBedrock response: %szFinal response: %sz%HTTP error in CountTokens handler: %sz Error in CountTokens handler: %siô  zCountTokens processing error: )Úvalidate_count_tokens_requestr   ÚdebugÚ_get_aws_region_nameÚ+transform_anthropic_to_bedrock_count_tokensÚgetÚ!get_bedrock_count_tokens_endpointÚ_sign_requestr   ÚlitellmÚLlmProvidersÚBEDROCKÚpostr   ÚtextÚerrorr   ÚjsonÚ'transform_bedrock_response_to_anthropicÚhttpxÚHTTPStatusErrorÚresponseÚ	Exception)Úselfr   r   r   r   Úbedrock_requestr   r   Úendpoint_urlr   r   Úsigned_headersÚsigned_bodyÚasync_clientr1   Ú
error_textÚbedrock_responseÚfinal_responseÚes                      ún/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/count_tokens/handler.pyÚhandle_count_tokens_requestz5BedrockCountTokensHandler.handle_count_tokens_request   s§  è ø€ ð"[	à×.Ñ.¨|Ô<ä× Ñ Ð!XÐZhÔið &*×%>Ñ%>Ø .Ø$Øð &?ó &ˆOô × Ñ Ð!;¸_ÔMð &*×%UÑ%UÐcoÐ%UÓ%pˆOä× Ñ Ð!:¸OÔLð -×0Ñ0°¸TÓBˆHØ2@×2DÑ2DÐEcÐeiÓ2jÐ(Ø"&×"HÑ"HØ$Ø /Ø!Ø-Ið	 #Ió #ˆLô × Ñ Ð!8¸,ÔGð ,×/Ñ/°	¸4Ó@ˆGØ,Ð.@ÐAˆGØ*.×*<Ñ*<Ø&ØØ .Ø,Ø%Ø$Øð +=ó +Ñ'ˆN˜Kô #9Äg×FZÑFZ×FbÑFbÔ"cˆLà$0×$5Ñ$5ØØ&Ø Øð	 %6ó %÷ ˆHô × Ñ Ð!6¸×8LÑ8LÔMà×#Ñ# sÒ*Ø$,§M¡M�
Ü×$Ñ$Ð%<¸jÔIÜ"Ø (× 4Ñ 4Ø&ôð ð
 '/§m¡m£oÐä× Ñ Ð!7Ð9IÔJð %)×$PÑ$PÐQaÓ$bˆNä× Ñ Ð!5°~ÔFà!Ð!ð5ùô8 ò 	àÜ×$Ñ$ò 	ä× Ñ Ð!HÈ!ÔLÜØŸJ™J×2Ñ2ØŸ
™
Ÿ™ôð ûô ò 	Ü× Ñ Ð!CÀQÔGÜØØ8¸¸Ð<ôð ûð	üsI   ‚J„D5G7 Ä9G5Ä:B:G7 Ç4JÇ5G7 Ç7JÈAIÉJÉ*&JÊJÊJN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚdictÚstrr   r>   © ó    r=   r
   r
      sO   „ ñðlà˜3 ˜8‘nðlð ˜S #˜X™ðlð ð	lð
 
ˆc�3ˆh‰ôlrF   r
   )rB   Útypingr   r   r/   r'   Úlitellm._loggingr   Ú!litellm.llms.bedrock.common_utilsr   Ú0litellm.llms.bedrock.count_tokens.transformationr   Ú&litellm.llms.custom_httpx.http_handlerr   r
   rE   rF   r=   ú<module>rL      s0   ðñ÷ ã ã Ý +Ý :Ý UÝ IôsÐ 8õ srF   