FineTuneTask 类型新增 auto_merge 字段,SFT 训练表单新增自动合并权重开关并在创建/启动时随参提交,回归脚本补充 auto_merge 与模型对话框断言。
35 lines
2.5 KiB
JavaScript
35 lines
2.5 KiB
JavaScript
import { readFileSync } from 'node:fs'
|
|
import { resolve } from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
const root = resolve(fileURLToPath(new URL('..', import.meta.url)))
|
|
const source = readFileSync(resolve(root, 'src/views/fine-tune/FineTuneCreateView.vue'), 'utf8')
|
|
const modelDialogSource = readFileSync(resolve(root, 'src/components/ModelSelectDialog.vue'), 'utf8')
|
|
|
|
function assert(condition, message) {
|
|
if (!condition) {
|
|
throw new Error(message)
|
|
}
|
|
}
|
|
|
|
assert(source.includes(':rows="4"'), '任务描述 textarea should be taller than the original 2 rows')
|
|
assert(source.includes('gpu-index'), 'GPU cards should use a restrained index label')
|
|
assert(source.includes('GPU-{{ idx }}'), 'GPU cards should show the GPU number in a compact format')
|
|
assert(source.includes('gpu-usage-bar'), 'GPU cards should visualize usage with an enterprise-style progress bar')
|
|
assert(source.includes('is-busy'), 'GPU cards should have a distinct busy state for usage over 80%')
|
|
assert(source.includes('gpu.gpu_percent > 80'), 'GPU busy state should be driven by usage over 80%')
|
|
assert(source.includes('modelDialogVisible'), 'Model selection should open a dialog instead of a plain select')
|
|
assert(!modelDialogSource.includes('width="78vw"'), 'Model dialog should not use the previous oversized 78vw width')
|
|
assert(modelDialogSource.includes('width="860px"'), 'Model dialog should use a compact enterprise modal width')
|
|
assert(modelDialogSource.includes('model-series-list'), 'Model dialog should include a model series list column')
|
|
assert(modelDialogSource.includes('model-version-list'), 'Model dialog should include a snapshot/version list column')
|
|
assert(modelDialogSource.includes('handleConfirm'), 'Model dialog should confirm the selected model before updating the form')
|
|
assert(source.includes("auto_merge: false"), 'Auto merge should default to disabled')
|
|
assert(source.includes('v-if="form.train_type === \'SFT\'"'), 'Merge model settings should only be visible for SFT')
|
|
assert(source.includes('content-position="left">合并模型'), 'SFT form should include a merge model section below data configuration')
|
|
assert(source.includes('v-model="form.auto_merge"'), 'Merge model section should provide an auto merge selector')
|
|
assert(source.includes('label="自动合并权重并保存"'), 'Auto merge selector should use a clear visible label')
|
|
assert((source.match(/auto_merge: form\.train_type === 'SFT' && form\.auto_merge/g) || []).length === 2, 'Auto merge should be sent for SFT when creating and starting the task')
|
|
|
|
console.log('fine-tune create UI regression checks passed')
|