o
    ưi                     @   s"   d dl Z d dlZG dd dZdS )    Nc                   @   s   e Zd Zdd Zdd ZdS )AthinaLoggerc                 C   sB   dd l }|d| _| jdd| _|ddd | _g d| _d S )	Nr   ZATHINA_API_KEYzapplication/json)zathina-api-keyzContent-TypeZATHINA_BASE_URLzhttps://log.athina.aiz/api/v1/log/inference)environmentZprompt_slugZcustomer_idZcustomer_user_idZ
session_idZexternal_reference_idcontextZexpected_responseZ
user_querytagsZuser_feedbackZmodel_optionsZcustom_attributes)osgetenvZathina_api_keyheadersathina_logging_urladditional_keys)selfr    r   R/home/app/Keep/.python/lib/python3.10/site-packages/litellm/integrations/athina.py__init__   s   
zAthinaLogger.__init__c              
   C   s  dd l }dd l}z|dd}|r%d|v r"|d }	|	r|	 ni }
nW d S |r+| ni }
|d||
|
di d|
di d|
di d	d
}t|tju rht|tju rht||  d |d< d|v rt|dd |d< |di }|dd |	 D  |di di }|r| j
D ]}||v r|| ||< qtjj| j| j|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|   W Y d }~d S d }~ww )Nr   streamFZcomplete_streaming_responsemodelusageprompt_tokenscompletion_tokenstotal_tokens)Zlanguage_model_idrequestresponser   r   r   i  Zresponse_timemessagespromptoptional_paramsc                 s   s$    | ]\}}|d v r||fV  qdS ))ZtoolsZ	functionsNr   ).0kvr   r   r   	<genexpr>N   s    z)AthinaLogger.log_event.<locals>.<genexpr>Zlitellm_paramsmetadata)default)r   data   zAthina Logger Error - z, zAthina Logger Succeeded - z, Stack trace: )json	tracebackgetZ
model_dumptypedatetimeinttotal_secondsupdateitemsr
   litellmZmodule_level_clientpostr	   r   dumpsstrstatus_codetext	Exception
format_exc)r   kwargsZresponse_obj
start_timeend_timeZprint_verboser"   r#   	is_streamZcompletion_responseZresponse_jsonr    r   r   keyr   er   r   r   	log_event#   sl   



zAthinaLogger.log_eventN)__name__
__module____qualname__r   r9   r   r   r   r   r      s    r   )r&   r+   r   r   r   r   r   <module>   s    