mirror of
https://github.com/langgenius/dify.git
synced 2026-09-08 11:04:27 +08:00
Unify the data structure of the GET and PUT interfaces configured by evaluation.
This commit is contained in:
parent
744a7259bc
commit
bc426419f4
@ -1103,15 +1103,17 @@ class DatasetEvaluationDetailApi(Resource):
|
|||||||
return {
|
return {
|
||||||
"evaluation_model": None,
|
"evaluation_model": None,
|
||||||
"evaluation_model_provider": None,
|
"evaluation_model_provider": None,
|
||||||
"metrics_config": None,
|
"default_metrics": None,
|
||||||
"judgement_conditions": None,
|
"customized_metrics": None,
|
||||||
|
"judgment_config": None,
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"evaluation_model": config.evaluation_model,
|
"evaluation_model": config.evaluation_model,
|
||||||
"evaluation_model_provider": config.evaluation_model_provider,
|
"evaluation_model_provider": config.evaluation_model_provider,
|
||||||
"metrics_config": config.metrics_config_dict,
|
"default_metrics": config.default_metrics_list,
|
||||||
"judgement_conditions": config.judgement_conditions_dict,
|
"customized_metrics": config.customized_metrics_dict,
|
||||||
|
"judgment_config": config.judgment_config_dict,
|
||||||
}
|
}
|
||||||
|
|
||||||
@console_ns.doc("save_dataset_evaluation_config")
|
@console_ns.doc("save_dataset_evaluation_config")
|
||||||
@ -1152,8 +1154,9 @@ class DatasetEvaluationDetailApi(Resource):
|
|||||||
return {
|
return {
|
||||||
"evaluation_model": config.evaluation_model,
|
"evaluation_model": config.evaluation_model,
|
||||||
"evaluation_model_provider": config.evaluation_model_provider,
|
"evaluation_model_provider": config.evaluation_model_provider,
|
||||||
"metrics_config": config.metrics_config_dict,
|
"default_metrics": config.default_metrics_list,
|
||||||
"judgement_conditions": config.judgement_conditions_dict,
|
"customized_metrics": config.customized_metrics_dict,
|
||||||
|
"judgment_config": config.judgment_config_dict,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -96,32 +96,51 @@ evaluation_log_list_model = console_ns.model(
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
customized_matrix_fields = {
|
evaluation_default_metric_node_info_fields = {
|
||||||
|
"node_id": fields.String,
|
||||||
|
"type": fields.String,
|
||||||
|
"title": fields.String,
|
||||||
|
}
|
||||||
|
evaluation_default_metric_item_fields = {
|
||||||
|
"metric": fields.String,
|
||||||
|
"value_type": fields.String,
|
||||||
|
"node_info_list": fields.List(
|
||||||
|
fields.Nested(
|
||||||
|
console_ns.model("EvaluationDefaultMetricNodeInfo", evaluation_default_metric_node_info_fields),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
customized_metrics_fields = {
|
||||||
"evaluation_workflow_id": fields.String,
|
"evaluation_workflow_id": fields.String,
|
||||||
"input_fields": fields.Raw,
|
"input_fields": fields.Raw,
|
||||||
"output_fields": fields.Raw,
|
"output_fields": fields.Raw,
|
||||||
}
|
}
|
||||||
|
|
||||||
condition_fields = {
|
judgment_condition_fields = {
|
||||||
"name": fields.List(fields.String),
|
"variable_selector": fields.List(fields.String),
|
||||||
"comparison_operator": fields.String,
|
"comparison_operator": fields.String,
|
||||||
"value": fields.String,
|
"value": fields.String,
|
||||||
}
|
}
|
||||||
|
|
||||||
judgement_conditions_fields = {
|
judgment_config_fields = {
|
||||||
"logical_operator": fields.String,
|
"logical_operator": fields.String,
|
||||||
"conditions": fields.List(fields.Nested(console_ns.model("EvaluationCondition", condition_fields))),
|
"conditions": fields.List(fields.Nested(console_ns.model("JudgmentCondition", judgment_condition_fields))),
|
||||||
}
|
}
|
||||||
|
|
||||||
evaluation_detail_fields = {
|
evaluation_detail_fields = {
|
||||||
"evaluation_model": fields.String,
|
"evaluation_model": fields.String,
|
||||||
"evaluation_model_provider": fields.String,
|
"evaluation_model_provider": fields.String,
|
||||||
"customized_matrix": fields.Nested(
|
"default_metrics": fields.List(
|
||||||
console_ns.model("EvaluationCustomizedMatrix", customized_matrix_fields),
|
fields.Nested(console_ns.model("EvaluationDefaultMetricItem_Detail", evaluation_default_metric_item_fields)),
|
||||||
allow_null=True,
|
allow_null=True,
|
||||||
),
|
),
|
||||||
"judgement_conditions": fields.Nested(
|
"customized_metrics": fields.Nested(
|
||||||
console_ns.model("EvaluationJudgementConditions", judgement_conditions_fields),
|
console_ns.model("EvaluationCustomizedMetrics", customized_metrics_fields),
|
||||||
|
allow_null=True,
|
||||||
|
),
|
||||||
|
"judgment_config": fields.Nested(
|
||||||
|
console_ns.model("EvaluationJudgmentConfig", judgment_config_fields),
|
||||||
allow_null=True,
|
allow_null=True,
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
@ -155,20 +174,6 @@ available_evaluation_workflow_pagination_model = console_ns.model(
|
|||||||
available_evaluation_workflow_pagination_fields,
|
available_evaluation_workflow_pagination_fields,
|
||||||
)
|
)
|
||||||
|
|
||||||
evaluation_default_metric_node_info_fields = {
|
|
||||||
"node_id": fields.String,
|
|
||||||
"type": fields.String,
|
|
||||||
"title": fields.String,
|
|
||||||
}
|
|
||||||
evaluation_default_metric_item_fields = {
|
|
||||||
"metric": fields.String,
|
|
||||||
"value_type": fields.String,
|
|
||||||
"node_info_list": fields.List(
|
|
||||||
fields.Nested(
|
|
||||||
console_ns.model("EvaluationDefaultMetricNodeInfo", evaluation_default_metric_node_info_fields),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
|
||||||
evaluation_default_metrics_response_model = console_ns.model(
|
evaluation_default_metrics_response_model = console_ns.model(
|
||||||
"EvaluationDefaultMetricsResponse",
|
"EvaluationDefaultMetricsResponse",
|
||||||
{
|
{
|
||||||
@ -290,15 +295,17 @@ class EvaluationDetailApi(Resource):
|
|||||||
return {
|
return {
|
||||||
"evaluation_model": None,
|
"evaluation_model": None,
|
||||||
"evaluation_model_provider": None,
|
"evaluation_model_provider": None,
|
||||||
"metrics_config": None,
|
"default_metrics": None,
|
||||||
"judgement_conditions": None,
|
"customized_metrics": None,
|
||||||
|
"judgment_config": None,
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"evaluation_model": config.evaluation_model,
|
"evaluation_model": config.evaluation_model,
|
||||||
"evaluation_model_provider": config.evaluation_model_provider,
|
"evaluation_model_provider": config.evaluation_model_provider,
|
||||||
"metrics_config": config.metrics_config_dict,
|
"default_metrics": config.default_metrics_list,
|
||||||
"judgement_conditions": config.judgement_conditions_dict,
|
"customized_metrics": config.customized_metrics_dict,
|
||||||
|
"judgment_config": config.judgment_config_dict,
|
||||||
}
|
}
|
||||||
|
|
||||||
@console_ns.doc("save_evaluation_detail")
|
@console_ns.doc("save_evaluation_detail")
|
||||||
@ -334,8 +341,9 @@ class EvaluationDetailApi(Resource):
|
|||||||
return {
|
return {
|
||||||
"evaluation_model": config.evaluation_model,
|
"evaluation_model": config.evaluation_model,
|
||||||
"evaluation_model_provider": config.evaluation_model_provider,
|
"evaluation_model_provider": config.evaluation_model_provider,
|
||||||
"metrics_config": config.metrics_config_dict,
|
"default_metrics": config.default_metrics_list,
|
||||||
"judgement_conditions": config.judgement_conditions_dict,
|
"customized_metrics": config.customized_metrics_dict,
|
||||||
|
"judgment_config": config.judgment_config_dict,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -68,6 +68,26 @@ class EvaluationConfiguration(Base):
|
|||||||
def metrics_config_dict(self, value: dict[str, Any]) -> None:
|
def metrics_config_dict(self, value: dict[str, Any]) -> None:
|
||||||
self.metrics_config = json.dumps(value)
|
self.metrics_config = json.dumps(value)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def default_metrics_list(self) -> list[dict[str, Any]]:
|
||||||
|
"""Extract default_metrics from the stored metrics_config JSON."""
|
||||||
|
config = self.metrics_config_dict
|
||||||
|
return config.get("default_metrics", [])
|
||||||
|
|
||||||
|
@property
|
||||||
|
def customized_metrics_dict(self) -> dict[str, Any] | None:
|
||||||
|
"""Extract customized_metrics from the stored metrics_config JSON."""
|
||||||
|
config = self.metrics_config_dict
|
||||||
|
return config.get("customized_metrics")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def judgment_config_dict(self) -> dict[str, Any] | None:
|
||||||
|
"""Return judgment config (stored in the judgement_conditions column)."""
|
||||||
|
if self.judgement_conditions:
|
||||||
|
parsed = json.loads(self.judgement_conditions)
|
||||||
|
return parsed if parsed else None
|
||||||
|
return None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def judgement_conditions_dict(self) -> dict[str, Any]:
|
def judgement_conditions_dict(self) -> dict[str, Any]:
|
||||||
if self.judgement_conditions:
|
if self.judgement_conditions:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user