o
    ưi                     @   s&   d dl Z d dlmZ G dd dZdS )    N)verbose_loggerc                   @   s&   e Zd ZdZdd Z		dddZdS )	TraceloopLoggerzT
    WARNING: DEPRECATED
    Use the OpenTelemetry standard integration instead
    c              
   C   sn   zddl m} ddlm} W n ty) } ztd| dt   |d }~ww |j	ddd | | _
d S )	Nr   )	Traceloop)TracerWrapperzTTraceloop not installed, try running 'pip install traceloop-sdk' to fix this error: 
zLitellm-ServerT)Zapp_nameZdisable_batch)Ztraceloop.sdkr   Ztraceloop.sdk.tracing.tracingr   ModuleNotFoundErrorr   error	traceback
format_excinittracer_wrapper)selfr   r   e r   U/home/app/Keep/.python/lib/python3.10/site-packages/litellm/integrations/traceloop.py__init__   s   zTraceloopLogger.__init__DEFAULTNc	              
   C   sD  ddl m}	 ddlm}
m}m} zu|d|  | j }|di }t	|
 }t	|
 }|jd|
j|d}| r_||	j|d d	|v rV||	j|d	 d
|v rd||	j|d
 d|v rr||	j|d d|v r||	j|d d|v sd|v r||	j|d|d d|v r||	j|d d|v r||	j|d d|v r||	j|d t|dD ]$\}}||	j d| d|d ||	j d| d|d q||	j|d |d}|r||	j|d ||	j|d ||	j|d t|dD ];\}}||	j d| d|d ||	j d| d|dd ||	j d| d|dd q#|d kr|d urt|t r|!t"| |#||j$| |%| W d S  t"y } z|d!|  W Y d }~d S d }~ww )"Nr   )SpanAttributes)SpanKindStatus
StatusCodez6Traceloop Logging - Enters logging function for model optional_paramszlitellm.completion)kind
start_timemodelstopZfrequency_penaltyZpresence_penaltyZtop_pZtoolsZ	functionsuserZ
max_tokensZtemperaturemessages.z.roleZrolez.contentcontentusageZtotal_tokensZcompletion_tokensZprompt_tokenschoicesz.finish_reasonZfinish_reasonmessageERRORzTraceloop Layer Error - )&Zopentelemetry.semconv.air   Zopentelemetry.tracer   r   r   r   Z
get_tracergetint	timestampZ
start_spanZCLIENTZis_recordingZset_attributeZLLM_REQUEST_MODELZLLM_CHAT_STOP_SEQUENCESZLLM_FREQUENCY_PENALTYZLLM_PRESENCE_PENALTYZLLM_REQUEST_TOP_PZLLM_REQUEST_FUNCTIONSZLLM_USERZLLM_REQUEST_MAX_TOKENSZLLM_REQUEST_TEMPERATURE	enumerateZLLM_PROMPTSZLLM_RESPONSE_MODELZLLM_USAGE_TOTAL_TOKENSZLLM_USAGE_COMPLETION_TOKENSZLLM_USAGE_PROMPT_TOKENSZLLM_COMPLETIONS
isinstancestrZrecord_exception	ExceptionZ
set_statusr#   end)r   kwargsZresponse_objr   end_timeZuser_idZprint_verboselevelZstatus_messager   r   r   r   Ztracerr   spanidxpromptr    choicer   r   r   r   	log_event   s   




zTraceloopLogger.log_event)r   N)__name__
__module____qualname____doc__r   r3   r   r   r   r   r      s    r   )r	   Zlitellm._loggingr   r   r   r   r   r   <module>   s    