feat: 评测创建支持基础指标配置与启动参数类型化
新增 StartEvalPayload 与 BasicEvalMetricsConfig 类型约束启动评测接口,创建向导补充 BLEU、ROUGE、余弦相似度等基础指标配置,维度表单与规则步骤同步调整,回归脚本扩充断言。
This commit is contained in:
@@ -11,6 +11,8 @@ const [
|
||||
createSource,
|
||||
taskStepSource,
|
||||
ruleStepSource,
|
||||
basicMetricStepSource,
|
||||
startStepSource,
|
||||
dimensionFieldsSource,
|
||||
listSource,
|
||||
routerSource,
|
||||
@@ -19,6 +21,8 @@ const [
|
||||
readFile(path.join(evalViewDir, 'EvalCreateView.vue'), 'utf8'),
|
||||
readFile(path.join(evalViewDir, 'create/EvalTaskSetupStep.vue'), 'utf8'),
|
||||
readFile(path.join(evalViewDir, 'create/EvalRuleSetupStep.vue'), 'utf8'),
|
||||
readFile(path.join(evalViewDir, 'create/BasicMetricSetupStep.vue'), 'utf8'),
|
||||
readFile(path.join(evalViewDir, 'create/StartEvalStep.vue'), 'utf8'),
|
||||
readFile(path.join(evalViewDir, 'create/DimensionFormFields.vue'), 'utf8'),
|
||||
readFile(path.join(evalViewDir, 'EvalView.vue'), 'utf8'),
|
||||
readFile(path.join(sourceRoot, 'router/index.ts'), 'utf8'),
|
||||
@@ -74,21 +78,43 @@ assert.match(
|
||||
|
||||
assert.match(createSource, /EvalTaskSetupStep/, '向导缺少任务配置子组件')
|
||||
assert.match(createSource, /EvalRuleSetupStep/, '向导缺少评测规则子组件')
|
||||
assert.match(createSource, /BasicMetricSetupStep/, '向导缺少基础评测指标子组件')
|
||||
assert.match(createSource, /StartEvalStep/, '向导缺少开始评测确认子组件')
|
||||
assert.match(
|
||||
createSource,
|
||||
/任务配置[\s\S]*?评测规则/,
|
||||
'评测创建向导必须按“任务配置、评测规则”定义两个步骤',
|
||||
/任务配置[\s\S]*?大模型评测指标[\s\S]*?基础评测指标[\s\S]*?开始评测/,
|
||||
'评测创建向导必须按“任务配置、大模型评测指标、基础评测指标、开始评测”定义四个步骤',
|
||||
)
|
||||
assert.match(
|
||||
ruleStepSource,
|
||||
/:show-description=["']false["']/,
|
||||
'新建评测任务第二步不应显示重复的规则描述输入框',
|
||||
'大模型评测指标步骤不应显示重复的规则描述输入框',
|
||||
)
|
||||
assert.match(
|
||||
ruleStepSource,
|
||||
/:show-status-settings=["']false["']/,
|
||||
'大模型评测指标步骤不应显示维度管理状态字段',
|
||||
)
|
||||
assert.match(
|
||||
ruleStepSource,
|
||||
/LLM_METRIC_TYPES[^=]*=\s*\[['"]classification['"],\s*['"]metric['"]\][\s\S]*?:allowed-types=["']LLM_METRIC_TYPES["']/,
|
||||
'大模型评测指标步骤只应提供依赖大模型的分类与评分指标',
|
||||
)
|
||||
assert.match(
|
||||
dimensionFieldsSource,
|
||||
/v-if=["']showDescription["'][^>]*label=["']描述["']/,
|
||||
'共享维度字段必须支持按场景隐藏描述输入框',
|
||||
)
|
||||
assert.match(
|
||||
dimensionFieldsSource,
|
||||
/score_min[\s\S]*?score_max[\s\S]*?pass_threshold[\s\S]*?Math\.min[\s\S]*?Math\.max/,
|
||||
'指标型评分区间变化时必须把通过阈值约束在合法范围内',
|
||||
)
|
||||
assert.match(
|
||||
dimensionFieldsSource,
|
||||
/prop=["']score_min["'][\s\S]*?:max=["'][^"']*score_max[^"']*["'][\s\S]*?prop=["']score_max["'][\s\S]*?:min=["'][^"']*score_min[^"']*["']/,
|
||||
'评分最小值和最大值输入必须具备交叉边界约束',
|
||||
)
|
||||
assert.match(createSource, /currentStep\s*=\s*ref\(0\)/, '评测创建向导缺少当前步骤状态')
|
||||
assert.match(createSource, /class=["']custom-wizard-steps["']/, '评测向导未复用数据处理的自定义步骤条结构')
|
||||
assert.match(createSource, /class=["']step-connector["']/, '评测向导步骤条缺少连接线')
|
||||
@@ -102,8 +128,18 @@ assert.match(
|
||||
)
|
||||
assert.match(
|
||||
createSource,
|
||||
/<EvalRuleSetupStep[\s\S]*?v-else/,
|
||||
'评测规则子组件没有绑定第二步',
|
||||
/<EvalRuleSetupStep[\s\S]*?currentStep[^"']*1/,
|
||||
'大模型评测指标子组件没有绑定第二步',
|
||||
)
|
||||
assert.match(
|
||||
createSource,
|
||||
/<BasicMetricSetupStep[\s\S]*?currentStep[^"']*2/,
|
||||
'基础评测指标子组件没有绑定第三步',
|
||||
)
|
||||
assert.match(
|
||||
createSource,
|
||||
/<StartEvalStep[\s\S]*?v-else/,
|
||||
'开始评测确认子组件没有绑定第四步',
|
||||
)
|
||||
|
||||
assert.match(taskStepSource, /prop=["']dataset_id["']/, '数据集字段缺少表单校验标识')
|
||||
@@ -113,16 +149,15 @@ assert.match(
|
||||
'选择评测数据集时必须校验 dataset_id',
|
||||
)
|
||||
|
||||
assert.match(createSource, /['"]baseline['"]/, '向导缺少基线评测分支')
|
||||
assert.match(
|
||||
`${createSource}\n${ruleStepSource}`,
|
||||
/已有维度|existing/,
|
||||
'评测规则步骤缺少使用已有维度的分支',
|
||||
basicMetricStepSource,
|
||||
/BLEU[\s\S]*?ROUGE[\s\S]*?(?:Cosine|余弦)/,
|
||||
'基础评测指标步骤必须提供 BLEU、ROUGE 与余弦相似度配置',
|
||||
)
|
||||
assert.match(
|
||||
`${createSource}\n${ruleStepSource}`,
|
||||
/新建(?:评测)?(?:维度|规则)|create/,
|
||||
'评测规则步骤缺少新建维度的分支',
|
||||
basicMetricStepSource,
|
||||
/bleu_enabled[\s\S]*?rouge_enabled[\s\S]*?cosine_enabled/,
|
||||
'基础评测指标必须支持分别决定是否启用',
|
||||
)
|
||||
|
||||
assert.match(
|
||||
@@ -137,17 +172,18 @@ assert.match(
|
||||
)
|
||||
assert.match(
|
||||
createSource,
|
||||
/eval_type[\s\S]*?baseline[\s\S]*?(?:dimension_id|createDimension)/,
|
||||
'基线评测必须有明确的不创建自定义维度分支',
|
||||
/basic_metrics[\s\S]*?bleu[\s\S]*?rouge[\s\S]*?cosine/,
|
||||
'启动评测时必须提交基础评测指标配置',
|
||||
)
|
||||
assert.match(
|
||||
createSource,
|
||||
/ruleMode[\s\S]*?['"]existing['"]/,
|
||||
'已有维度模式必须有独立的提交分支',
|
||||
startStepSource,
|
||||
/任务信息[\s\S]*?大模型评测指标[\s\S]*?基础评测指标/,
|
||||
'开始评测步骤必须展示前三步配置摘要',
|
||||
)
|
||||
|
||||
assert.match(createSource, /:loading=["']submitting["']/, '最终提交按钮缺少 loading 状态')
|
||||
assert.match(createSource, /:disabled=["'][^"']*submitting/, '提交期间必须禁用重复操作')
|
||||
assert.match(createSource, />\s*开始评测\s*</, '最终提交按钮必须命名为“开始评测”')
|
||||
assert.match(createSource, /class=["'][^"']*wizard-footer/, '评测向导缺少统一底部操作栏')
|
||||
assert.match(
|
||||
createSource,
|
||||
|
||||
Reference in New Issue
Block a user