
    /j                    ~    S SK Jr  S SKrS SKJr  S SKJr  SSKJrJ	r	J
r
JrJr  \ " S S5      5       r " S	 S
5      rg)    )annotationsN)deepcopy)	dataclass   )AgentMetrics
LLMMetricsRealtimeModelMetrics
STTMetrics
TTSMetricsc                  n   \ rS rSr% SrSrS\S'   SrS\S'   SrS\S'   Sr	S\S'   Sr
S\S	'   SrS\S
'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SS jr\SS j5       r\R0                  SS j5       r\SS j5       r\R0                  SS j5       rSrg) UsageSummary
   zl
.. deprecated::
    Use :class:`LLMModelUsage`, :class:`TTSModelUsage`, or :class:`STTModelUsage` instead.
r   intllm_prompt_tokensllm_prompt_cached_tokensllm_input_audio_tokensllm_input_cached_audio_tokensllm_input_text_tokensllm_input_cached_text_tokensllm_input_image_tokensllm_input_cached_image_tokensllm_completion_tokensllm_output_audio_tokensllm_output_image_tokensllm_output_text_tokenstts_characters_countg        floattts_audio_durationstt_audio_durationc                8    [         R                  " S[        SS9  g )NzpUsageSummary is deprecated. Use LLMModelUsage, TTSModelUsage, or STTModelUsage from metrics.model_usage instead.   
stacklevel)warningswarnDeprecationWarningselfs    W/app/agent/.venv/lib/python3.13/site-packages/livekit/agents/metrics/usage_collector.py__post_init__UsageSummary.__post_init__!   s    A		
    c                    U R                   $ Nr   r'   s    r)   llm_input_tokensUsageSummary.llm_input_tokens*   s    %%%r,   c                    Xl         g r.   r/   r(   values     r)   r0   r1   .   s    !&r,   c                    U R                   $ r.   r   r'   s    r)   llm_output_tokensUsageSummary.llm_output_tokens2   s    )))r,   c                    Xl         g r.   r6   r3   s     r)   r7   r8   6   s    %*"r,   )r   r   NreturnNone)r;   r   )r4   r   r;   r<   )__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   propertyr0   setterr7   __static_attributes__ r,   r)   r   r   
   s   
 s$%c%"#C#)*!3*!"3"() #)"#C#)*!3*!"3"#$S$#$S$"#C# !#! ## ##
 & & ' ' * * + +r,   r   c                  @    \ rS rSrSrS	S jrS
S jrS
S jrSS jrSr	g)UsageCollector;   z?
.. deprecated::
    Use :class:`ModelUsageCollector` instead.
c                V    [         R                  " S[        SS9  [        5       U l        g )NzWUsageCollector is deprecated. Use ModelUsageCollector from metrics.model_usage instead.r!   r"   )r$   r%   r&   r   _summaryr'   s    r)   __init__UsageCollector.__init__A   s$    +		
 %r,   c                &    U R                  U5        g r.   )collectr(   metricss     r)   __call__UsageCollector.__call__J   s    Wr,   c                ,   [        U[        5      (       a|  U R                  =R                  UR                  -  sl        U R                  =R
                  UR                  -  sl        U R                  =R                  UR                  -  sl        g [        U[        5      (       Ga  U R                  =R                  UR                  -  sl        U R                  =R
                  UR                  R                  -  sl        U R                  =R                  UR                  R                  -  sl        U R                  =R                  UR                  R                   (       a   UR                  R                   R                  OS-  sl        U R                  =R"                  UR                  R$                  -  sl        U R                  =R&                  UR                  R                   (       a   UR                  R                   R$                  OS-  sl        U R                  =R(                  UR                  R*                  -  sl        U R                  =R,                  UR                  R                   (       a   UR                  R                   R*                  OS-  sl        U R                  =R.                  UR0                  R                  -  sl        U R                  =R2                  UR0                  R$                  -  sl        U R                  =R4                  UR0                  R*                  -  sl        U R                  =R                  UR6                  -  sl        g [        U[8        5      (       aS  U R                  =R:                  UR<                  -  sl        U R                  =R>                  UR@                  -  sl        g [        U[B        5      (       a*  U R                  =RD                  UR@                  -  sl"        g g )Nr   )#
isinstancer   rK   r   prompt_tokensr   prompt_cached_tokensr   completion_tokensr	   input_tokensinput_token_detailscached_tokensr   text_tokensr   cached_tokens_detailsr   image_tokensr   r   audio_tokensr   r   output_token_detailsr   r   output_tokensr   r   characters_countr   audio_durationr
   r   rP   s     r)   rO   UsageCollector.collectM   s   gz**MM++w/D/DD+MM22g6R6RR2MM//73L3LL/!566MM++w/C/CC+MM22g6Q6Q6_6__2MM//73N3N3Z3ZZ/MM66..DD ++AAMM6
 MM00G4O4O4\4\\0MM77..DD ++AANN7
 MM00G4O4O4\4\\0MM77..DD ++AANN7 MM00G4P4P4\4\\0MM11W5Q5Q5^5^^1MM11W5Q5Q5^5^^1MM//73H3HH/,,MM..'2J2JJ.MM,,0F0FF,,,MM,,0F0FF, -r,   c                ,    [        U R                  5      $ r.   )r   rK   r'   s    r)   get_summaryUsageCollector.get_summaryv   s    &&r,   )rK   Nr:   )rQ   r   r;   r<   )r;   r   )
r=   r>   r?   r@   rA   rL   rR   rO   rf   rE   rF   r,   r)   rH   rH   ;   s    
''GR'r,   rH   )
__future__r   r$   copyr   dataclassesr   baser   r   r	   r
   r   r   rH   rF   r,   r)   <module>rl      s;    "   ! X X -+ -+ -+`<' <'r,   