o
    ưi                     @   s:   d dl Z d dlZd dlZd dlZd dlZG dd dZdS )    Nc                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	SupabaseZrequest_logsc              
   C   s   t d| _t d| _zdd l}W n ty*   ttj	ddddg dd l}Y nw | jd u s5| jd u r9t
d|| j| j| _d S )	NZSUPABASE_URLZSUPABASE_KEYr   z-mpipinstallsupabasezLiteLLM Error, trying to use Supabase but url or key not passed. Create a table and set `litellm.supabase_url=<your-url>` and `litellm.supabase_key=<your-key>`)osgetenvZsupabase_urlZsupabase_keyr   ImportError
subprocess
check_callsys
executable
ValueErrorZcreate_clientsupabase_client)selfr    r   T/home/app/Keep/.python/lib/python3.10/site-packages/litellm/integrations/supabase.py__init__   s   
zSupabase.__init__c           	      C   sv   z'|d|  |||d|d}| j | j| \}}|d|  W d S  ty:   |dt   Y d S w )Nz;Supabase Logging - Enters input logging function for model Z	initiated)modelmessagesend_userstatuslitellm_call_idzdata: Supabase Logging Error - )r   tablesupabase_table_nameinsertexecute	Exception	traceback
format_exc)	r   r   r   r   r   print_verbosesupabase_data_objdatacountr   r   r   input_log_event"   s&   zSupabase.input_log_eventc	              	   C   s*  z|d| d|  t j|d}	||  }
d|v rJ|
|d |	||d d d d ||d	d
}|d|  | j| jj|dd \}}W d S d|v rd|d v rVd}	|
|d |	||d ||dd}|d|  | j| jj|dd \}}W d S W d S  ty   |dt	
   Y d S w )Nz5Supabase Logging - Enters logging function for model z, response_obj: )Zcompletion_responsechoicesr   r   messagecontentsuccess)response_timer   
total_costr   responser   r   r   z&Supabase Logging - final data object: r   )Zon_conflicterrorz$Unable to map your input to a model.Zfailure)r)   r   r*   r   r,   r   r   r   r   )litellmZcompletion_costtotal_secondsr   r   r   Zupsertr   r   r   r   )r   r   r   r   Zresponse_obj
start_timeend_timer   r    r*   r)   r!   r"   r#   r   r   r   	log_event:   sb   

zSupabase.log_eventN)__name__
__module____qualname__r   r   r$   r1   r   r   r   r   r      s
    r   )r   r	   r   r   r-   r   r   r   r   r   <module>   s   