
    /j:                    z    S SK Jr  S SKrS SKJrJr  S SKJr  S SKJr  SSK	J
r
  \(       a  SS	KJr  SS
 jrSS jrg)    )annotationsN)datetimetimezone)TYPE_CHECKING)trace   )trace_types   )RealtimeModelMetricsc           	        U R                  U5        U R                  [        R                  " [        R                  R
                  [        U5      5      5        U R                  [        R                  UR                  R                  [        R                  [        U5      [        R                  [        R                  " 5       05        g )N)record_exception
set_statusr   Status
StatusCodeERRORstrset_attributesr	   ATTR_EXCEPTION_TYPE	__class____name__ATTR_EXCEPTION_MESSAGEATTR_EXCEPTION_TRACE	traceback
format_exc)span	exceptions     O/app/agent/.venv/lib/python3.13/site-packages/livekit/agents/telemetry/utils.pyr   r      s    )$OOELL!1!1!7!7YHI++Y-@-@-I-I..I,,i.B.B.D	
    c                F   UR                   (       a  UR                   R                  OS nUR                   (       a  UR                   R                  OS n[        R                  S[        R
                  U=(       d    S[        R                  U=(       d    S[        R                  UR                  5       [        R                  UR                  [        R                  UR                  [        R                  UR                  R                  [        R                   UR                  R"                  [        R$                  UR                  R&                  [        R(                  UR*                  R                  [        R,                  UR*                  R"                  0nUR.                  S:w  a\  UR0                  UR.                  -   n[2        R4                  " U[6        R8                  S9R;                  5       nXd[        R<                  '   U R?                  5       (       a  U RA                  U5        g SSK!J"n  [F        RH                  " U 5         URK                  S5       nURA                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nchatunknown)tzr   )tracerrealtime_metrics)&metadata
model_namemodel_providerr	   ATTR_GEN_AI_OPERATION_NAMEATTR_GEN_AI_PROVIDER_NAMEATTR_GEN_AI_REQUEST_MODELATTR_REALTIME_MODEL_METRICSmodel_dump_jsonATTR_GEN_AI_USAGE_INPUT_TOKENSinput_tokensATTR_GEN_AI_USAGE_OUTPUT_TOKENSoutput_tokens#ATTR_GEN_AI_USAGE_INPUT_TEXT_TOKENSinput_token_detailstext_tokens$ATTR_GEN_AI_USAGE_INPUT_AUDIO_TOKENSaudio_tokens%ATTR_GEN_AI_USAGE_INPUT_CACHED_TOKENScached_tokens$ATTR_GEN_AI_USAGE_OUTPUT_TEXT_TOKENSoutput_token_details%ATTR_GEN_AI_USAGE_OUTPUT_AUDIO_TOKENSttft	timestampr   fromtimestampr   utc	isoformat#ATTR_LANGFUSE_COMPLETION_START_TIMEis_recordingr   tracesr$   r   use_span
start_span)	r   evr'   r(   attrscompletion_start_timecompletion_start_time_utcr$   childs	            r   record_realtime_metricsrK      s   +-;;''DJ35;;R[[//DN 	..--~/J--z/FY//1C1C1E22BOO33R5E5E779O9O9[9[88":P:P:]:]992;Q;Q;_;_88":Q:Q:]:]992;R;R;_;_#E 
ww"} "rww 6
 %-$:$:!hll%

)+ 	" B[k==>E"" ^^D!""#56%$$U+ 7 "!66 "!s$   JJ0J
J	J
J )r   
trace.Spanr   	ExceptionreturnNone)r   rL   rF   r   rN   rO   )
__future__r   r   r   r   typingr   opentelemetryr    r	   metricsr   r   rK    r   r   <module>rV      s'    "  '    .
#,r   