from typing import List, Union from pydantic import BaseModel class ModerationPiiConfig(BaseModel): threshold: float = 0.5 """Threshold for PII confidence score, defaults to 0.5 i.e. 50%""" labels: List[str] = [] """ List of PII Universal Labels. Defaults to `list[]` """ redact: bool = False """Whether to perform redaction of detected PII entities""" mask_character: str = "*" """Redaction mask character in case redact=True, defaults to asterisk (*)""" class ModerationToxicityConfig(BaseModel): threshold: float = 0.5 """Threshold for Toxic label confidence score, defaults to 0.5 i.e. 50%""" labels: List[str] = [] """List of toxic labels, defaults to `list[]`""" class ModerationIntentConfig(BaseModel): threshold: float = 0.5 """ Threshold for Intent classification confidence score, defaults to 0.5 i.e. 50% """ class BaseModerationConfig(BaseModel): filters: List[ Union[ModerationPiiConfig, ModerationToxicityConfig, ModerationIntentConfig] ] = [ ModerationPiiConfig(), ModerationToxicityConfig(), ModerationIntentConfig(), ] """ Filters applied to the moderation chain, defaults to `[ModerationPiiConfig(), ModerationToxicityConfig(), ModerationIntentConfig()]` """