fix(guardrails): restore documented TrendAI environment fallback

This commit is contained in:
Oliver Fei 2026-09-24 16:53:46 -04:00
parent 477a58a91f
commit 1d0bcdbec7
2 changed files with 2 additions and 25 deletions

View file

@ -25,7 +25,6 @@ from litellm.llms.custom_httpx.http_handler import (
get_async_httpx_client, # pyright: ignore[reportUnknownVariableType] # legacy client factory has an untyped params map
httpxSpecialProvider,
)
from litellm.secret_managers.main import get_secret_str
from litellm.types.guardrails import GuardrailEventHooks, Mode
from litellm.types.utils import GenericGuardrailAPIInputs, GuardrailStatus
@ -86,13 +85,13 @@ class TrendAIGuardrail(CustomGuardrail):
event_hook: GuardrailEventHooks | list[GuardrailEventHooks] | Mode | None = None,
default_on: bool = False,
) -> None:
resolved_api_key: Final = api_key or get_secret_str("TMV1_API_KEY")
resolved_api_key: Final = api_key or os.environ.get("TMV1_API_KEY")
if not resolved_api_key:
raise ValueError(
"Trend AI Guard requires an API key. Pass api_key or set the TMV1_API_KEY environment variable."
)
resolved_api_base: Final = api_base or get_secret_str("TRENDAI_AI_GUARD_BASE_URL")
resolved_api_base: Final = api_base or os.environ.get("TRENDAI_AI_GUARD_BASE_URL")
if not resolved_api_base:
raise ValueError(
"Trend AI Guard requires an API base URL. Pass api_base or set the "

View file

@ -106,28 +106,6 @@ def test_environment_fallbacks(monkeypatch: pytest.MonkeyPatch) -> None:
assert guardrail.app_name == "env-app"
def test_secret_manager_configuration_is_used(monkeypatch: pytest.MonkeyPatch) -> None:
import litellm
from litellm.secret_managers import main as secrets
monkeypatch.delenv("TMV1_API_KEY", raising=False)
monkeypatch.delenv("TRENDAI_AI_GUARD_BASE_URL", raising=False)
monkeypatch.setattr(litellm, "secret_manager_client", object())
monkeypatch.setattr(litellm, "_key_management_settings", None)
monkeypatch.setattr(litellm, "_key_management_system", None)
monkeypatch.setattr(secrets, "_should_read_secret_from_secret_manager", lambda: True)
managed = {
"TMV1_API_KEY": "managed-key",
"TRENDAI_AI_GUARD_BASE_URL": "https://managed.example.com",
}
monkeypatch.setattr(secrets, "get_secret_from_manager", lambda **kwargs: managed[kwargs["secret_name"]])
guardrail = TrendAIGuardrail(guardrail_name="trendai", event_hook=GuardrailEventHooks.pre_call)
assert guardrail.api_key == "managed-key"
assert guardrail.api_url == "https://managed.example.com/applyGuardrails"
def test_explicit_configuration_takes_precedence(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("TMV1_API_KEY", "env-key")
monkeypatch.setenv("TRENDAI_AI_GUARD_BASE_URL", "https://env.example.com")