From b2425677788a1591265d520d2d0ffc78edd583f7 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Sat, 8 Nov 2025 16:30:05 -0800 Subject: [PATCH] [Bug Fix] Content Filter Guard (#16414) * fix add_guardrail_to_db * bump commit --- litellm/__init__.py | 2 +- litellm/proxy/guardrails/guardrail_registry.py | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/litellm/__init__.py b/litellm/__init__.py index 7adc528b94..a879e1e638 100644 --- a/litellm/__init__.py +++ b/litellm/__init__.py @@ -34,7 +34,7 @@ from litellm.types.utils import ( all_litellm_params as _litellm_completion_params, CredentialItem, PriorityReservationDict, -) # maintain backwards compatibility for root param +) # maintain backwards compatibility for root param. from litellm._logging import ( set_verbose, _turn_on_debug, diff --git a/litellm/proxy/guardrails/guardrail_registry.py b/litellm/proxy/guardrails/guardrail_registry.py index d5e82695c7..9369acd646 100644 --- a/litellm/proxy/guardrails/guardrail_registry.py +++ b/litellm/proxy/guardrails/guardrail_registry.py @@ -232,7 +232,13 @@ class GuardrailRegistry: """ try: guardrail_name = guardrail.get("guardrail_name") - litellm_params: str = safe_dumps(dict(guardrail.get("litellm_params", {}))) + # Properly serialize LitellmParams Pydantic model to dict + litellm_params_obj = guardrail.get("litellm_params", {}) + if hasattr(litellm_params_obj, 'model_dump'): + litellm_params_dict = litellm_params_obj.model_dump() + else: + litellm_params_dict = dict(litellm_params_obj) if litellm_params_obj else {} + litellm_params: str = safe_dumps(litellm_params_dict) guardrail_info: str = safe_dumps(guardrail.get("guardrail_info", {})) # Create guardrail in DB @@ -278,7 +284,13 @@ class GuardrailRegistry: """ try: guardrail_name = guardrail.get("guardrail_name") - litellm_params: str = safe_dumps(dict(guardrail.get("litellm_params", {}))) + # Properly serialize LitellmParams Pydantic model to dict + litellm_params_obj = guardrail.get("litellm_params", {}) + if hasattr(litellm_params_obj, 'model_dump'): + litellm_params_dict = litellm_params_obj.model_dump() + else: + litellm_params_dict = dict(litellm_params_obj) if litellm_params_obj else {} + litellm_params: str = safe_dumps(litellm_params_dict) guardrail_info: str = safe_dumps(guardrail.get("guardrail_info", {})) # Update in DB