
    AHj'                         d dl Z d dlZd dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZ d dlmZmZ d dlmZ  G d d	e	      Z G d
 dee      Z G d d      Zy)    N)uuid)Enum)AnyDict
NamedTuple)LiteralString)print_verboseverbose_logger)redact_user_api_key_infoc                   ,    e Zd ZU eed<   eeef   ed<   y)
SpanConfigmessage_template	span_dataN)__name__
__module____qualname__r   __annotations__r   strr        [/root/tools/cai/cai_env/lib/python3.12/site-packages/litellm/integrations/logfire_logger.pyr   r      s    ##CH~r   r   c                       e Zd ZdZdZy)LogfireLevelinfoerrorN)r   r   r   INFOERRORr   r   r   r   r      s    DEr   r   c                   6    e Zd Zd ZdefdZdefdZdefdZy)LogfireLoggerc                    	 t        j                  d       dd l}|j                  j                  j
                  r&|j                  t        j                  d             y y # t        $ r}t        dt        |              |d }~ww xY w)Nzin init logfire loggerr   LOGFIRE_TOKEN)tokenz%Got exception on init logfire client )r
   debuglogfireDEFAULT_LOGFIRE_INSTANCEconfigsend_to_logfire	configureosgetenv	Exceptionr	   r   )selfr$   es      r   __init__zLogfireLogger.__init__   sy    
	  !9: //66FF!!		/(B!C G 	A#a&JKG	s   AA" "	B	+BB	returnc                     |d   dk(  s|d   dk(  rt        dd|i      S |d   dk(  s|d   dk(  rt        d	d|i      S |d   d
k(  s|d   dk(  rt        dd|i      S t        dd|i      S )N	call_type
completionacompletionz,Chat Completion with {request_data[model]!r}request_data)r   r   	embedding
aembeddingz/Embedding Creation with {request_data[model]!r}image_generationaimage_generationz-Image Generation with {request_data[model]!r}z)Litellm Call with {request_data[model]!r})r   )r,   payloads     r   _get_span_configzLogfireLogger._get_span_config)   s    K L0{#}4!O)73 
 K K/7;3G<3W!R)73 
 K $66{#'::!P)73 
 !L)73 r   levelc                 :   K   | j                  ||||||       y w)N)kwargsresponse_obj
start_timeend_timer	   r;   )	log_event)r,   r=   r>   r?   r@   r	   r;   s          r   _async_log_eventzLogfireLogger._async_log_eventG   s+      	%!' 	 	
s   c                    	 dd l }t        j                  d|        |si }|j                  di       }|j                  di       xs i }	|j                  d      }
|j                  di       }|j                  dd      }|j                  d	d
      }|j                  di       }|j                  dt	        t        j                                     }	 ||z
  j                         }i }t        |	t              r"|	j                         D ]  \  }}|dv r|||<    t        |      }|||||||j                  dd      |j                  dd      ||j                  dd      |
|||d}|j                  d      }| j                  |      \  }}|t        j                   k(  r |j"                  |fi | n*|t        j$                  k(  r |j&                  |fi |ddi  |d|         |d|        y # t        $ r d }Y w xY w# t        $ r@}t        j                  dt	        |       dt)        j*                                 Y d }~y d }~ww xY w)Nr   z4logfire Logging - Enters logging function for model litellm_paramsmetadatamessagesoptional_paramsr1   r2   	cache_hitFusageid)endpointcaching_groupsprevious_models)rE   model userresponse_cost)rJ   r1   rH   	startTimeendTimezresponseTime (seconds)rN   rP   modelParametersspendrF   responserI   rE   openai)custom_scope_suffix	_exc_infoTz
dd Logger - Logging payload = z/Logfire Layer Logging - final response object: zLogfire Layer Error - 
)r$   r
   r#   getr   r   uuid4total_secondsr+   
isinstancedictitemsr   with_settingsr:   r   r   r   r   r   	traceback
format_exc)r,   r=   r?   r@   r	   r;   r>   r$   rD   rE   rF   rG   r1   rH   rI   rJ   response_timeclean_metadatakeyvaluer9   logfire_openair   r   r-   s                            r   rA   zLogfireLogger.log_eventY   s   Q	  FvhO  !#ZZ(8"=N"":r28b  zz*-H$jj):B?O

;=I

;6I $$Wb1E!!$DJJL(9:B%!)J!6 E E G  N(D)"*.."2 	4JC  
 !.3s+	4 6~NN &&'#*7GR0

62.#2OQ7$(*G  %22x2PN*.*?*?*H'i)))###$ ,,,,$$$$ #
 <WIFGA,Pk  % $%p  	  (Q93G3G3I2JK 		s=   CH G3 $DH 3H>H HH 	I6I		IN)	r   r   r   r.   r   r:   r   rB   rA   r   r   r   r   r      s3    : <
 
$Z Zr   r   )r)   rb   litellm._uuidr   enumr   typingr   r   r   typing_extensionsr   litellm._loggingr	   r
   *litellm.litellm_core_utils.redact_messagesr   r   r   r   r   r   r   r   <module>ro      sH    
    ( ( + : O 
3 
Y Yr   