This commit is contained in:
2026-03-23 11:13:30 -03:00
parent 8186bb5fe6
commit 71fd0510de
34 changed files with 1373 additions and 104 deletions

108
detect/profiles/stubs.py Normal file
View File

@@ -0,0 +1,108 @@
"""Stub profiles — interfaces defined, not yet implemented."""
from __future__ import annotations
from detect.models import BrandDetection, DetectionReport
from .base import (
BrandDictionary,
CropContext,
DetectionConfig,
FrameExtractionConfig,
OCRConfig,
ResolverConfig,
SceneFilterConfig,
)
class NewsBroadcastProfile:
name = "news_broadcast"
def frame_extraction_config(self) -> FrameExtractionConfig:
raise NotImplementedError
def scene_filter_config(self) -> SceneFilterConfig:
raise NotImplementedError
def detection_config(self) -> DetectionConfig:
raise NotImplementedError
def ocr_config(self) -> OCRConfig:
raise NotImplementedError
def brand_dictionary(self) -> BrandDictionary:
raise NotImplementedError
def resolver_config(self) -> ResolverConfig:
raise NotImplementedError
def vlm_prompt(self, crop_context: CropContext) -> str:
raise NotImplementedError
def aggregate(self, detections: list[BrandDetection]) -> DetectionReport:
raise NotImplementedError
def auxiliary_detections(self, source: str) -> list[BrandDetection]:
raise NotImplementedError
class AdvertisingProfile:
name = "advertising"
def frame_extraction_config(self) -> FrameExtractionConfig:
raise NotImplementedError
def scene_filter_config(self) -> SceneFilterConfig:
raise NotImplementedError
def detection_config(self) -> DetectionConfig:
raise NotImplementedError
def ocr_config(self) -> OCRConfig:
raise NotImplementedError
def brand_dictionary(self) -> BrandDictionary:
raise NotImplementedError
def resolver_config(self) -> ResolverConfig:
raise NotImplementedError
def vlm_prompt(self, crop_context: CropContext) -> str:
raise NotImplementedError
def aggregate(self, detections: list[BrandDetection]) -> DetectionReport:
raise NotImplementedError
def auxiliary_detections(self, source: str) -> list[BrandDetection]:
raise NotImplementedError
class TranscriptProfile:
name = "transcript"
def frame_extraction_config(self) -> FrameExtractionConfig:
raise NotImplementedError
def scene_filter_config(self) -> SceneFilterConfig:
raise NotImplementedError
def detection_config(self) -> DetectionConfig:
raise NotImplementedError
def ocr_config(self) -> OCRConfig:
raise NotImplementedError
def brand_dictionary(self) -> BrandDictionary:
raise NotImplementedError
def resolver_config(self) -> ResolverConfig:
raise NotImplementedError
def vlm_prompt(self, crop_context: CropContext) -> str:
raise NotImplementedError
def aggregate(self, detections: list[BrandDetection]) -> DetectionReport:
raise NotImplementedError
def auxiliary_detections(self, source: str) -> list[BrandDetection]:
raise NotImplementedError