From 72384b6db0b7d4c422da5899176ea07ecc6557b2 Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Wed, 1 Oct 2025 23:27:12 +0800 Subject: [PATCH] Update summarizer.js --- core/summarizer.js | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/core/summarizer.js b/core/summarizer.js index 242fbc8..f4a2118 100644 --- a/core/summarizer.js +++ b/core/summarizer.js @@ -6,7 +6,7 @@ import { extractContentByTag, replaceContentByTag, extractFullTagBlock } from '. import { isGoogleEndpoint, convertToGoogleRequest, parseGoogleResponse, buildGoogleApiUrl, buildPlotOptimizationGoogleRequest, parsePlotOptimizationGoogleResponse } from './utils/googleAdapter.js'; import { applyExclusionRules } from './utils/rag-tag-extractor.js'; import { - getCombinedWorldbookContent, getPlotOptimizedWorldbookContent, + getCombinedWorldbookContent, getPlotOptimizedWorldbookContent, getOptimizationWorldbookContent, } from "./lore.js"; import { getBatchFillerFlowTemplate, convertTablesToCsvString, updateTableFromText, saveStateToMessage, getMemoryState } from './table-system/manager.js'; import { saveChat } from "/script.js"; @@ -33,6 +33,12 @@ export async function processOptimization(latestMessage, previousMessages) { console.time("优化任务总耗时"); try { + window.Amily2PreOptimizationSnapshot = { + original: null, + optimized: null, + raw: latestMessage.mes, + }; + const originalFullMessage = latestMessage.mes; let textToProcess = originalFullMessage; @@ -50,10 +56,16 @@ export async function processOptimization(latestMessage, previousMessages) { if (!extractedBlock || extractContentByTag(extractedBlock, targetTag)?.trim() === '') { console.log(`[Amily2-外交部] 目标标签 <${targetTag}> 未找到或为空,或内容已被完全排除,优化任务已跳过。`); + window.Amily2PreOptimizationSnapshot = null; + document.dispatchEvent(new CustomEvent('preOptimizationStateUpdated')); console.timeEnd("优化任务总耗时"); console.groupEnd(); return null; } + + window.Amily2PreOptimizationSnapshot.original = extractContentByTag(extractedBlock, targetTag); + document.dispatchEvent(new CustomEvent('preOptimizationStateUpdated')); + textToProcess = extractedBlock; const context = getContext(); @@ -64,13 +76,7 @@ export async function processOptimization(latestMessage, previousMessages) { const historyMessages = lastUserMessage ? previousMessages.slice(0, -1) : previousMessages; const history = historyMessages.map(m => (m.mes && m.mes.trim() ? `${m.is_user ? userName : characterName}: ${m.mes.trim()}` : null)).filter(Boolean).join("\n"); - let worldbookContent = ""; - if (settings.worldbookEnabled) { - const character = characters[context.characterId]; - if (character?.data?.extensions?.world) { - worldbookContent = await getCombinedWorldbookContent(character.data.extensions.world); - } - } + const worldbookContent = await getOptimizationWorldbookContent(); const presetPrompts = await getPresetPrompts('optimization'); const messages = [ { role: 'system', content: generateRandomSeed() } @@ -79,8 +85,6 @@ export async function processOptimization(latestMessage, previousMessages) { let currentInteractionContent = lastUserMessage ? `${userName}(用户)最新消息:${lastUserMessage.mes}\n${characterName}(AI)最新消息,[核心处理内容]:${textToProcess}` : `${characterName}(AI)最新消息,[核心处理内容]:${textToProcess}`; const fillingMode = settings.filling_mode || 'main-api'; - window.lastPreOptimizationText = currentInteractionContent; - document.dispatchEvent(new CustomEvent('preOptimizationTextUpdated')); const order = getMixedOrder('optimization') || []; let promptCounter = 0; @@ -129,8 +133,6 @@ export async function processOptimization(latestMessage, previousMessages) { } } - window.lastPreOptimizationText = currentInteractionContent; - document.dispatchEvent(new CustomEvent('preOptimizationTextUpdated')); console.groupCollapsed("[Amily2号-最终国书内容 (发往AI)]"); console.dir(messages); console.groupEnd(); @@ -150,9 +152,12 @@ export async function processOptimization(latestMessage, previousMessages) { if (purifiedTextFromAI?.trim()) { finalMessage = replaceContentByTag(originalFullMessage, targetTag, purifiedTextFromAI); + window.Amily2PreOptimizationSnapshot.optimized = purifiedTextFromAI; } else { console.warn(`[Amily2-外交部] AI的回复中未找到有效的目标标签 <${targetTag}>,将保留原始消息。`); + window.Amily2PreOptimizationSnapshot.optimized = window.Amily2PreOptimizationSnapshot.original; } + document.dispatchEvent(new CustomEvent('preOptimizationStateUpdated')); if (isOptimizationEnabled && fillingMode === 'optimized') { await updateTableFromText(rawContent); @@ -169,9 +174,11 @@ export async function processOptimization(latestMessage, previousMessages) { } const result = { + originalContent: originalFullMessage, optimizedContent: finalMessage, }; + console.timeEnd("优化任务总耗时"); console.groupEnd(); return result;