Skip to content

FastRulesEngine Class

The FastRulesEngine class provides fast, rule-based policy evaluation for messages and AI responses. It uses predefined rules to quickly check for policy violations.

Class Definition

class FastRulesEngine:
"""Fast rule-based policy evaluation engine."""

Instance Methods

evaluate

def evaluate(
message: str,
context: Optional[Dict[str, Any]] = None
) -> Dict[str, Any]

Evaluate a message against fast rules.

Parameters

ParameterTypeDefaultDescription
messagestr-The message to evaluate
contextOptional[Dict[str, Any]]NoneAdditional context

Returns

  • Dict[str, Any]: Evaluation result with confidence and violation information

Example

result = fast_rules.evaluate(
message="User message here",
context={"conversation_id": "unique_id"}
)
if not result["allowed"]:
print(f"Violation detected: {result['violation_reason']}")

add_rule

def add_rule(
rule_id: str,
pattern: str,
action: str,
priority: int = 0
) -> None

Add a new fast rule.

Parameters

ParameterTypeDefaultDescription
rule_idstr-Unique identifier for the rule
patternstr-Regex pattern to match
actionstr-Action to take on match (“block”, “flag”, “augment”)
priorityint0Rule priority (higher numbers evaluated first)

Example

fast_rules.add_rule(
rule_id="sensitive_data",
pattern=r"(?i)(ssn|credit card|password)",
action="block",
priority=100
)

remove_rule

def remove_rule(rule_id: str) -> None

Remove a fast rule.

Parameters

ParameterTypeDescription
rule_idstrID of the rule to remove

Example

fast_rules.remove_rule("sensitive_data")

get_rules

def get_rules() -> List[Dict[str, Any]]

Get all configured fast rules.

Returns

  • List[Dict[str, Any]]: List of rule configurations

Example

rules = fast_rules.get_rules()
for rule in rules:
print(f"Rule {rule['id']}: {rule['pattern']}")

Properties

PropertyTypeDescription
rulesList[Dict[str, Any]]List of configured rules
tracerTracerThe OpenTelemetry tracer

Rule Configuration

Each rule is a dictionary with the following structure:

{
"id": str, # Unique rule identifier
"pattern": str, # Regex pattern to match
"action": str, # Action to take ("block", "flag", "augment")
"priority": int, # Rule priority
"metadata": dict # Additional rule metadata
}