Files
EvoSynth/jailbreak_toolbox/evaluators/base_evaluator.py
T
dongdongunique f3af94df0b first commit
2025-12-10 00:54:02 +08:00

31 lines
950 B
Python

from abc import ABC, abstractmethod
from dataclasses import dataclass
from ..attacks.base_attack import AttackResult
from typing import List
@dataclass
class EvaluationMetrics:
"""
一个标准化的数据结构,用于封装评估结果。
可以根据需要轻松添加更多指标(如成本、隐蔽性等)。
"""
attack_success_rate: float
insucess_rate: float=None
average_attack_score: float = None
average_cost: float = None
class BaseEvaluator(ABC):
"""
所有评估器的抽象基类。
定义了评估流程的统一接口。
"""
def __init__(self, **kwargs):
"""允许在配置文件中传入任意评估器特定的参数。"""
pass
@abstractmethod
def evaluate(self, results: List[AttackResult]) -> EvaluationMetrics:
"""
接收一个实验中所有的攻击结果列表,并计算最终的聚合评估指标。
"""
pass