Class PatternBasedModerator
java.lang.Object
com.tnsai.quality.security.moderation.PatternBasedModerator
- All Implemented Interfaces:
ContentModerator
Pattern-based content moderator using regex matching.
Provides fast, offline content moderation based on configurable regex patterns. Suitable for filtering known harmful patterns without external API dependencies.
Default Patterns
The default configuration includes patterns for:
- Common profanity and slurs
- Violent threats
- Self-harm references
- Spam indicators
- PII patterns (email, phone, SSN)
Usage Example
// Default patterns
ContentModerator moderator = PatternBasedModerator.withDefaults();
// Custom configuration
ContentModerator custom = PatternBasedModerator.builder()
.addPattern(Category.TOXIC, "badword1|badword2", 0.9)
.addPattern(Category.SPAM, "(buy now|free offer)", 0.7)
.blockThreshold(0.8)
.warnThreshold(0.5)
.build();
// Check content
ModerationResult result = moderator.checkInput(userMessage);
if (result.isBlocked()) {
logger.warn("Blocked content: {}", result.getReason());
return result.getSafeResponse();
}
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder for PatternBasedModerator. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()Creates a moderator builder.checkInput(String userInput) Checks user input for policy violations.checkOutput(String modelOutput) Checks model output for policy violations.checkToolResult(String toolName, String result) Checks tool execution results for policy violations.getName()Gets the name of this moderator.static PatternBasedModeratorstrict()Creates a strict moderator with lower thresholds.static PatternBasedModeratorCreates a moderator with default patterns.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.tnsai.quality.security.moderation.ContentModerator
isEnabled
-
Method Details
-
withDefaults
Creates a moderator with default patterns.- Returns:
- default moderator
-
strict
Creates a strict moderator with lower thresholds.- Returns:
- strict moderator
-
builder
Creates a moderator builder.- Returns:
- new builder
-
checkInput
Description copied from interface:ContentModeratorChecks user input for policy violations.Called before processing user messages. Should detect:
- Harmful or offensive content
- Prompt injection attempts
- PII that shouldn't be processed
- Spam or off-topic content
- Specified by:
checkInputin interfaceContentModerator- Parameters:
userInput- the user's input message- Returns:
- moderation result
-
checkOutput
Description copied from interface:ContentModeratorChecks model output for policy violations.Called before returning responses to users. Should detect:
- Harmful or offensive content generated by the model
- Hallucinated harmful instructions
- PII leakage from training data
- Content that bypassed input filtering
- Specified by:
checkOutputin interfaceContentModerator- Parameters:
modelOutput- the model's response- Returns:
- moderation result
-
checkToolResult
Description copied from interface:ContentModeratorChecks tool execution results for policy violations.Called after tool execution, before using results. Should detect:
- Sensitive data in tool results
- Harmful content from external sources
- Unexpected or dangerous outputs
- Specified by:
checkToolResultin interfaceContentModerator- Parameters:
toolName- the name of the toolresult- the tool's output- Returns:
- moderation result
-
getName
Description copied from interface:ContentModeratorGets the name of this moderator.- Specified by:
getNamein interfaceContentModerator- Returns:
- moderator name
-