o
    ưi
                     @   s:   d dl Z d dlZd dlmZmZ d dlZG dd dZdS )    N)datetimetimezonec                   @   s   e Zd Zdd Zdd ZdS )GreenscaleLoggerc                 C   s2   dd l }|d| _| jdd| _|d| _d S )Nr   ZGREENSCALE_API_KEYzapplication/json)zapi-keyzContent-TypeZGREENSCALE_ENDPOINT)osgetenvZgreenscale_api_keyheadersgreenscale_logging_url)selfr    r
   V/home/app/Keep/.python/lib/python3.10/site-packages/litellm/integrations/greenscale.py__init__	   s   zGreenscaleLogger.__init__c              
   C   s  z|r|  ni }|d|di d|di dd}ttjd|d< t|tu rCt|tu rCt|| 	 d |d	< g }|d
i di }	|	
 D ])\}
}|
dr||
dkre||d< qS|
dkrn||d< qS||
ddt|d qS||d< | jd u rtdtjj| j| jtj|tdd}|jdkr|d|j d|j  W d S |d|j  W d S  ty } z|d| dt   W Y d }~d S d }~ww )NmodelusageZprompt_tokensZcompletion_tokens)ZmodelIdZinputTokenCountZoutputTokenCountz%Y-%m-%dT%H:%M:%SZ	timestampi  ZinvocationLatencyZlitellm_paramsmetadataZ
greenscaleZgreenscale_projectprojectZgreenscale_applicationZapplicationZgreenscale_ )keyvaluetagsz.Greenscale Logger Error - No logging URL found)default)r   data   zGreenscale Logger Error - z, zGreenscale Logger Succeeded - z, Stack trace: )Z
model_dumpgetr   nowr   utcstrftimetypeinttotal_secondsitems
startswithappendreplacestrr   	ExceptionlitellmZmodule_level_clientpostr   jsondumpsstatus_codetext	traceback
format_exc)r	   kwargsZresponse_obj
start_timeend_timeZprint_verboseZresponse_jsonr   r   r   r   r   responseer
   r
   r   	log_event   s^   





zGreenscaleLogger.log_eventN)__name__
__module____qualname__r   r3   r
   r
   r
   r   r      s    
r   )r(   r,   r   r   r&   r   r
   r
   r
   r   <module>   s
    