
    ^h+                         % S SK r S SKJrJrJr  S SKrS SKJr  S SKJr  S SK	J
r
  S SKJrJrJrJrJrJrJr  / q\\   \S'   S\\\\4      S	\S
\S\S\\\4   4
S jr  SS\\   S
\\   4S jjrg)    N)DictListOptional)
get_secret)verbose_proxy_logger)initialize_callbacks_on_proxy)	GuardrailGuardrailEventHooksGuardrailItemGuardrailItemSpecLakeraCategoryThresholdsLitellmParamsSupportedGuardrailIntegrationsall_guardrailsguardrails_configpremium_userconfig_file_pathlitellm_settingsreturnc                     [         R                  " SU  35        U  HT  n UR                  5        H<  u  pV[        S	0 UDSU0D6n[        R                  U5        U[        R                  U'   M>     MV     [        5       n0 n	[         H  n
[         R                  " U
R                  5        [         R                  " U
R                  5        U	R                  U
R                  5        U
R                  SL d  Mo  U
R                   HH  nU[        R                  ;  a  UR                  U5        U
R                  SL d  M9  US:X  d  MA  SS0U	S'   MJ     M     [!        U5      n[#        U5      S:  a  [%        UUUUU	S9  [        R                  $ ! [&         a5  n[         R(                  " SR+                  [-        U5      5      5        UeS nAff = f)
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                 b/home/james-whalen/.local/lib/python3.13/site-packages/litellm/proxy/guardrails/init_guardrails.pyinitialize_guardrailsr8      s   0""%CDUCV#WX%D
 

!.!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,   C0F	 6AF	 ;F	 AF	 	
G0GGc           
      
   / nU  GH`  nUS   n[         R                  " SU5        [        R                  R	                  5        Vs0 s H  nXUU;   a  XE   OS _M     nn[        S+0 UD6nSU;   a  US   (       a  [        S+0 US   D6nXS'   US   (       a3  US   R                  S5      (       a  [        [        US   5      5      US'   US   (       a3  US   R                  S5      (       a  [        [        US   5      5      US'   US   [        R                  R                  :X  a<  SS	KJn	  U	" US   US   US
   US   S9n
[        R                  R!                  U
5        GOUS   [        R"                  R                  :X  a<  SSKJn  U" US
   US   US   US   S9n[        R                  R!                  U5        GOUS   [        R(                  R                  :X  aL  SSKJn  U" US   US   US
   US   UR/                  S5      S9n[        R                  R!                  U5        GOUS   [        R0                  R                  :X  a  SSKJn  U" US
   US   US   US   UR/                  S5      =(       d    S S9nUS   SL aF  U" SUS
   [6        R8                  R                  US   S9n[        R                  R!                  U5        [        R                  R!                  U5        GOSUS   [        R:                  R                  :X  aD  SSKJn  U" UR/                  S5      US   US
   S9n[        R                  R!                  U5        GOUS   [        R@                  R                  :X  au  SSK!J"n  UR/                  S5      nUc  [G        S5      eU" UR/                  S5      U[        R@                  R                  S 9n[        R                  R!                  U5        GOX[I        US   [        5      (       Ga.  S!US   ;   Ga$  Uc  [G        S"5      eSS K%nUS   nURM                  S!5      u  nn[         R                  " S#UUU5        URN                  RQ                  U5      nURN                  RS                  UU5      nUS$-  n[T        RV                  RY                  UU5      nUc  [[        S%U 35      e[T        RV                  R]                  U5      nUR^                  Ra                  U5        [c        UU5      nU" US
   US   S&9n [        R                  R!                  U 5        O[e        S'US    35      e[g        US
   US(9n!UR!                  U!5        US
     GMc     [i        S)U S*35        g s  snf ),Nlitellm_paramszlitellm_params= %scategory_thresholdsapi_keyzos.environ/api_baser3   r   )AporiaGuardrailr   mode)r=   r<   r   
event_hook)BedrockGuardrailguardrailIdentifierguardrailVersion)r   r@   rB   rC   )lakeraAI_Moderation)r=   r<   r   r@   r;   )_OPTIONAL_PresidioPIIMaskingoutput_parse_piipresidio_ad_hoc_recognizersmock_redacted_text)r   r@   rF   rG   rH   T)rF   r   r@   rG   )_ENTERPRISE_SecretDetectiondetect_secrets_config)rJ   r@   r   )GuardrailsAI
guard_namezaGuardrailsAIException - Please pass the Guardrails AI guard name via 'litellm_params::guard_name')r=   rL   r   .zTGuardrailsAIException - Please pass the config_file_path to initialize_guardrails_v2z@Initializing custom guardrail: %s, file_name: %s, class_name: %sz.pyz*Could not find a module specification for )r   r@   zUnsupported guardrail: )r   r:   z
Guardrail List:
r   )5r   r   r   __annotations__keysr   
startswithr-   r   r   APORIAr   2litellm.proxy.guardrails.guardrail_hooks.aporia_air>   r    r&   r   BEDROCK;litellm.proxy.guardrails.guardrail_hooks.bedrock_guardrailsrA   LAKERA2litellm.proxy.guardrails.guardrail_hooks.lakera_airD   getPRESIDIO1litellm.proxy.guardrails.guardrail_hooks.presidiorE   r
   	post_callHIDE_SECRETS,enterprise.enterprise_hooks.secret_detectionrI   GURDRAILS_AI6litellm.proxy.guardrails.guardrail_hooks.guardrails_airK   r*   
isinstanceossplitpathdirnamejoin	importlibutilspec_from_file_locationImportErrormodule_from_specloaderexec_modulegetattr
ValueErrorr	   print)"r   r   guardrail_listr3   litellm_params_datar/   _litellm_params_kwargsr:   lakera_category_thresholdsr>   _aporia_callbackrA   _bedrock_callbackrD   _lakera_callbackrE   _presidio_callback_success_callbackrI   _secret_detection_objectrK   _guard_name_guardrails_ai_callbackra   
_guardrail
_file_name_class_name	directorymodule_file_pathspecmodule_guardrail_class_guardrail_callbackparsed_guardrails"                                     r7   init_guardrails_v2r   V   s   
 N $	 ((89""#79LM #22779"
9 .A)A"%tK9 	 "

 '@)?@ "%88#$9:)A *%&;<*& 5O01)$i(33MBB,/
>);T0U,Vy)*%j)44]CC-0N:<V1W-Xz* +&*H*O*O*U*UU  /'
3&y1()9:)&1	  $$%56;'+I+Q+Q+W+WW !1()9:)&1$23H$I!/0B!C	! $$%67K(,J,Q,Q,W,WW  3'
3&y1()9:)&1$2$6$67L$M  $$%56;'+I+R+R+X+XX ">()9:)&1!/0B!C,:1- $2#5#56J#K#St" 01T9$@%)#,-=#>2<<BB0>51	%! !!(():;$$%78;'-::@@A (C&4&8&89P&Q)&1()9:($ $$%=>;'-::@@A ),,\:K"w  '3'++J7&=JJPP'# $$%<=~k2C88~k22'j   (4J&0&6&6s&;#J &&R	 (89I!ww||IzB%>>99+GWXD|!@AQ@RS  ^^44T:FKK##F+&v{;"2()9:)&1# $$%896~k7R6STUU$$%56)

 	./"#o $r 
n-R
01g"
s   U:)N)rf   typingr   r   r   r    r   litellm._loggingr   )litellm.proxy.common_utils.callback_utilsr   litellm.types.guardrailsr	   r
   r   r   r   r   r   r   rO   r-   booldictr8   r   r       r7   <module>r      s     ' '   1 S   ')]# (6D&7!78966 6 	6
 
#}
6r '+A2JA2smA2r   