65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
from functools import lru_cache
|
|
|
|
from app.ml.image.clip_classifier import ClipClassifier
|
|
from app.ml.image.image_classifier import ImageClassifier
|
|
from app.ml.image.weapon_detector import WeaponDetector
|
|
from app.ml.text_classifier import TextClassifier
|
|
from app.moderation.image.validator import ImageValidator
|
|
from app.moderation.profanity.detector import ProfanityDetector
|
|
from app.moderation.profanity.dictionary import ProfanityDictionary
|
|
from app.moderation.profanity.lemmatizer import Lemmatizer
|
|
from app.services.image_moderation_service import ImageModerationService
|
|
from app.services.text_moderation_service import TextModerationService
|
|
|
|
|
|
@lru_cache
|
|
def get_clip_classifier() -> ClipClassifier:
|
|
return ClipClassifier()
|
|
|
|
|
|
@lru_cache
|
|
def get_text_classifier() -> TextClassifier:
|
|
return TextClassifier()
|
|
|
|
|
|
@lru_cache
|
|
def get_profanity_detector() -> ProfanityDetector:
|
|
return ProfanityDetector(
|
|
dictionary=ProfanityDictionary(
|
|
file_path="app/resources/profanity_words.txt"
|
|
),
|
|
lemmatizer=Lemmatizer()
|
|
)
|
|
|
|
|
|
@lru_cache
|
|
def get_text_moderation_service() -> TextModerationService:
|
|
return TextModerationService(
|
|
classifier=get_text_classifier(),
|
|
profanity_detector=get_profanity_detector()
|
|
)
|
|
|
|
|
|
@lru_cache
|
|
def get_image_validator() -> ImageValidator:
|
|
return ImageValidator()
|
|
|
|
|
|
@lru_cache
|
|
def get_image_classifier() -> ImageClassifier:
|
|
return ImageClassifier()
|
|
|
|
|
|
@lru_cache
|
|
def get_weapon_detector() -> WeaponDetector:
|
|
return WeaponDetector()
|
|
|
|
|
|
@lru_cache
|
|
def get_image_moderation_service() -> ImageModerationService:
|
|
return ImageModerationService(
|
|
classifier=get_image_classifier(),
|
|
validator=get_image_validator(),
|
|
clip_classifier=get_clip_classifier(),
|
|
weapon_detector=get_weapon_detector()
|
|
) |