
    bi                    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/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/langsmith/integrations/google_adk/_usage.pyextract_usage_from_responser      s    E\+;TBN^%94@@M #An^%=tDDQ!$Qo^%8$??L #An^%A4HHUDGF.3LA^%;TBBODG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5v5FGT2252u:Wd33u35z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   