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
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:01 +0000
1from typing import TYPE_CHECKING, Final, Optional
3import litellm
4from litellm.proxy.guardrails.guardrail_hooks.litellm_content_filter.content_filter import (
5 ContentFilterGuardrail,
6)
7from litellm.types.guardrails import SupportedGuardrailIntegrations
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
14def initialize_guardrail(
15 litellm_params: "LitellmParams",
16 guardrail: "Guardrail",
17 llm_router: Optional["Router"] = None,
18):
19 """
20 Initialize the Content Filter Guardrail.
22 Args:
23 litellm_params: Guardrail configuration parameters
24 guardrail: Guardrail metadata
26 Returns:
27 Initialized ContentFilterGuardrail instance
28 """
29 guardrail_name: Final = guardrail.get("guardrail_name")
31 if not guardrail_name:
32 raise ValueError("Content Filter: guardrail_name is required")
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 )
53 litellm.logging_callback_manager.add_litellm_callback(content_filter_guardrail)
55 return content_filter_guardrail
58guardrail_initializer_registry: Final = {
59 SupportedGuardrailIntegrations.LITELLM_CONTENT_FILTER.value: initialize_guardrail,
60}
63guardrail_class_registry: Final = {
64 SupportedGuardrailIntegrations.LITELLM_CONTENT_FILTER.value: ContentFilterGuardrail,
65}