diff --git a/litellm/proxy/guardrails/guardrail_hooks/wingback/__init__.py b/litellm/proxy/guardrails/guardrail_hooks/wingback/__init__.py index 651f7a6ed14..08d5ad30aaa 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/wingback/__init__.py +++ b/litellm/proxy/guardrails/guardrail_hooks/wingback/__init__.py @@ -11,19 +11,11 @@ if TYPE_CHECKING: def initialize_guardrail(litellm_params: "LitellmParams", guardrail: "Guardrail") -> WingbackGuardrail: import litellm - base_params = litellm_params.additional_provider_specific_params or {} - wingback_app_id = litellm_params.wingback_app_id - additional_params: Final = ( - {**base_params, "wingback_app_id": wingback_app_id} - if wingback_app_id and "wingback_app_id" not in base_params - else base_params - ) - _wingback_callback: Final = WingbackGuardrail( api_base=litellm_params.api_base, api_key=litellm_params.api_key, - wingback_app_id=wingback_app_id, - additional_provider_specific_params=additional_params, + wingback_app_id=litellm_params.wingback_app_id, + additional_provider_specific_params=litellm_params.additional_provider_specific_params, unreachable_fallback=litellm_params.unreachable_fallback or "fail_closed", fail_on_error=litellm_params.fail_on_error, guardrail_name=guardrail.get("guardrail_name", ""), @@ -35,10 +27,10 @@ def initialize_guardrail(litellm_params: "LitellmParams", guardrail: "Guardrail" return _wingback_callback -guardrail_initializer_registry: Final = { +guardrail_initializer_registry: Final = { # mutable-ok: module registry merged at import by guardrail_registry SupportedGuardrailIntegrations.WINGBACK.value: initialize_guardrail, } -guardrail_class_registry: Final = { +guardrail_class_registry: Final = { # mutable-ok: module registry merged at import by guardrail_registry SupportedGuardrailIntegrations.WINGBACK.value: WingbackGuardrail, } diff --git a/litellm/proxy/guardrails/guardrail_hooks/wingback/wingback.py b/litellm/proxy/guardrails/guardrail_hooks/wingback/wingback.py index ebe83a4b60c..538bc713ffb 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/wingback/wingback.py +++ b/litellm/proxy/guardrails/guardrail_hooks/wingback/wingback.py @@ -44,11 +44,15 @@ class WingbackGuardrail(GenericGuardrailAPI): resolved_api_base: Final = api_base or os.environ.get("WINGBACK_API_BASE") or DEFAULT_WINGBACK_API_BASE resolved_api_key: Final = api_key or os.environ.get("WINGBACK_INTEGRATION_API_KEY") - existing_params = additional_provider_specific_params or {} + existing_params: Final = additional_provider_specific_params additional_params: Final = ( - {**existing_params, "wingback_app_id": wingback_app_id} - if wingback_app_id and "wingback_app_id" not in existing_params - else existing_params + {**existing_params, "wingback_app_id": wingback_app_id} # mutable-ok: one-shot merge for guardrail API payload + if wingback_app_id and existing_params is not None and "wingback_app_id" not in existing_params + else ( + {"wingback_app_id": wingback_app_id} # mutable-ok: default provider params when only app id is configured + if wingback_app_id and existing_params is None + else existing_params + ) ) super().__init__(