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

1from typing import TYPE_CHECKING, Final 

2 

3from litellm.types.guardrails import SupportedGuardrailIntegrations 

4from litellm.types.proxy.guardrails.guardrail_hooks.ibm import IBMDetectorOptionalParams 

5 

6from .ibm_detector import IBMGuardrailDetector 

7 

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 

10 

11 

12def initialize_guardrail(litellm_params: "LitellmParams", guardrail: "Guardrail"): 

13 import litellm 

14 

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") 

21 

22 guardrail_name: Final = guardrail.get("guardrail_name") 

23 if not guardrail_name: 

24 raise ValueError("IBM Guardrails: guardrail_name is required") 

25 

26 verify_ssl: Final = getattr(litellm_params, "verify_ssl", True) 

27 

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) 

34 

35 is_detector_server = litellm_params.is_detector_server 

36 if is_detector_server is None: 

37 is_detector_server = True 

38 

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 ) 

53 

54 litellm.logging_callback_manager.add_litellm_callback(ibm_guardrail) 

55 return ibm_guardrail 

56 

57 

58guardrail_initializer_registry: Final = { 

59 SupportedGuardrailIntegrations.IBM_GUARDRAILS.value: initialize_guardrail, 

60} 

61 

62 

63guardrail_class_registry: Final = { 

64 SupportedGuardrailIntegrations.IBM_GUARDRAILS.value: IBMGuardrailDetector, 

65} 

66 

67 

68__all__ = ["IBMGuardrailDetector", "initialize_guardrail"]