diff --git a/src/api/deepseek.js b/src/api/deepseek.js
index 15ead04..92c75f4 100644
--- a/src/api/deepseek.js
+++ b/src/api/deepseek.js
@@ -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',
diff --git a/src/config/paradigms.js b/src/config/paradigms.js
index a2c4acd..6836a9a 100644
--- a/src/config/paradigms.js
+++ b/src/config/paradigms.js
@@ -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 标签
diff --git a/src/stores/app.js b/src/stores/app.js
index 2683779..1f4e1ee 100644
--- a/src/stores/app.js
+++ b/src/stores/app.js
@@ -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(';')
}
diff --git a/src/utils/promptBuilder.js b/src/utils/promptBuilder.js
index 020fc25..c1b0bec 100644
--- a/src/utils/promptBuilder.js
+++ b/src/utils/promptBuilder.js
@@ -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 格式输出你的思考过程和最终结果:
+
+
+在此处输出你的构思立意分析和大纲规划。
+
+
+
+在此处输出最终的文章内容。
+注意:仅输出正文,不要包含任何"好的,这是文章"之类的废话。
+`
+ }
+
+ // 默认使用 Ghostwriter Protocol
+ return GHOSTWRITER_SYSTEM_PROMPT
+}
+
export const GHOSTWRITER_SYSTEM_PROMPT = `# Role
你是一名世界级的"影子写手"和"文体分析专家"。你的核心能力是完美复刻给定的写作风格,并将其应用于新的主题创作。