Files
post-moderation/ai-moderation/app/core/dependencies.py
2026-07-28 01:10:11 +03:00

65 lines
1.6 KiB
Python

from functools import lru_cache
from app.ml.image.image_classifier import ImageClassifier
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
from app.ml.image.clip_classifier import ClipClassifier
_clip_classifier = None
@lru_cache
def get_clip_classifier():
global _clip_classifier
if _clip_classifier is None:
_clip_classifier = ClipClassifier()
return _clip_classifier
@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():
return ImageValidator()
def get_image_classifier():
return ImageClassifier()
@lru_cache
def get_image_moderation_service():
return ImageModerationService(
classifier=get_image_classifier(),
validator=get_image_validator(),
clip_classifier=get_clip_classifier()
)