26 lines
522 B
Python
26 lines
522 B
Python
from app.ml.text_classifier import TextClassifier
|
|
from app.ml.prediction_result import PredictionResult
|
|
|
|
|
|
class TextModerationService:
|
|
|
|
TOXIC_THRESHOLD = 0.80
|
|
|
|
def __init__(self):
|
|
self.classifier = TextClassifier()
|
|
|
|
def moderate(self, text: str) -> PredictionResult:
|
|
|
|
prediction = self.classifier.predict(text)
|
|
|
|
prediction.approved = (
|
|
prediction.score < self.TOXIC_THRESHOLD
|
|
)
|
|
|
|
prediction.reason = (
|
|
"OK"
|
|
if prediction.approved
|
|
else "TOXIC"
|
|
)
|
|
|
|
return prediction |