Coverage for .venv/lib/python3.13/site-packages/litellm/proxy/guardrails/guardrail_hooks/litellm_content_filter/__init__.py: 45%

16 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 12:01 +0000

1from typing import TYPE_CHECKING, Final, Optional 

2 

3import litellm 

4from litellm.proxy.guardrails.guardrail_hooks.litellm_content_filter.content_filter import ( 

5 ContentFilterGuardrail, 

6) 

7from litellm.types.guardrails import SupportedGuardrailIntegrations 

8 

9if TYPE_CHECKING: 9 ↛ 10line 9 didn't jump to line 10 because the condition on line 9 was never true

10 from litellm import Router 

11 from litellm.types.guardrails import Guardrail, LitellmParams 

12 

13 

14def initialize_guardrail( 

15 litellm_params: "LitellmParams", 

16 guardrail: "Guardrail", 

17 llm_router: Optional["Router"] = None, 

18): 

19 """ 

20 Initialize the Content Filter Guardrail. 

21 

22 Args: 

23 litellm_params: Guardrail configuration parameters 

24 guardrail: Guardrail metadata 

25 

26 Returns: 

27 Initialized ContentFilterGuardrail instance 

28 """ 

29 guardrail_name: Final = guardrail.get("guardrail_name") 

30 

31 if not guardrail_name: 

32 raise ValueError("Content Filter: guardrail_name is required") 

33 

34 content_filter_guardrail: Final = ContentFilterGuardrail( 

35 guardrail_name=guardrail_name, 

36 guardrail_id=guardrail.get("guardrail_id"), 

37 policy_template=guardrail.get("policy_template"), 

38 patterns=litellm_params.patterns, 

39 blocked_words=litellm_params.blocked_words, 

40 blocked_words_file=litellm_params.blocked_words_file, 

41 event_hook=litellm_params.mode, 

42 default_on=litellm_params.default_on or False, 

43 categories=getattr(litellm_params, "categories", None), 

44 severity_threshold=getattr(litellm_params, "severity_threshold", "medium"), 

45 llm_router=llm_router, 

46 image_model=getattr(litellm_params, "image_model", None), 

47 competitor_intent_config=getattr(litellm_params, "competitor_intent_config", None), 

48 end_session_after_n_fails=getattr(litellm_params, "end_session_after_n_fails", None), 

49 on_violation=getattr(litellm_params, "on_violation", None), 

50 realtime_violation_message=getattr(litellm_params, "realtime_violation_message", None), 

51 ) 

52 

53 litellm.logging_callback_manager.add_litellm_callback(content_filter_guardrail) 

54 

55 return content_filter_guardrail 

56 

57 

58guardrail_initializer_registry: Final = { 

59 SupportedGuardrailIntegrations.LITELLM_CONTENT_FILTER.value: initialize_guardrail, 

60} 

61 

62 

63guardrail_class_registry: Final = { 

64 SupportedGuardrailIntegrations.LITELLM_CONTENT_FILTER.value: ContentFilterGuardrail, 

65}