- 引入了一个新的指标计算模块,用于检索和答案评估。 -通过整合基准生成和评估指标来简化评估服务。 -为新指标和基准生成功能添加了单元测试。 - 更新了前端组件,以利用新的图标,并改进了评估基准的样式。 -将与评估相关的逻辑整合为专门的“知识/评估”结构,以更好地组织。
29 lines
878 B
Python
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
|