feat: 评测任务完成进度收尾与指标维度汇总展示
- platform_store: 评测任务完成时置进度 100% 并落地 completed_time - eval_runner: 新增指标维度汇总,供雷达图等维度展示 - 前端: 评测详情/列表展示优化、模型管理增强
This commit is contained in:
@@ -170,6 +170,30 @@ def _metric_record(score: float | None, sample_count: int, error: str = "", avai
|
||||
}
|
||||
|
||||
|
||||
def _metric_dimension_summary(metrics: dict[str, Any]) -> list[dict[str, Any]]:
|
||||
labels = {
|
||||
"bleu": "BLEU",
|
||||
"rouge": "ROUGE-L",
|
||||
"cosine": "Cosine 相似度",
|
||||
"exact_match": "精确匹配",
|
||||
"text_similarity": "文本相似度",
|
||||
}
|
||||
result: list[dict[str, Any]] = []
|
||||
for name, item in metrics.items():
|
||||
if not isinstance(item, dict) or item.get("score") is None:
|
||||
continue
|
||||
result.append({
|
||||
"name": labels.get(name, name),
|
||||
"score": float(item.get("score") or 0),
|
||||
"max_score": float(item.get("max_score") or 100),
|
||||
"pass_rate": float(item.get("score") or 0),
|
||||
"sample_count": int(item.get("sample_count") or 0),
|
||||
"available": item.get("available", True),
|
||||
"error": item.get("error", ""),
|
||||
})
|
||||
return result
|
||||
|
||||
|
||||
def _rouge_tokens(text: str) -> str:
|
||||
text = str(text or "").strip().lower()
|
||||
tokens: list[str] = []
|
||||
@@ -650,7 +674,10 @@ def run_eval(config: dict[str, Any]) -> dict[str, Any]:
|
||||
"score": overall_score,
|
||||
"max_score": 100,
|
||||
"pass_rate": round(passed_count / max(completed, 1) * 100, 1),
|
||||
}]
|
||||
"sample_count": completed,
|
||||
"available": bool(scored),
|
||||
"error": "部分样本未返回可解析评分" if len(scored) < completed else "",
|
||||
}] + _metric_dimension_summary(metrics_result)
|
||||
overall_evaluation = f"评测完成:{completed} 样本,{passed_count} 通过,平均 {avg_score}/100 分"
|
||||
else:
|
||||
passed_count = 0
|
||||
@@ -661,16 +688,7 @@ def run_eval(config: dict[str, Any]) -> dict[str, Any]:
|
||||
]
|
||||
overall_score = round(sum(enabled_scores) / len(enabled_scores), output_precision) if enabled_scores else 0
|
||||
overall_score_max = 100
|
||||
dimension_summary = [
|
||||
{
|
||||
"name": name,
|
||||
"score": float(item.get("score") or 0),
|
||||
"max_score": 100,
|
||||
"pass_rate": float(item.get("score") or 0),
|
||||
}
|
||||
for name, item in metrics_result.items()
|
||||
if isinstance(item, dict) and item.get("enabled", True) and item.get("score") is not None
|
||||
]
|
||||
dimension_summary = _metric_dimension_summary(metrics_result)
|
||||
overall_evaluation = f"评测完成:{completed} 样本(未配置 LLM 评委)"
|
||||
|
||||
result = {
|
||||
|
||||
Reference in New Issue
Block a user