From 2876ac03ceaa78289f4b81a11c9fc8e39aefd1e4 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 17 Sep 2026 09:41:58 +0000 Subject: [PATCH] fix: keep fastapi import within proxy Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- litellm/integrations/custom_guardrail.py | 8 +++----- litellm/proxy/guardrails/exception_utils.py | 9 +++++++++ 2 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 litellm/proxy/guardrails/exception_utils.py diff --git a/litellm/integrations/custom_guardrail.py b/litellm/integrations/custom_guardrail.py index ff07fa4a8ec..a6c32d78c00 100644 --- a/litellm/integrations/custom_guardrail.py +++ b/litellm/integrations/custom_guardrail.py @@ -102,11 +102,9 @@ def is_guardrail_intervention(e: Exception) -> bool: ), ): return True - try: - from fastapi.exceptions import HTTPException - except ImportError: - return False - return isinstance(e, HTTPException) and e.status_code in _GUARDRAIL_BLOCK_STATUS_CODES + from litellm.proxy.guardrails.exception_utils import is_fastapi_http_exception + + return is_fastapi_http_exception(e, _GUARDRAIL_BLOCK_STATUS_CODES) def _strict_guardrail_modes_enabled() -> bool: diff --git a/litellm/proxy/guardrails/exception_utils.py b/litellm/proxy/guardrails/exception_utils.py new file mode 100644 index 00000000000..47f2655fdaf --- /dev/null +++ b/litellm/proxy/guardrails/exception_utils.py @@ -0,0 +1,9 @@ +from collections.abc import Collection + + +def is_fastapi_http_exception(e: Exception, block_status_codes: Collection[int]) -> bool: + try: + from fastapi.exceptions import HTTPException + except ImportError: + return False + return isinstance(e, HTTPException) and e.status_code in block_status_codes