test3 / litellm /proxy /guardrails /guardrail_initializers.py
DesertWolf's picture
Upload folder using huggingface_hub
447ebeb verified
# litellm/proxy/guardrails/guardrail_initializers.py
import litellm
from litellm.proxy._types import CommonProxyErrors
from litellm.types.guardrails import *
def initialize_aporia(
litellm_params: LitellmParams,
guardrail: Guardrail,
):
from litellm.proxy.guardrails.guardrail_hooks.aporia_ai import AporiaGuardrail
_aporia_callback = AporiaGuardrail(
api_base=litellm_params.api_base,
api_key=litellm_params.api_key,
guardrail_name=guardrail.get("guardrail_name", ""),
event_hook=litellm_params.mode,
default_on=litellm_params.default_on,
)
litellm.logging_callback_manager.add_litellm_callback(_aporia_callback)
return _aporia_callback
def initialize_bedrock(litellm_params: LitellmParams, guardrail: Guardrail):
from litellm.proxy.guardrails.guardrail_hooks.bedrock_guardrails import (
BedrockGuardrail,
)
_bedrock_callback = BedrockGuardrail(
guardrail_name=guardrail.get("guardrail_name", ""),
event_hook=litellm_params.mode,
guardrailIdentifier=litellm_params.guardrailIdentifier,
guardrailVersion=litellm_params.guardrailVersion,
default_on=litellm_params.default_on,
mask_request_content=litellm_params.mask_request_content,
mask_response_content=litellm_params.mask_response_content,
aws_region_name=litellm_params.aws_region_name,
aws_access_key_id=litellm_params.aws_access_key_id,
aws_secret_access_key=litellm_params.aws_secret_access_key,
aws_session_token=litellm_params.aws_session_token,
aws_session_name=litellm_params.aws_session_name,
aws_profile_name=litellm_params.aws_profile_name,
aws_role_name=litellm_params.aws_role_name,
aws_web_identity_token=litellm_params.aws_web_identity_token,
aws_sts_endpoint=litellm_params.aws_sts_endpoint,
aws_bedrock_runtime_endpoint=litellm_params.aws_bedrock_runtime_endpoint,
)
litellm.logging_callback_manager.add_litellm_callback(_bedrock_callback)
return _bedrock_callback
def initialize_lakera(litellm_params: LitellmParams, guardrail: Guardrail):
from litellm.proxy.guardrails.guardrail_hooks.lakera_ai import lakeraAI_Moderation
_lakera_callback = lakeraAI_Moderation(
api_base=litellm_params.api_base,
api_key=litellm_params.api_key,
guardrail_name=guardrail.get("guardrail_name", ""),
event_hook=litellm_params.mode,
category_thresholds=litellm_params.category_thresholds,
default_on=litellm_params.default_on,
)
litellm.logging_callback_manager.add_litellm_callback(_lakera_callback)
return _lakera_callback
def initialize_lakera_v2(litellm_params: LitellmParams, guardrail: Guardrail):
from litellm.proxy.guardrails.guardrail_hooks.lakera_ai_v2 import LakeraAIGuardrail
_lakera_v2_callback = LakeraAIGuardrail(
api_base=litellm_params.api_base,
api_key=litellm_params.api_key,
guardrail_name=guardrail.get("guardrail_name", ""),
event_hook=litellm_params.mode,
default_on=litellm_params.default_on,
project_id=litellm_params.project_id,
payload=litellm_params.payload,
breakdown=litellm_params.breakdown,
metadata=litellm_params.metadata,
dev_info=litellm_params.dev_info,
)
litellm.logging_callback_manager.add_litellm_callback(_lakera_v2_callback)
return _lakera_v2_callback
def initialize_aim(litellm_params: LitellmParams, guardrail: Guardrail):
from litellm.proxy.guardrails.guardrail_hooks.aim import AimGuardrail
_aim_callback = AimGuardrail(
api_base=litellm_params.api_base,
api_key=litellm_params.api_key,
guardrail_name=guardrail.get("guardrail_name", ""),
event_hook=litellm_params.mode,
default_on=litellm_params.default_on,
)
litellm.logging_callback_manager.add_litellm_callback(_aim_callback)
return _aim_callback
def initialize_presidio(litellm_params: LitellmParams, guardrail: Guardrail):
from litellm.proxy.guardrails.guardrail_hooks.presidio import (
_OPTIONAL_PresidioPIIMasking,
)
_presidio_callback = _OPTIONAL_PresidioPIIMasking(
guardrail_name=guardrail.get("guardrail_name", ""),
event_hook=litellm_params.mode,
output_parse_pii=litellm_params.output_parse_pii,
presidio_ad_hoc_recognizers=litellm_params.presidio_ad_hoc_recognizers,
mock_redacted_text=litellm_params.mock_redacted_text,
default_on=litellm_params.default_on,
pii_entities_config=litellm_params.pii_entities_config,
presidio_analyzer_api_base=litellm_params.presidio_analyzer_api_base,
presidio_anonymizer_api_base=litellm_params.presidio_anonymizer_api_base,
presidio_language=litellm_params.presidio_language,
)
litellm.logging_callback_manager.add_litellm_callback(_presidio_callback)
if litellm_params.output_parse_pii:
_success_callback = _OPTIONAL_PresidioPIIMasking(
output_parse_pii=True,
guardrail_name=guardrail.get("guardrail_name", ""),
event_hook=GuardrailEventHooks.post_call.value,
presidio_ad_hoc_recognizers=litellm_params.presidio_ad_hoc_recognizers,
default_on=litellm_params.default_on,
presidio_analyzer_api_base=litellm_params.presidio_analyzer_api_base,
presidio_anonymizer_api_base=litellm_params.presidio_anonymizer_api_base,
presidio_language=litellm_params.presidio_language,
)
litellm.logging_callback_manager.add_litellm_callback(_success_callback)
return _presidio_callback
def initialize_hide_secrets(litellm_params: LitellmParams, guardrail: Guardrail):
try:
from litellm_enterprise.enterprise_callbacks.secret_detection import (
_ENTERPRISE_SecretDetection,
)
except ImportError:
raise Exception(
"Trying to use Secret Detection"
+ CommonProxyErrors.missing_enterprise_package.value
)
_secret_detection_object = _ENTERPRISE_SecretDetection(
detect_secrets_config=litellm_params.detect_secrets_config,
event_hook=litellm_params.mode,
guardrail_name=guardrail.get("guardrail_name", ""),
default_on=litellm_params.default_on,
)
litellm.logging_callback_manager.add_litellm_callback(_secret_detection_object)
return _secret_detection_object
def initialize_guardrails_ai(litellm_params, guardrail):
from litellm.proxy.guardrails.guardrail_hooks.guardrails_ai import GuardrailsAI
_guard_name = litellm_params.guard_name
if not _guard_name:
raise Exception(
"GuardrailsAIException - Please pass the Guardrails AI guard name via 'litellm_params::guard_name'"
)
_guardrails_ai_callback = GuardrailsAI(
api_base=litellm_params.api_base,
guard_name=_guard_name,
guardrail_name=SupportedGuardrailIntegrations.GURDRAILS_AI.value,
default_on=litellm_params.default_on,
)
litellm.logging_callback_manager.add_litellm_callback(_guardrails_ai_callback)
return _guardrails_ai_callback
def initialize_pangea(litellm_params, guardrail):
from litellm.proxy.guardrails.guardrail_hooks.pangea import PangeaHandler
_pangea_callback = PangeaHandler(
guardrail_name=guardrail["guardrail_name"],
pangea_input_recipe=litellm_params.pangea_input_recipe,
pangea_output_recipe=litellm_params.pangea_output_recipe,
api_base=litellm_params.api_base,
api_key=litellm_params.api_key,
default_on=litellm_params.default_on,
)
litellm.logging_callback_manager.add_litellm_callback(_pangea_callback)
return _pangea_callback
def initialize_lasso(
litellm_params: LitellmParams,
guardrail: Guardrail,
):
from litellm.proxy.guardrails.guardrail_hooks.lasso import LassoGuardrail
_lasso_callback = LassoGuardrail(
guardrail_name=guardrail.get("guardrail_name", ""),
lasso_api_key=litellm_params.api_key,
api_base=litellm_params.api_base,
user_id=litellm_params.lasso_user_id,
conversation_id=litellm_params.lasso_conversation_id,
event_hook=litellm_params.mode,
default_on=litellm_params.default_on,
)
litellm.logging_callback_manager.add_litellm_callback(_lasso_callback)
return _lasso_callback