diff --git a/api/core/evaluation/entities/evaluation_entity.py b/api/core/evaluation/entities/evaluation_entity.py index 755d0ab9f8..04386d05be 100644 --- a/api/core/evaluation/entities/evaluation_entity.py +++ b/api/core/evaluation/entities/evaluation_entity.py @@ -123,6 +123,12 @@ WORKFLOW_METRIC_NAMES: list[EvaluationMetricName] = [ EvaluationMetricName.ANSWER_CORRECTNESS, ] +METRIC_NODE_TYPE_MAPPING: dict[str, str] = { + **{m.value: "llm" for m in LLM_METRIC_NAMES}, + **{m.value: "knowledge-retrieval" for m in RETRIEVAL_METRIC_NAMES}, + **{m.value: "agent" for m in AGENT_METRIC_NAMES}, +} + class EvaluationMetric(BaseModel): name: str diff --git a/api/services/evaluation_service.py b/api/services/evaluation_service.py index f665469b18..87a4a72044 100644 --- a/api/services/evaluation_service.py +++ b/api/services/evaluation_service.py @@ -11,12 +11,12 @@ from sqlalchemy.orm import Session from configs import dify_config from core.evaluation.entities.evaluation_entity import ( - EVALUATION_METRICS, METRIC_NODE_TYPE_MAPPING, DefaultMetric, EvaluationCategory, EvaluationConfigData, EvaluationDatasetInput, + EvaluationMetricName, EvaluationRunData, EvaluationRunRequest, NodeInfo, @@ -480,7 +480,7 @@ class EvaluationService: @staticmethod def get_available_metrics() -> list[str]: """Return the centrally-defined list of evaluation metrics.""" - return list(EVALUATION_METRICS) + return [m.value for m in EvaluationMetricName] @classmethod def get_nodes_for_metrics(