
    g                     @    d dl Z d dlZd dlZd dlZd dlZ G d d      Zy)    Nc                   "    e Zd ZdZd Zd Zd Zy)Supabaserequest_logsc                    t        j                  d      | _        t        j                  d      | _        	 dd l}| j                  | j                  t        d      |j                  | j                  | j                        | _        y # t
        $ r/ t        j                  t        j                  ddddg       dd l}Y w xY w)	NSUPABASE_URL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getenvsupabase_urlsupabase_keyr   ImportError
subprocess
check_callsys
executable
ValueErrorcreate_clientsupabase_client)selfr   s     R/var/www/openai/venv/lib/python3.12/site-packages/litellm/integrations/supabase.py__init__zSupabase.__init__   s    IIn5IIn5	
 $(9(9(A r   (55t00 
  	!!3>>4	:"VW	s   B	 	5C Cc                 $   	  |d|        |||d|d}| j                   j                  | j                        j                  |      j	                         \  }} |d|        y # t
        $ r   |dt        j                                 Y y w xY w)Nz;Supabase Logging - Enters input logging function for model 	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counts	            r   input_log_eventzSupabase.input_log_event"   s    	MeWU $$%#2! $$**4+C+CD)* D%
 F4&/* 	5i6J6J6L5MNO	s   A#A& &&BBc	           	         	  |d| d|        t        j                  |      }	||z
  j                         }
d|v rm|
|d   |	||d   d   d   d   ||d	d
} |d|        | j                  j	                  | j
                        j                  |d      j                         \  }}y d|v rmd|d   v rd}	|
|d   |	||d   ||dd} |d|        | j                  j	                  | j
                        j                  |d      j                         \  }}y y # t        $ r   |dt        j                                 Y y w xY w)Nz5Supabase Logging - Enters logging function for model z, response_obj: )completion_responsechoicesr   r   messagecontentsuccess)response_timer   
total_costr   responser   r!   r    z&Supabase Logging - final data object: r!   )on_conflicterrorz$Unable to map your input to a model.failure)r5   r   r6   r   r9   r   r!   r    r"   )litellmcompletion_costtotal_secondsr   r#   r$   upsertr&   r'   r(   r)   )r   r   r   r   response_obj
start_timeend_timer!   r*   r6   r5   r+   r,   r-   s                 r   	log_eventzSupabase.log_event:   s   3	GwN^_k^lm !00\RJ%
2AACML(%2)'2", ( ,Y 7 :9 Ei P ('6'	%! <=N<OP ((..t/G/GHV-;LVMWY e
 L(9\'=RR!"J%2)'2", ()'2 ('6'	%! <=N<OP ((..t/G/GHV-;LVMWY e! ),  	5i6J6J6L5MNO	s   B'D *A0D &EEN)__name__
__module____qualname__r$   r   r.   rB        r   r   r      s    (
$0>rG   r   )r   r   r   r(   r;   r   rF   rG   r   <module>rH      s"    
  
  l lrG   