feat: 实现结构化思维链注入 (Structured CoT Injection)
- paradigms.js: 为民主生活会添加专业级 System Prompt - 结构公式:定性判断 + 具体表现 + 后果分析 - 关键词库:学用脱节、好人主义、本领恐慌等 - 五维度法:思想、政治、作风、能力、纪律 - 大纲预填充:选择范式后自动生成五个带头框架 - promptBuilder.js: 新增 buildSystemPrompt() 支持范式专用 Prompt - deepseek.js: generateContent 支持传入 paradigm 参数 - appStore.js: 传递 activeParadigm 到 API 层
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { GHOSTWRITER_SYSTEM_PROMPT } from '../utils/promptBuilder.js'
|
||||
import { GHOSTWRITER_SYSTEM_PROMPT, buildSystemPrompt } from '../utils/promptBuilder.js'
|
||||
|
||||
class DeepSeekAPI {
|
||||
constructor(config) {
|
||||
@@ -89,11 +89,13 @@ class DeepSeekAPI {
|
||||
}
|
||||
|
||||
async generateContent(prompt, onContent, options = {}) {
|
||||
// 使用 Ghostwriter Protocol 系统提示词
|
||||
// 构建系统提示词(支持范式专用 Prompt)
|
||||
const systemPrompt = buildSystemPrompt(options.paradigm)
|
||||
|
||||
return this._streamRequest([
|
||||
{
|
||||
role: 'system',
|
||||
content: GHOSTWRITER_SYSTEM_PROMPT
|
||||
content: systemPrompt
|
||||
},
|
||||
{
|
||||
role: 'user',
|
||||
|
||||
@@ -23,39 +23,146 @@ export const PARADIGMS = {
|
||||
// 专家指令(映射图片中的5点要求)
|
||||
expertGuidelines: [
|
||||
{
|
||||
title: '结构典范,逻辑严密',
|
||||
description: '严格遵循"问题-原因-措施"三段式经典结构,各部分环环相扣,从表象到根源再到行动,形成完整、清晰、有力的论证闭环。',
|
||||
checkKey: 'structure'
|
||||
title: '递进式论述结构',
|
||||
description: '每个问题必须采用 [定性判断] + [具体表现] + [后果/例证分析] 的三段递进结构,不可省略任何一环。',
|
||||
checkKey: 'progressive_structure',
|
||||
validationRule: '检查是否包含"导致"、"造成"、"使得"等后果连接词'
|
||||
},
|
||||
{
|
||||
title: '画像精准,个性鲜明',
|
||||
description: '问题查摆真正做到了"个人对照",紧密结合分管领域和日常工作,避免了空泛化和"集体病"表述,精准勾勒出个人的思想动态与行为短板。',
|
||||
checkKey: 'personalization'
|
||||
description: '问题查摆真正做到了"个人对照",紧密结合分管领域和日常工作,避免了空泛化和"集体病"表述。',
|
||||
checkKey: 'personalization',
|
||||
validationRule: '检查是否包含具体的岗位、职责、事件描述'
|
||||
},
|
||||
{
|
||||
title: '剖析深刻,直击根本',
|
||||
description: '原因剖析没有停留在表面,而是从思想、政治、作风、能力、纪律五个维度深挖根源,触及世界观、人生观、价值观这个"总开关"。',
|
||||
checkKey: 'depth'
|
||||
title: '党内常用表述嵌入',
|
||||
description: '自然嵌入"学用脱节"、"上接天线、下接地气"、"好人主义"、"本领恐慌"等党内高频术语。',
|
||||
checkKey: 'party_terminology',
|
||||
validationRule: '检查关键词含码率,低于阈值则提示"辣味不足"'
|
||||
},
|
||||
{
|
||||
title: '措施务实,路径清晰',
|
||||
description: '整改措施方向明确、内容具体,部分条款设计了量化指标(如学习篇目、调研天数),并与前文问题严格对应,具备较强的可操作性、可考核性。',
|
||||
checkKey: 'actionable'
|
||||
title: '五维度因果溯源',
|
||||
description: '原因剖析必须覆盖思想、政治、作风、能力、纪律五个维度,形成与问题的因果闭环。',
|
||||
checkKey: 'five_dimensions',
|
||||
validationRule: '检查是否包含全部5个维度的剖析'
|
||||
},
|
||||
{
|
||||
title: '语言规范,分寸得体',
|
||||
description: '用语严谨、准确、恳切。在自我批评时,善用"有差距"、"仍需加强"、"有待提升"等谦抑性、建设性表述;在剖析整改时,则使用"持续用力"、"筑牢"、"压实"等坚定有力的词语。',
|
||||
checkKey: 'language'
|
||||
title: '语气分寸得体',
|
||||
description: '批评用语谦抑(有待/不够/有所),整改用语坚定(持续用力/筑牢/压实)。',
|
||||
checkKey: 'tone_control',
|
||||
validationRule: '检查程度副词和坚定动词的使用比例'
|
||||
}
|
||||
],
|
||||
|
||||
// System Prompt 约束(注入到 AI 生成指令中)
|
||||
// 专用 System Prompt(结构化思维链注入)
|
||||
specializedPrompt: `# Role
|
||||
你是一名资深的党建材料笔杆子,正在撰写一份高质量的"民主生活会个人对照检查材料"。
|
||||
|
||||
# Global Goal
|
||||
全方位、立体化地进行"政治画像"与"能力体检",实现共性要求与个人个性的统一。
|
||||
|
||||
# Section 1: 存在的主要问题 (The Problems)
|
||||
## 构思立意
|
||||
严格依据"五个带头"要求,每个"带头"领域提炼 2-3 个核心问题。
|
||||
## 写作技巧与规范
|
||||
1. **结构公式**:必须严格采用 [定性判断] + [具体表现] + [后果/例证分析] 的递进结构。
|
||||
- 错误示例:"我学习不够。"
|
||||
- 正确示例:"理论学习的深度不够(定性)。往往满足于读通报、看标题,缺乏系统钻研(表现)。导致在指导具体工作时,出现'本领恐慌',难以用新理论解决新问题(后果)。"
|
||||
2. **关键词库**:请自然地嵌入以下术语 —— "学用脱节"、"上接天线、下接地气"、"好人主义"、"本领恐慌"、"红脸出汗"、"刀刃向内"。
|
||||
3. **语气控制**:多用"有待"、"不够"、"有所"等程度副词,保持批评的建设性。
|
||||
|
||||
# Section 2: 产生问题的原因剖析 (The Roots)
|
||||
## 构思立意
|
||||
从"现象描述"跨越到"本质探究",必须与 Section 1 的问题形成因果对应。
|
||||
## 写作技巧与规范
|
||||
1. **维度锁定**:必须仅从以下 5 个维度溯源 —— [思想]、[政治]、[作风]、[能力]、[纪律]。
|
||||
2. **结构公式**:采用 [根源定位] + [具体阐释] 的归纳写法。
|
||||
- 示例:"党性锤炼不够严格(根源定位)。在日常繁忙的事务性工作中,逐渐放松了对世界观、人生观、价值观这个'总开关'的改造...(阐释)"
|
||||
3. **逻辑一致性**:这里的每一个原因,都必须能解释 Section 1 中提出的问题。
|
||||
|
||||
# Section 3: 整改措施 (The Solutions)
|
||||
## 写作技巧与规范
|
||||
1. 措施必须与问题一一对应
|
||||
2. 包含可量化指标(如:每月精读X篇、每季度调研X次)
|
||||
3. 使用坚定动词:"持续用力"、"筑牢"、"压实"、"锤炼"
|
||||
|
||||
# Workflow
|
||||
1. 先列出"五个带头"的 5 个小标题
|
||||
2. 逐一填充"存在问题",严格使用结构公式
|
||||
3. 另起章节写"原因剖析",使用 5 维度法
|
||||
4. 最后写整改措施,确保与问题对应`,
|
||||
|
||||
// 大纲预填充模板
|
||||
outlineTemplate: `## 一、存在的主要问题
|
||||
|
||||
### (一)在带头深刻领悟"两个确立"的决定性意义方面
|
||||
- 问题1:[请描述具体表现,AI将自动润色为"定性+表现+后果"结构]
|
||||
- 问题2:
|
||||
|
||||
### (二)在带头用习近平新时代中国特色社会主义思想凝心铸魂方面
|
||||
- 问题1:
|
||||
- 问题2:
|
||||
|
||||
### (三)在带头自觉对标对表、及时校准偏差方面
|
||||
- 问题1:
|
||||
- 问题2:
|
||||
|
||||
### (四)在带头扛起政治责任、强化政治担当方面
|
||||
- 问题1:
|
||||
- 问题2:
|
||||
|
||||
### (五)在带头落实全面从严治党政治责任方面
|
||||
- 问题1:
|
||||
- 问题2:
|
||||
|
||||
## 二、产生问题的原因剖析
|
||||
|
||||
1. **思想层面**:[AI将侧重分析世界观、人生观、价值观]
|
||||
2. **政治层面**:[AI将侧重分析政治站位、政治判断力]
|
||||
3. **作风层面**:[AI将侧重分析工作作风、群众观念]
|
||||
4. **能力层面**:[AI将侧重分析业务能力、学习能力]
|
||||
5. **纪律层面**:[AI将侧重分析规矩意识、廉洁自律]
|
||||
|
||||
## 三、下一步整改措施
|
||||
|
||||
1.
|
||||
2.
|
||||
3. `,
|
||||
|
||||
// 关键词库(用于质检)
|
||||
keywordLibrary: [
|
||||
'学用脱节', '上接天线', '下接地气', '好人主义', '本领恐慌',
|
||||
'红脸出汗', '刀刃向内', '总开关', '政治站位', '党性锤炼',
|
||||
'有待提升', '不够深入', '有所松懈', '持续用力', '筑牢', '压实'
|
||||
],
|
||||
|
||||
// 质检规则
|
||||
validationRules: {
|
||||
progressiveStructure: {
|
||||
name: '递进式结构检查',
|
||||
keywords: ['导致', '造成', '使得', '以至于', '从而'],
|
||||
threshold: 3,
|
||||
failMessage: '结构不完整:缺少后果分析环节'
|
||||
},
|
||||
partyTerminology: {
|
||||
name: '党内术语含码率',
|
||||
minCount: 5,
|
||||
failMessage: '"辣味"不足:建议增加党内常用表述'
|
||||
},
|
||||
fiveDimensions: {
|
||||
name: '五维度覆盖检查',
|
||||
dimensions: ['思想', '政治', '作风', '能力', '纪律'],
|
||||
failMessage: '原因剖析维度不完整'
|
||||
}
|
||||
},
|
||||
|
||||
// System Prompt 约束(简化版,用于非专用模式)
|
||||
systemConstraints: [
|
||||
'结构严格遵循"问题-原因-措施"三段式闭环,各部分必须环环相扣',
|
||||
'拒绝"脸谱化",问题查摆必须结合分管领域和具体工作实际',
|
||||
'剖析必须触及世界观、人生观、价值观这个"总开关"',
|
||||
'整改措施需包含可量化指标,体现可操作性和可考核性',
|
||||
'自我批评用语谦抑(有差距/待加强/仍需),整改用语坚定(持续用力/筑牢/压实)'
|
||||
'结构严格遵循"问题-原因-措施"三段式闭环',
|
||||
'问题查摆采用"定性判断+具体表现+后果分析"递进结构',
|
||||
'原因剖析必须覆盖思想、政治、作风、能力、纪律五个维度',
|
||||
'自然嵌入党内常用术语:学用脱节、好人主义、本领恐慌等',
|
||||
'批评用语谦抑(有待/不够),整改用语坚定(持续用力/筑牢)'
|
||||
],
|
||||
|
||||
// 推荐的 UI 标签
|
||||
|
||||
@@ -132,9 +132,13 @@ export const useAppStore = defineStore('app', () => {
|
||||
references.value
|
||||
)
|
||||
|
||||
console.log('Store: 开始 Ghostwriter Protocol 生成流程...')
|
||||
console.log('Store: 开始 Ghostwriter Protocol 生成流程...', {
|
||||
hasParadigm: !!activeParadigm.value,
|
||||
paradigmName: activeParadigm.value?.name
|
||||
})
|
||||
|
||||
// 流式接收并实时解析 XML 结构,同时实时显示内容
|
||||
// 传入范式配置以使用专用 System Prompt
|
||||
await api.generateContent(userMessage, (chunk) => {
|
||||
rawStreamBuffer.value += chunk
|
||||
const { section, buffer } = streamParser.process(chunk)
|
||||
@@ -165,7 +169,7 @@ export const useAppStore = defineStore('app', () => {
|
||||
if (!thinkingMatch && !draftMatch && buffer.length > 50) {
|
||||
generatedContent.value = buffer
|
||||
}
|
||||
})
|
||||
}, { paradigm: activeParadigm.value })
|
||||
|
||||
// 流式完成后,最终解析确保内容完整
|
||||
const { thinking, draft, hasStructuredOutput } = streamParser.getResult()
|
||||
@@ -344,8 +348,14 @@ ${draft}
|
||||
activeParadigm.value = paradigm
|
||||
expertGuidelines.value = paradigm.expertGuidelines || []
|
||||
|
||||
// 2. 清空写作任务(等用户填具体内容)
|
||||
inputTask.value = ''
|
||||
// 2. 预填充大纲模板(如果有)
|
||||
if (paradigm.outlineTemplate) {
|
||||
inputType.value = 'outline'
|
||||
inputTask.value = paradigm.outlineTemplate
|
||||
} else {
|
||||
inputType.value = 'text'
|
||||
inputTask.value = ''
|
||||
}
|
||||
|
||||
// 3. 自动挂载默认参考案例
|
||||
if (paradigm.defaultReference) {
|
||||
@@ -362,7 +372,7 @@ ${draft}
|
||||
selectedTags.value = [...paradigm.recommendedTags]
|
||||
}
|
||||
|
||||
// 5. 注入系统约束到自定义要求
|
||||
// 5. 注入系统约束到自定义要求(简化版,完整版在 specializedPrompt)
|
||||
if (paradigm.systemConstraints?.length > 0) {
|
||||
customConstraint.value = paradigm.systemConstraints.join(';')
|
||||
}
|
||||
|
||||
@@ -2,6 +2,29 @@
|
||||
// Ghostwriter Protocol - Chain of Thought Template
|
||||
// ============================================
|
||||
|
||||
// 构建系统提示词(支持范式专用 Prompt)
|
||||
export const buildSystemPrompt = (paradigm = null) => {
|
||||
// 如果有范式专用 Prompt,优先使用
|
||||
if (paradigm?.specializedPrompt) {
|
||||
return `${paradigm.specializedPrompt}
|
||||
|
||||
# Output Format
|
||||
请严格按照以下 XML 格式输出你的思考过程和最终结果:
|
||||
|
||||
<thinking>
|
||||
在此处输出你的构思立意分析和大纲规划。
|
||||
</thinking>
|
||||
|
||||
<draft>
|
||||
在此处输出最终的文章内容。
|
||||
注意:仅输出正文,不要包含任何"好的,这是文章"之类的废话。
|
||||
</draft>`
|
||||
}
|
||||
|
||||
// 默认使用 Ghostwriter Protocol
|
||||
return GHOSTWRITER_SYSTEM_PROMPT
|
||||
}
|
||||
|
||||
export const GHOSTWRITER_SYSTEM_PROMPT = `# Role
|
||||
你是一名世界级的"影子写手"和"文体分析专家"。你的核心能力是完美复刻给定的写作风格,并将其应用于新的主题创作。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user