""" Abstract base classes for the vision backend. The pipeline is now a single binary classifier: photography vs other. Feature extraction is an internal detail of the classifier and is not exposed as a separate service. """ from abc import ABC, abstractmethod from dataclasses import dataclass import numpy as np @dataclass class ClassificationResult: label: str confidence: float class ContentClassifier(ABC): """Classifies an image into 'photography' or 'other'.""" @abstractmethod def classify(self, image: np.ndarray) -> ClassificationResult: ...