diff --git a/frontend/scripts/regression-data-process-wizard.mjs b/frontend/scripts/regression-data-process-wizard.mjs index 0df8ae9..defb491 100644 --- a/frontend/scripts/regression-data-process-wizard.mjs +++ b/frontend/scripts/regression-data-process-wizard.mjs @@ -514,8 +514,21 @@ assert.match( /\.model-config-group \.advanced-settings-grid\s*\{[\s\S]*?grid-template-columns:\s*1fr/, '大模型高级参数没有改为与第一步一致的纵向布局', ) -assert.match(stateSource, /const DEFAULT_STANDARD_GENERATION_PROMPT\s*=\s*['"][^'"]{40,}['"]/, '标准回答缺少独立默认提示语') -assert.match(stateSource, /const DEFAULT_REASONING_GENERATION_PROMPT\s*=\s*['"][^'"]{40,}['"]/, '思维链回答缺少独立默认提示语') +function defaultPromptValue(name) { + const match = stateSource.match(new RegExp(`export const ${name} = ` + '`([\\s\\S]*?)`')) + assert.ok(match, `${name} 缺少可编辑的内置默认提示语`) + return match[1] +} +const standardPrompt = defaultPromptValue('DEFAULT_STANDARD_GENERATION_PROMPT') +const reasoningPrompt = defaultPromptValue('DEFAULT_REASONING_GENERATION_PROMPT') +assert.ok(standardPrompt.includes('{{ content }}'), '标准回答默认提示语缺少 {{ content }} 占位符') +assert.ok(reasoningPrompt.includes('{{ content }}'), '思维链默认提示语缺少 {{ content }} 占位符') +assert.ok(standardPrompt.length <= 500, '标准回答默认提示语超过输入框长度限制') +assert.ok(reasoningPrompt.length <= 500, '思维链默认提示语超过输入框长度限制') +assert.ok(reasoningPrompt.includes('中间思考过程'), '思维链默认提示语没有明确要求生成中间思考过程') +assert.ok(reasoningPrompt.includes('不得跳过推理只给结论'), '思维链默认提示语没有禁止只生成最终答案') +assert.notEqual(standardPrompt, reasoningPrompt, '标准回答与思维链回答不得共用默认提示语') +assert.match(generationControlSource, /默认提示语已包含[\s\S]*?\{\{ content \}\}[\s\S]*?可移动该占位符/, '默认提示语没有说明 {{ content }} 的内置位置和修改方式') assert.equal((stateSource.match(/generationPrompt:\s*DEFAULT_STANDARD_GENERATION_PROMPT/g) || []).length, 2, '结构化与非结构化任务应默认使用标准回答提示语') assert.match(generationControlSource, /isBuiltInGenerationPrompt\(props\.options\.generationPrompt\)[\s\S]*?defaultGenerationPrompt\(outputType\)[\s\S]*?: props\.options\.generationPrompt/, '切换输出类型时没有在保留自定义提示语的前提下切换内置提示语') assert.equal((stateSource.match(/^\s{4}outputType:\s*'standard',/gm) || []).length, 2, '结构化与非结构化任务应默认生成标准回答') diff --git a/frontend/src/views/data-process/create/GenerationOptionsPanel.vue b/frontend/src/views/data-process/create/GenerationOptionsPanel.vue index b29cb67..1b1bcde 100644 --- a/frontend/src/views/data-process/create/GenerationOptionsPanel.vue +++ b/frontend/src/views/data-process/create/GenerationOptionsPanel.vue @@ -123,7 +123,8 @@ function modelMeta(model: ModelItem) { @update:model-value="updateField('generationPrompt', $event)" />
- 提示:可在文本中通过 引用当前正在处理的数据内容。 + 默认提示语已包含 ,运行时会替换为当前数据内容; + 可移动该占位符来调整内容在提示语中的位置。
diff --git a/frontend/src/views/data-process/create/dataProcessCreateState.ts b/frontend/src/views/data-process/create/dataProcessCreateState.ts index c40ac0c..832b261 100644 --- a/frontend/src/views/data-process/create/dataProcessCreateState.ts +++ b/frontend/src/views/data-process/create/dataProcessCreateState.ts @@ -11,9 +11,19 @@ import { normalizeQaPairsGenerationCount } from './types' const LEGACY_DEFAULT_GENERATION_PROMPT = '你是一名专业的数据生成助手。请根据输入内容生成准确、完整、可直接用于模型训练的问答数据。仅输出符合所选输出类型和目标格式的内容,答案应事实清晰、语言自然,不要添加无关说明。' -export const DEFAULT_STANDARD_GENERATION_PROMPT = '你是一名专业的数据生成助手。请严格依据输入内容生成准确、完整、可直接用于监督微调的问答数据。只生成问题和最终答案,不输出分析、推理过程或来源中不存在的信息;答案应事实清晰、语言自然。' +const PREVIOUS_DEFAULT_STANDARD_GENERATION_PROMPT = '你是一名专业的数据生成助手。请严格依据输入内容生成准确、完整、可直接用于监督微调的问答数据。只生成问题和最终答案,不输出分析、推理过程或来源中不存在的信息;答案应事实清晰、语言自然。' -export const DEFAULT_REASONING_GENERATION_PROMPT = '你是一名专业的推理数据生成助手。请严格依据输入内容生成问题、可核验的推理过程和最终答案。推理需要说明关键依据与必要步骤,不得引入来源中不存在的事实;最终答案应准确、完整且语言自然。' +const PREVIOUS_DEFAULT_REASONING_GENERATION_PROMPT = '你是一名专业的推理数据生成助手。请严格依据输入内容生成问题、可核验的推理过程和最终答案。推理需要说明关键依据与必要步骤,不得引入来源中不存在的事实;最终答案应准确、完整且语言自然。' + +export const DEFAULT_STANDARD_GENERATION_PROMPT = `你是一名专业的数据生成助手。请根据下方来源内容生成可用于监督微调的问答数据。 +来源内容: +{{ content }} +要求:严格依据来源生成问题和最终答案,不输出分析、中间思考过程或来源中不存在的信息;答案应准确、完整、语言自然。` + +export const DEFAULT_REASONING_GENERATION_PROMPT = `你是一名专业的推理数据生成助手。请根据下方来源内容生成可用于推理模型训练的问答数据。 +来源内容: +{{ content }} +要求:每条数据必须包含问题、可核验的中间思考过程和最终答案。中间思考过程需说明关键依据、必要步骤和中间计算,不得跳过推理只给结论,也不得引入来源中不存在的事实。` export function defaultGenerationPrompt(outputType: 'standard' | 'reasoning') { return outputType === 'reasoning' @@ -24,6 +34,8 @@ export function defaultGenerationPrompt(outputType: 'standard' | 'reasoning') { export function isBuiltInGenerationPrompt(value: string) { return [ LEGACY_DEFAULT_GENERATION_PROMPT, + PREVIOUS_DEFAULT_STANDARD_GENERATION_PROMPT, + PREVIOUS_DEFAULT_REASONING_GENERATION_PROMPT, DEFAULT_STANDARD_GENERATION_PROMPT, DEFAULT_REASONING_GENERATION_PROMPT, ].includes(value)