from pydantic import BaseModel from typing import List from app.models.check_type import CheckType from app.services.text_cleaner import clean_text from app.ml_models.classifier import Classifier from app.ml_models.gemini_moderator import gemini_for_cleansing from app.ml_models.gemini_moderator import gemini_for_misinfo_detection classifier = Classifier() classifier.initialize_classifier() class ModerationRequest(BaseModel): content: str checkFor: List[CheckType] threshold: float = 0.6 def correct_typos(self) -> None: self.content = clean_text(self.content) def classify_moderation(self) -> None: result = classifier.predict_nsfw(self.content) return result def cleanse_content(self) -> str: return gemini_for_cleansing.cleanse(self.content) def identify_misinfo(self) -> str: return gemini_for_misinfo_detection.check_misinfo(self.content)