
    h                         U d dl mZmZmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZmZ g aee   ed<   deeeef      ded	ed
edeeef   f
dZ	 	 ddee   d	ee   fdZy)    )DictListOptionalcastN)verbose_proxy_logger)initialize_callbacks_on_proxy)	GuardrailGuardrailItemGuardrailItemSpecall_guardrailsguardrails_configpremium_userconfig_file_pathlitellm_settingsreturnc                 r   	 t        j                  d|         | D ]R  }	 |j                         D ]<  \  }}t        d	i |d|i}t        j                  |       |t        j                  |<   > T t               }i }	t        D ]  }
t        j                  |
j                         t        j                  |
j                         |	j                  |
j                         |
j                  du sk|
j                  D ]A  }|t        j                  vr|j                  |       |
j                  du s5|dk(  s;ddi|	d<   C  t!        |      }t#        |      dkD  rt%        |||||	       t        j                  S # t&        $ r4}t        j(                  dj+                  t-        |                   |d }~ww xY w)
Nzvalidating  guardrails passed guardrail_nameTpresidiologging_onlyr   )valuer   r   r   callback_specific_paramsz error initializing guardrails {} )r   debugitemsr
   r   appendlitellmguardrail_name_config_mapsetr   
default_onupdatecallback_args	callbacksaddr   listlenr   	Exception	exceptionformatstr)r   r   r   r   itemkvguardrail_itemdefault_on_callbacksr   	guardrailcallbackdefault_on_callbacks_listes                 d/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/proxy/guardrails/init_guardrails.pyinitialize_guardrailsr4      s   0""%CDUCV#WX%D
 

1!.!E!E1!E%%n57E11!4 % &  #u#% 'I &&y'?'?@ &&y';';<$++I,C,CD##t+ ) 3 3Hw'8'88,00: --5#z1DRTXCY4Z@ !4 (  %))=$>!()A-)/)!1!1)A 000 &&.55c!f=	
 	s,   C+E9 .A E9 /E9 5AE9 9	F6/F11F6c                     ddl m} g }| D ]7  }|j                  t        t        |      |      }|s'|j                  |       9 t        j                  d| d       y )Nr   )IN_MEMORY_GUARDRAIL_HANDLER)r/   r   z
Guardrail List:
)+litellm.proxy.guardrails.guardrail_registryr6   initialize_guardrailr   r	   r   r   r   )r   r   r6   guardrail_listr/   initialized_guardrails         r3   init_guardrails_v2r<   L   sj     X&(N#	 ; P P9i0- !Q !
 !!!"78 $ !2>2B"EF    )N)typingr   r   r   r   r   litellm._loggingr   )litellm.proxy.common_utils.callback_utilsr   litellm.types.guardrailsr	   r
   r   r   __annotations__r)   booldictr4   r<   r   r=   r3   <module>rE      s    - -  1 S Q P&(]# (6D&7!78966 6 	6
 
#}
6r '+GJGsmGr=   