diff --git a/modules/story-summary/generate/llm.js b/modules/story-summary/generate/llm.js index e0f14db..f2042c5 100644 --- a/modules/story-summary/generate/llm.js +++ b/modules/story-summary/generate/llm.js @@ -26,18 +26,6 @@ const PROVIDER_MAP = { const JSON_PREFILL = DEFAULT_SUMMARY_ASSISTANT_PREFILL_PROMPT; -const LLM_PROMPT_CONFIG = { - topSystem: DEFAULT_SUMMARY_SYSTEM_PROMPT, - assistantDoc: DEFAULT_SUMMARY_ASSISTANT_DOC_PROMPT, - assistantAskSummary: DEFAULT_SUMMARY_ASSISTANT_ASK_SUMMARY_PROMPT, - assistantAskContent: DEFAULT_SUMMARY_ASSISTANT_ASK_CONTENT_PROMPT, - metaProtocolStart: DEFAULT_SUMMARY_META_PROTOCOL_START_PROMPT, - userJsonFormat: DEFAULT_SUMMARY_USER_JSON_FORMAT_PROMPT, - assistantCheck: DEFAULT_SUMMARY_ASSISTANT_CHECK_PROMPT, - userConfirm: DEFAULT_SUMMARY_USER_CONFIRM_PROMPT, - assistantPrefill: DEFAULT_SUMMARY_ASSISTANT_PREFILL_PROMPT, -}; - // ═══════════════════════════════════════════════════════════════════════════ // 工具函数 // ═══════════════════════════════════════════════════════════════════════════ diff --git a/modules/story-summary/generate/prompt.js b/modules/story-summary/generate/prompt.js index 0db9e81..5e07823 100644 --- a/modules/story-summary/generate/prompt.js +++ b/modules/story-summary/generate/prompt.js @@ -806,11 +806,7 @@ function buildNonVectorPrompt(store) { if (!sections.length) return ""; - return ( - `${buildSystemPreamble()}\n` + - `<剧情记忆>\n\n${sections.join("\n\n")}\n\n\n` + - `${buildPostscript()}` - ); + return buildMemoryPromptText(sections.join("\n\n")); } /** diff --git a/modules/story-summary/story-summary-ui.js b/modules/story-summary/story-summary-ui.js index b67d7ee..8ed45b2 100644 --- a/modules/story-summary/story-summary-ui.js +++ b/modules/story-summary/story-summary-ui.js @@ -611,9 +611,9 @@ All checks passed. Beginning incremental extraction... updateVectorProviderUI(prefix, provider); } - function saveCurrentVectorApiProfile(prefix) { + function saveCurrentVectorApiProfile(prefix, providerOverride = null) { const apiCfg = config.vector[`${prefix}Api`] ||= {}; - const provider = $(`${prefix}-api-provider`)?.value || apiCfg.provider || 'siliconflow'; + const provider = providerOverride || $(`${prefix}-api-provider`)?.value || apiCfg.provider || 'siliconflow'; apiCfg.providers = normalizeProviderProfiles(prefix, apiCfg); apiCfg.providers[provider] = { url: $(`${prefix}-api-url`)?.value?.trim() || '', @@ -661,6 +661,12 @@ All checks passed. Beginning incremental extraction... $(`${prefix}-api-model-select`).value = cache.includes(profile.model) ? profile.model : ''; } + function saveVectorApiSection(prefix) { + saveCurrentVectorApiProfile(prefix); + saveConfig(); + setStatusText($(`${prefix}-api-connect-status`), '此组配置已保存', 'success'); + } + async function fetchVectorModels(prefix) { const provider = $(`${prefix}-api-provider`).value; const pv = VECTOR_PROVIDER_DEFAULTS[provider] || VECTOR_PROVIDER_DEFAULTS.custom; @@ -927,8 +933,9 @@ All checks passed. Beginning incremental extraction... }; $(`${prefix}-api-provider`).onchange = e => { - saveCurrentVectorApiProfile(prefix); const target = config.vector[`${prefix}Api`] ||= {}; + const previousProvider = target.provider || 'siliconflow'; + saveCurrentVectorApiProfile(prefix, previousProvider); target.providers = normalizeProviderProfiles(prefix, target); target.provider = e.target.value; target.providers[e.target.value] ||= createDefaultProviderProfile(e.target.value, VECTOR_API_DEFAULT_MODELS[prefix]); @@ -940,6 +947,7 @@ All checks passed. Beginning incremental extraction... }; $(`${prefix}-btn-connect`).onclick = () => fetchVectorModels(prefix); + $(`${prefix}-btn-save`).onclick = () => saveVectorApiSection(prefix); $(`${prefix}-btn-test`).onclick = () => { const btn = $(`${prefix}-btn-test`); if (btn) btn.disabled = true; diff --git a/modules/story-summary/story-summary.html b/modules/story-summary/story-summary.html index 0559e8c..bff18f6 100644 --- a/modules/story-summary/story-summary.html +++ b/modules/story-summary/story-summary.html @@ -475,8 +475,9 @@
- + +
@@ -527,8 +528,9 @@
- + +
@@ -578,9 +580,10 @@ -
- +
+ +
diff --git a/modules/story-summary/vector/storage/vector-io.js b/modules/story-summary/vector/storage/vector-io.js index 90327ee..22c8776 100644 --- a/modules/story-summary/vector/storage/vector-io.js +++ b/modules/story-summary/vector/storage/vector-io.js @@ -83,16 +83,6 @@ function uint8ToBase64(uint8) { return btoa(result); } -// base64 → Uint8Array -function base64ToUint8(base64) { - const binary = atob(base64); - const bytes = new Uint8Array(binary.length); - for (let i = 0; i < binary.length; i++) { - bytes[i] = binary.charCodeAt(i); - } - return bytes; -} - // 服务器备份文件名 function getBackupFilename(chatId) { // chatId 可能含中文/特殊字符,ST 只接受 [a-zA-Z0-9_-]