fix(data-process): 完善默认生成提示语
This commit is contained in:
@@ -514,8 +514,21 @@ assert.match(
|
|||||||
/\.model-config-group \.advanced-settings-grid\s*\{[\s\S]*?grid-template-columns:\s*1fr/,
|
/\.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,}['"]/, '标准回答缺少独立默认提示语')
|
function defaultPromptValue(name) {
|
||||||
assert.match(stateSource, /const DEFAULT_REASONING_GENERATION_PROMPT\s*=\s*['"][^'"]{40,}['"]/, '思维链回答缺少独立默认提示语')
|
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.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.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, '结构化与非结构化任务应默认生成标准回答')
|
assert.equal((stateSource.match(/^\s{4}outputType:\s*'standard',/gm) || []).length, 2, '结构化与非结构化任务应默认生成标准回答')
|
||||||
|
|||||||
@@ -123,7 +123,8 @@ function modelMeta(model: ModelItem) {
|
|||||||
@update:model-value="updateField('generationPrompt', $event)"
|
@update:model-value="updateField('generationPrompt', $event)"
|
||||||
/>
|
/>
|
||||||
<div class="prompt-variables-hint">
|
<div class="prompt-variables-hint">
|
||||||
提示:可在文本中通过 <code v-text="'{{ content }}'" /> 引用当前正在处理的数据内容。
|
默认提示语已包含 <code v-text="'{{ content }}'" />,运行时会替换为当前数据内容;
|
||||||
|
可移动该占位符来调整内容在提示语中的位置。
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -11,9 +11,19 @@ import { normalizeQaPairsGenerationCount } from './types'
|
|||||||
|
|
||||||
const LEGACY_DEFAULT_GENERATION_PROMPT = '你是一名专业的数据生成助手。请根据输入内容生成准确、完整、可直接用于模型训练的问答数据。仅输出符合所选输出类型和目标格式的内容,答案应事实清晰、语言自然,不要添加无关说明。'
|
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') {
|
export function defaultGenerationPrompt(outputType: 'standard' | 'reasoning') {
|
||||||
return outputType === 'reasoning'
|
return outputType === 'reasoning'
|
||||||
@@ -24,6 +34,8 @@ export function defaultGenerationPrompt(outputType: 'standard' | 'reasoning') {
|
|||||||
export function isBuiltInGenerationPrompt(value: string) {
|
export function isBuiltInGenerationPrompt(value: string) {
|
||||||
return [
|
return [
|
||||||
LEGACY_DEFAULT_GENERATION_PROMPT,
|
LEGACY_DEFAULT_GENERATION_PROMPT,
|
||||||
|
PREVIOUS_DEFAULT_STANDARD_GENERATION_PROMPT,
|
||||||
|
PREVIOUS_DEFAULT_REASONING_GENERATION_PROMPT,
|
||||||
DEFAULT_STANDARD_GENERATION_PROMPT,
|
DEFAULT_STANDARD_GENERATION_PROMPT,
|
||||||
DEFAULT_REASONING_GENERATION_PROMPT,
|
DEFAULT_REASONING_GENERATION_PROMPT,
|
||||||
].includes(value)
|
].includes(value)
|
||||||
|
|||||||
Reference in New Issue
Block a user