mirror of
https://github.com/dongdongunique/EvoSynth.git
synced 2026-05-31 20:31:35 +02:00
31 lines
950 B
Python
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 |