|
3 weeks ago | |
---|---|---|
.vscode | 1 month ago | |
config | 3 weeks ago | |
custom_metrics | 3 weeks ago | |
modules | 3 weeks ago | |
scripts | 3 weeks ago | |
templates | 1 month ago | |
test | 1 month ago | |
README.md | 1 month ago |
本系统支持用户自定义评估指标,您可以通过编写Python脚本来实现自己的指标计算逻辑,并将其集成到评估系统中。
custom_metric_template.py
模板文件--customMetricsPath
参数指定自定义指标目录BaseMetric
基类calculate()
方法METRIC_CATEGORY
变量,指定指标类别可选的指标类别包括:
calculate()
方法应返回一个字典,包含以下字段:
```python from modules.lib.metric_registry import BaseMetric
METRIC_CATEGORY = "custom"
class MyCustomMetric(BaseMetric):
def __init__(self, data):
super().__init__(data)
def calculate(self):
# 实现您的计算逻辑
return {
"value": 42.0,
"score": 85,
"details": {"max": 100, "min": 0}
}
python evaluator.py --configPath config.yaml --dataPath data_dir --reportPath report_dir --logPath logs --customMetricsPath custom_metrics
新的架构设计主要包括以下几个部分:
指标注册系统:通过 MetricRegistry
类实现,负责管理所有可用的指标(内置和自定义)。
指标基类:所有指标都继承自 BaseMetric
基类,确保接口一致性。
动态指标选择:通过配置文件中的指标定义,系统只会运行被选中的指标,提高效率。
自定义指标加载:支持从指定目录加载用户自定义的指标脚本,扩展系统功能。
兼容性保证:保留了原有的 safety.py
、comfort.py
等模块,确保系统向后兼容。
这种设计使系统更加灵活,既能满足选择性运行指标的需求,又能支持用户自定义指标,同时保持了原有代码结构的稳定性。
├── scripts/ │ └── evaluator.py # 评估引擎主程序 ├── modules/ │ ├── lib/ │ │ ├── metric_registry.py # 指标注册系统 │ │ ├── data_process.py # 数据处理模块 │ │ └── log_manager.py # 日志管理模块 │ └── metric/ │ ├── safety.py # 安全性指标模块 │ ├── comfort.py # 舒适性指标模块 │ ├── traffic.py # 交通规则指标模块 │ ├── efficient.py # 效率指标模块 │ └── function.py # 功能指标模块 ├── templates/ │ ├── custom_metric_template.py # 自定义指标模板 │ └── README.md # 自定义指标开发指南 └── custom_metrics/ # 用户自定义指标目录
初始化阶段
评估阶段
报告阶段
输出到指定目录
新增内置指标
添加自定义指标
新增指标类别
在注册系统中添加类别支持
灵活性 :可以根据配置选择性运行指标,提高效率
可扩展性 :支持用户自定义指标,无需修改核心代码
兼容性 :保留原有模块结构,确保向后兼容
并行处理 :利用多线程提高评估效率
模块化 :清晰的职责分离,便于维护和扩展 这个架构设计满足了您的需求,既支持从配置文件中选择性运行指标,又允许用户通过自定义脚本扩展系统功能,同时保留了原有的模块化结构。