From 6b1403ca889d96b43829b3d76288a7b35c92680d Mon Sep 17 00:00:00 2001 From: bielie Date: Thu, 29 Jan 2026 17:45:20 +0800 Subject: [PATCH] Adjust summary trigger role settings --- modules/story-summary/data/config.js | 3 ++- modules/story-summary/story-summary-ui.js | 6 ++--- modules/story-summary/story-summary.html | 27 +++++++++++++++-------- modules/story-summary/story-summary.js | 14 +++++++++++- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/modules/story-summary/data/config.js b/modules/story-summary/data/config.js index 3687717..dbb1ebe 100644 --- a/modules/story-summary/data/config.js +++ b/modules/story-summary/data/config.js @@ -27,7 +27,8 @@ export function getSummaryPanelConfig() { trigger: { enabled: false, interval: 20, - timing: 'after_ai', + timing: 'before_user', + role: 'system', useStream: true, maxPerRun: 100, wrapperHead: '', diff --git a/modules/story-summary/story-summary-ui.js b/modules/story-summary/story-summary-ui.js index b68505e..82a6111 100644 --- a/modules/story-summary/story-summary-ui.js +++ b/modules/story-summary/story-summary-ui.js @@ -52,8 +52,6 @@ openai: { url: 'https://api.openai.com', needKey: true, canFetch: true, needManualModel: false }, google: { url: 'https://generativelanguage.googleapis.com', needKey: true, canFetch: false, needManualModel: true }, claude: { url: 'https://api.anthropic.com', needKey: true, canFetch: false, needManualModel: true }, - deepseek: { url: 'https://api.deepseek.com', needKey: true, canFetch: true, needManualModel: false }, - cohere: { url: 'https://api.cohere.ai', needKey: true, canFetch: false, needManualModel: true }, custom: { url: '', needKey: true, canFetch: true, needManualModel: false } }; @@ -114,7 +112,7 @@ const config = { api: { provider: 'st', url: '', key: '', model: '', modelCache: [] }, gen: { temperature: null, top_p: null, top_k: null, presence_penalty: null, frequency_penalty: null }, - trigger: { enabled: false, interval: 20, timing: 'after_ai', useStream: true, maxPerRun: 100, wrapperHead: '', wrapperTail: '', forceInsertAtEnd: false }, + trigger: { enabled: false, interval: 20, timing: 'before_user', role: 'system', useStream: true, maxPerRun: 100, wrapperHead: '', wrapperTail: '', forceInsertAtEnd: false }, vector: { enabled: false, engine: 'online', local: { modelId: 'bge-small-zh' }, online: { provider: 'siliconflow', url: '', key: '', model: '' } } }; @@ -526,6 +524,7 @@ $('trigger-enabled').checked = config.trigger.enabled; $('trigger-interval').value = config.trigger.interval; $('trigger-timing').value = config.trigger.timing; + $('trigger-role').value = config.trigger.role || 'system'; $('trigger-stream').checked = config.trigger.useStream !== false; $('trigger-max-per-run').value = config.trigger.maxPerRun || 100; $('trigger-wrapper-head').value = config.trigger.wrapperHead || ''; @@ -574,6 +573,7 @@ const timing = $('trigger-timing').value; config.trigger.timing = timing; + config.trigger.role = $('trigger-role').value || 'system'; config.trigger.enabled = timing === 'manual' ? false : $('trigger-enabled').checked; config.trigger.interval = parseInt($('trigger-interval').value) || 20; config.trigger.useStream = $('trigger-stream').checked; diff --git a/modules/story-summary/story-summary.html b/modules/story-summary/story-summary.html index b7aa190..bfa9987 100644 --- a/modules/story-summary/story-summary.html +++ b/modules/story-summary/story-summary.html @@ -173,8 +173,6 @@ - - @@ -243,6 +241,16 @@
总结设置
+
+
+ + +
+
@@ -252,7 +260,7 @@
@@ -444,12 +452,13 @@
-
- -
- - -
+
+ +
导出/导入均为 zip 格式,勿解压
+
+ + +
diff --git a/modules/story-summary/story-summary.js b/modules/story-summary/story-summary.js index d0a943b..71e0c90 100644 --- a/modules/story-summary/story-summary.js +++ b/modules/story-summary/story-summary.js @@ -117,6 +117,13 @@ const VECTOR_WARNING_COOLDOWN_MS = 120000; // 2分钟内不重复提醒 const EXT_PROMPT_KEY = "LittleWhiteBox_StorySummary"; +// role 映射 +const ROLE_MAP = { + system: extension_prompt_roles.SYSTEM, + user: extension_prompt_roles.USER, + assistant: extension_prompt_roles.ASSISTANT, +}; + // ═══════════════════════════════════════════════════════════════════════════ // 工具:执行斜杠命令 // ═══════════════════════════════════════════════════════════════════════════ @@ -1300,11 +1307,16 @@ async function handleGenerationStarted(type, _params, isDryRun) { if (!text.trim()) return; // 4) 写入 extension_prompts + // 获取用户配置的 role + const cfg = getSummaryPanelConfig(); + const roleKey = cfg.trigger?.role || 'system'; + const role = ROLE_MAP[roleKey] || extension_prompt_roles.SYSTEM; + extension_prompts[EXT_PROMPT_KEY] = { value: text, position: extension_prompt_types.IN_CHAT, depth, - role: extension_prompt_roles.SYSTEM, + role, }; }