o
    ưi'                     @   s   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	 d	e	ZG d
d deeZG dd dZdS )    N)uuid)Enum)AnyDict
NamedTuple)LiteralString)print_verboseverbose_logger)redact_user_api_key_infoc                   @   s&   e Zd ZU eed< eeef ed< dS )
SpanConfigmessage_template	span_dataN)__name__
__module____qualname__r   __annotations__r   strr    r   r   Z/home/app/Keep/.python/lib/python3.10/site-packages/litellm/integrations/logfire_logger.pyr      s   
 r   c                   @   s   e Zd ZdZdZdS )LogfireLevelinfoerrorN)r   r   r   INFOERRORr   r   r   r   r      s    r   c                   @   s>   e Zd Zdd ZdefddZdefddZdefd	d
ZdS )LogfireLoggerc              
   C   sj   zt d dd l}|jjjr|jtdd W d S W d S  t	y4 } zt
dt|  |d }~ww )Nzin init logfire loggerr   ZLOGFIRE_TOKEN)tokenz%Got exception on init logfire client )r	   debuglogfireZDEFAULT_LOGFIRE_INSTANCEconfigZsend_to_logfire	configureosgetenv	Exceptionr   r   )selfr   er   r   r   __init__   s   

zLogfireLogger.__init__returnc                 C   s   |d dks|d dkrt dd|idS |d dks |d dkr(t d	d|idS |d d
ks4|d dkr<t dd|idS t dd|idS )N	call_type
completionZacompletionz,Chat Completion with {request_data[model]!r}Zrequest_data)r   r   Z	embeddingZ
aembeddingz/Embedding Creation with {request_data[model]!r}Zimage_generationZaimage_generationz-Image Generation with {request_data[model]!r}z)Litellm Call with {request_data[model]!r})r   )r#   payloadr   r   r   _get_span_config)   s*   zLogfireLogger._get_span_configlevelc                    s   | j ||||||d d S )N)kwargsresponse_obj
start_timeend_timer   r+   )	log_event)r#   r,   r-   r.   r/   r   r+   r   r   r   _async_log_eventG   s   	
zLogfireLogger._async_log_eventc                 C   s  zdd l }td|  |si }|di }|di pi }	|d}
|di }|dd}|d	d
}|di }|dtt }z||  }W n tyY   d }Y nw i }t	|	t
rs|	 D ]\}}|dv rnqe|||< qet|d}|||||||dd|dd||dd|
|||d}|jdd}| |\}}|tjkr|j|fi | n|tjkr|j|fi |ddi |d|  |d|  W d S  ty } ztdt| dt   W Y d }~d S d }~ww )Nr   z4logfire Logging - Enters logging function for model litellm_paramsmetadatamessagesoptional_paramsr'   r(   	cache_hitFusageid)ZendpointZcaching_groupsZprevious_models)r3   model userZresponse_cost)r8   r'   r6   Z	startTimeZendTimezresponseTime (seconds)r9   r;   ZmodelParametersZspendr4   responser7   r3   Zopenai)Zcustom_scope_suffixZ	_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
   Zwith_settingsr*   r   r   r   r   r   	traceback
format_exc)r#   r,   r.   r/   r   r+   r-   r   r2   r3   r4   r5   r'   r6   r7   r8   Zresponse_timeZclean_metadatakeyvaluer)   Zlogfire_openair   r   r$   r   r   r   r0   Y   s   	









zLogfireLogger.log_eventN)	r   r   r   r%   r   r*   r   r1   r0   r   r   r   r   r      s    
r   )r    rD   Zlitellm._uuidr   enumr   typingr   r   r   Ztyping_extensionsr   Zlitellm._loggingr   r	   Z*litellm.litellm_core_utils.redact_messagesr
   r   r   r   r   r   r   r   r   <module>   s   