mirror of
https://github.com/dongdongunique/EvoSynth.git
synced 2026-08-11 21:50:22 +02:00
first commit
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
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
|
||||
Reference in New Issue
Block a user