diff --git a/litellm/proxy/guardrails/guardrail_hooks/lakera_ai_v2.py b/litellm/proxy/guardrails/guardrail_hooks/lakera_ai_v2.py index 456a3697219..234cac7847a 100644 --- a/litellm/proxy/guardrails/guardrail_hooks/lakera_ai_v2.py +++ b/litellm/proxy/guardrails/guardrail_hooks/lakera_ai_v2.py @@ -222,8 +222,9 @@ def _unmaskable_reason( def _gemini_items(value: object) -> Sequence[object]: """A repeated Gemini field as a sequence: a JSON array, or the single object Google also accepts in its place.""" - if isinstance(value, dict): - return (value,) + single: Final = as_str_mapping(value) + if single is not None: + return (single,) return _OBJECT_LIST.validate_python(value) if isinstance(value, list) else () diff --git a/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py b/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py index cedc001b0eb..9127fb2bdca 100644 --- a/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py +++ b/litellm/proxy/pass_through_endpoints/pass_through_endpoints.py @@ -947,9 +947,9 @@ class HttpPassThroughEndpointHelpers(BasePassthroughUtils): async def _inherit_auth_guardrails( parsed_body: dict[str, object] | None, # mutable-ok: merges the guardrails into the live request body user_api_key_dict: UserAPIKeyAuth, - configured_guardrails: Mapping[str, bool] | None, + configured_guardrails: Sequence[object] | None, inherit: bool, -) -> Mapping[str, bool] | Sequence[object] | None: +) -> Sequence[object] | None: """Return the guardrails a pass-through request runs after the provider responds. The endpoint's configured guardrails win. Without any, and with ``inherit`` and a JSON body, the key, team,