Ë
    ³ŒjŽ  ã                  ó4   — d Z ddlmZ ddlmZmZ dd„Zdd„Zy)	z&Token usage extraction for Google ADK.é    )Úannotations)ÚAnyÚOptionalc                óŽ  — i }t        | dd«      }|s|S t        |dd«      x}�t        |«      |d<   t        |dd«      x}�t        |«      |d<   t        |dd«      x}�t        |«      |d<   t        |d	d«      x}�t        |«      |j                  d
i «      d<   t        |dd«      x}�t        |«      |j                  di «      d<   |S )z%Extract token usage from LlmResponse.Úusage_metadataNÚprompt_token_countÚinput_tokensÚcandidates_token_countÚoutput_tokensÚtotal_token_countÚtotal_tokensÚcached_content_token_countÚinput_token_detailsÚ
cache_readÚthoughts_token_countÚoutput_token_detailsÚ	reasoning)ÚgetattrÚintÚ
setdefault)Úllm_responseÚusager   Úvs       úr/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langsmith/integrations/google_adk/_usage.pyÚextract_usage_from_responser      sî   € à€EÜ˜\Ð+;¸TÓB€NÙØˆä�^Ð%9¸4Ó@Ð@ˆÐMÜ # A£ˆˆnÑÜ�^Ð%=¸tÓDÐDˆÐQÜ!$ Q£ˆˆoÑÜ�^Ð%8¸$Ó?Ð?ˆÐLÜ # A£ˆˆnÑÜ�^Ð%AÀ4ÓHÐHˆÐUÜDGÈÃFˆ×ÑÐ.°Ó3°LÑAÜ�^Ð%;¸TÓBÐBˆÐOÜDGÈÃFˆ×ÑÐ/°Ó4°[ÑAà€Ló    c                óŠ   — t        | dd«      x}rt        |dd«      x}rt        |«      S t        | dd«      x}rt        |«      S y)z*Extract the model name from an LlmRequest.ÚconfigNÚmodel)r   Ústr)Úllm_requestr   r   s      r   Úextract_model_namer"      sU   € ä˜ h°Ó5Ð5€vÐ5Ü˜F G¨TÓ2Ð2ˆ5Ð2Ü�u“:ÐÜ˜ W¨dÓ3Ð3€uÐ3Ü�5‹zÐØr   N)r   r   Úreturnzdict[str, Any])r!   r   r#   zOptional[str])Ú__doc__Ú
__future__r   Útypingr   r   r   r"   © r   r   Ú<module>r(      s   ðÙ ,å "ç  óô*r   