from .text_preprocessor import TextPreprocessor from .emotion_classifier import EmotionClassifier from .shift_detector import ShiftDetector from .explanation_engine import ExplanationEngine class EmotionShiftPipeline: def __init__(self): self.p = TextPreprocessor(); self.c = EmotionClassifier() self.d = ShiftDetector(); self.e = ExplanationEngine() def __call__(self, conv): emotions = [self.c.classify(self.p.clean(t)) for t in conv] shifts = self.d.detect(emotions) return {'emotions': emotions, 'shifts': shifts, 'explanations': [self.e.explain(s) for s in shifts]}