Coverage for .venv/lib/python3.13/site-packages/litellm/proxy/guardrails/guardrail_hooks/ibm_guardrails/__init__.py: 23%
32 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:01 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:01 +0000
1from typing import TYPE_CHECKING, Final
3from litellm.types.guardrails import SupportedGuardrailIntegrations
4from litellm.types.proxy.guardrails.guardrail_hooks.ibm import IBMDetectorOptionalParams
6from .ibm_detector import IBMGuardrailDetector
8if TYPE_CHECKING: 8 ↛ 9line 8 didn't jump to line 9 because the condition on line 8 was never true
9 from litellm.types.guardrails import Guardrail, LitellmParams
12def initialize_guardrail(litellm_params: "LitellmParams", guardrail: "Guardrail"):
13 import litellm
15 if not litellm_params.auth_token:
16 raise ValueError("IBM Guardrails: auth_token is required")
17 if not litellm_params.base_url:
18 raise ValueError("IBM Guardrails: base_url is required")
19 if not litellm_params.detector_id:
20 raise ValueError("IBM Guardrails: detector_id is required")
22 guardrail_name: Final = guardrail.get("guardrail_name")
23 if not guardrail_name:
24 raise ValueError("IBM Guardrails: guardrail_name is required")
26 verify_ssl: Final = getattr(litellm_params, "verify_ssl", True)
28 # Get optional params
29 optional_params: Final = getattr(litellm_params, "optional_params", IBMDetectorOptionalParams())
30 detector_params: Final = getattr(optional_params, "detector_params", {})
31 extra_headers: Final = getattr(optional_params, "extra_headers", {})
32 score_threshold: Final = getattr(optional_params, "score_threshold", None)
33 block_on_detection: Final = getattr(optional_params, "block_on_detection", True)
35 is_detector_server = litellm_params.is_detector_server
36 if is_detector_server is None:
37 is_detector_server = True
39 ibm_guardrail: Final = IBMGuardrailDetector(
40 guardrail_name=guardrail_name,
41 auth_token=litellm_params.auth_token,
42 base_url=litellm_params.base_url,
43 detector_id=litellm_params.detector_id,
44 is_detector_server=is_detector_server,
45 detector_params=detector_params,
46 extra_headers=extra_headers,
47 score_threshold=score_threshold,
48 block_on_detection=block_on_detection,
49 verify_ssl=verify_ssl,
50 default_on=litellm_params.default_on,
51 event_hook=litellm_params.mode,
52 )
54 litellm.logging_callback_manager.add_litellm_callback(ibm_guardrail)
55 return ibm_guardrail
58guardrail_initializer_registry: Final = {
59 SupportedGuardrailIntegrations.IBM_GUARDRAILS.value: initialize_guardrail,
60}
63guardrail_class_registry: Final = {
64 SupportedGuardrailIntegrations.IBM_GUARDRAILS.value: IBMGuardrailDetector,
65}
68__all__ = ["IBMGuardrailDetector", "initialize_guardrail"]