Dynamically add metrics for new model

This commit is contained in:
Nicolas Mowen 2025-10-23 07:28:58 -06:00
parent 4dd999dc74
commit 82c236f349
2 changed files with 11 additions and 0 deletions

View File

@ -10,6 +10,7 @@ from frigate.data_processing.real_time.whisper_online import FasterWhisperASR
class DataProcessorMetrics:
manager: SyncManager
image_embeddings_speed: Synchronized
image_embeddings_eps: Synchronized
text_embeddings_speed: Synchronized
@ -28,6 +29,7 @@ class DataProcessorMetrics:
classification_cps: dict[str, Synchronized]
def __init__(self, manager: SyncManager, custom_classification_models: list[str]):
self.manager = manager
self.image_embeddings_speed = manager.Value("d", 0.0)
self.image_embeddings_eps = manager.Value("d", 0.0)
self.text_embeddings_speed = manager.Value("d", 0.0)
@ -50,6 +52,12 @@ class DataProcessorMetrics:
self.classification_speeds[key] = manager.Value("d", 0.0)
self.classification_cps[key] = manager.Value("d", 0.0)
def add_classification_model(self, model_name: str) -> None:
"""Add metrics for a new classification model dynamically."""
if model_name not in self.classification_speeds:
self.classification_speeds[model_name] = self.manager.Value("d", 0.0)
self.classification_cps[model_name] = self.manager.Value("d", 0.0)
class DataProcessorModelRunner:
def __init__(self, requestor, device: str = "CPU", model_size: str = "large"):

View File

@ -304,6 +304,9 @@ class EmbeddingMaintainer(threading.Thread):
)
return
if self.metrics:
self.metrics.add_classification_model(model_name)
if model_config.state_config is not None:
processor = CustomStateClassificationProcessor(
self.config, model_config, self.requestor, self.metrics