Vitalis_Core / vitalis /validator.py
FerrellSyntheticIntelligence
Restructure as bolt-on cognitive framework
454a778
Raw
History Blame Contribute Delete
1.31 kB
import re
from typing import Optional
from .config import VALIDATOR_ENABLED
class ValidationResult:
def __init__(self, is_valid: bool, reason: str = "", score: float = 1.0):
self.is_valid = is_valid
self.reason = reason
self.score = score
class DataValidator:
GARBAGE_PATTERNS = [
re.compile(r'^[\s\[\]\(\)\{\}<>\.\,\?\!\"\'\;\:\-\_\@\#\$\%\^\&\*\+\=\\\/\|~`]{1,10}$'),
]
def validate_input(self, text: str) -> ValidationResult:
if not VALIDATOR_ENABLED:
return ValidationResult(True, "validator disabled", 1.0)
if not text or not text.strip():
return ValidationResult(False, "empty input", 0.0)
if len(text.strip()) < 2:
return ValidationResult(False, "input too short", 0.1)
for pat in self.GARBAGE_PATTERNS:
if pat.match(text.strip()):
return ValidationResult(False, "non-semantic input", 0.0)
return ValidationResult(True, "", 1.0)
def validate_output(self, text: str) -> ValidationResult:
if not VALIDATOR_ENABLED:
return ValidationResult(True, "validator disabled", 1.0)
if not text or not text.strip():
return ValidationResult(False, "empty response", 0.0)
return ValidationResult(True, "", 1.0)