ó
    üÞ jŽ  ã                  ó8   • S r SSKJr  SSKJrJr  SS jrSS jrg)	z&Token usage extraction for Google ADK.é    )Úannotations)ÚAnyÚOptionalc                ó¢  • 0 n[        U SS5      nU(       d  U$ [        USS5      =nb  [        U5      US'   [        USS5      =nb  [        U5      US'   [        USS5      =nb  [        U5      US'   [        US	S5      =nb  [        U5      UR                  S
0 5      S'   [        USS5      =nb  [        U5      UR                  S0 5      S'   U$ )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       Úb/var/www/html/gaurav/venv/lib/python3.13/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                ó¨   • [        U SS5      =n(       a  [        USS5      =n(       a  [        U5      $ [        U SS5      =n(       a  [        U5      $ g)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   