ForcePilot/backend/test/unit/knowledge/eval/test_metrics.py
Wenjie Zhang 179b048f07 refactor(eval): 重构评估指标和基准生成
- 引入了一个新的指标计算模块,用于检索和答案评估。
-通过整合基准生成和评估指标来简化评估服务。
-为新指标和基准生成功能添加了单元测试。
- 更新了前端组件,以利用新的图标,并改进了评估基准的样式。
-将与评估相关的逻辑整合为专门的“知识/评估”结构,以更好地组织。
2026-05-06 18:04:31 +08:00

29 lines
878 B
Python

import os
os.environ.setdefault("OPENAI_API_KEY", "test-key")
from yuxi.knowledge.eval.metrics import EvaluationMetricsCalculator, RetrievalMetrics
def test_retrieval_metrics_use_metadata_chunk_id():
retrieved_chunks = [
{"metadata": {"chunk_id": "chunk_a"}},
{"metadata": {"chunk_id": "chunk_b"}},
]
metrics = EvaluationMetricsCalculator.calculate_retrieval_metrics(
retrieved_chunks, ["chunk_b", "chunk_c"], k_values=[1, 3]
)
assert metrics["recall@1"] == 0.0
assert metrics["recall@3"] == 0.5
assert metrics["f1@3"] == RetrievalMetrics.f1_score_at_k(["chunk_a", "chunk_b"], ["chunk_b", "chunk_c"], 3)
def test_overall_score_keeps_existing_average_strategy():
score = EvaluationMetricsCalculator.calculate_overall_score(
[{"recall@1": 1.0, "f1@1": 0.5}], [{"score": 0.25}]
)
assert score == 0.5