Files
OmniSafeBench-MM/evaluators/base_evaluator.py
T
2025-12-09 22:30:51 +08:00

35 lines
831 B
Python

"""
Evaluator base class - new architecture implementation
"""
import logging
from abc import ABC, abstractmethod
from typing import Dict, Any
from core.data_formats import ModelResponse, EvaluationResult
class BaseEvaluator(ABC):
"""Evaluator abstract base class"""
def __init__(self, config: Dict[str, Any] = None):
self.config = config or {}
self.logger = logging.getLogger(self.__class__.__name__)
self.name = self.__class__.__name__.lower()
@abstractmethod
def evaluate_response(
self, model_response: ModelResponse, **kwargs
) -> EvaluationResult:
"""
Evaluate model response
Args:
model_response: Model response
**kwargs: Additional parameters
Returns:
Evaluation result
"""
pass