mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 13:35:51 +00:00
Update summarizer.js
This commit is contained in:
@@ -6,7 +6,7 @@ import { extractContentByTag, replaceContentByTag, extractFullTagBlock } from '.
|
|||||||
import { isGoogleEndpoint, convertToGoogleRequest, parseGoogleResponse, buildGoogleApiUrl, buildPlotOptimizationGoogleRequest, parsePlotOptimizationGoogleResponse } from './utils/googleAdapter.js';
|
import { isGoogleEndpoint, convertToGoogleRequest, parseGoogleResponse, buildGoogleApiUrl, buildPlotOptimizationGoogleRequest, parsePlotOptimizationGoogleResponse } from './utils/googleAdapter.js';
|
||||||
import { applyExclusionRules } from './utils/rag-tag-extractor.js';
|
import { applyExclusionRules } from './utils/rag-tag-extractor.js';
|
||||||
import {
|
import {
|
||||||
getCombinedWorldbookContent, getPlotOptimizedWorldbookContent,
|
getCombinedWorldbookContent, getPlotOptimizedWorldbookContent, getOptimizationWorldbookContent,
|
||||||
} from "./lore.js";
|
} from "./lore.js";
|
||||||
import { getBatchFillerFlowTemplate, convertTablesToCsvString, updateTableFromText, saveStateToMessage, getMemoryState } from './table-system/manager.js';
|
import { getBatchFillerFlowTemplate, convertTablesToCsvString, updateTableFromText, saveStateToMessage, getMemoryState } from './table-system/manager.js';
|
||||||
import { saveChat } from "/script.js";
|
import { saveChat } from "/script.js";
|
||||||
@@ -33,6 +33,12 @@ export async function processOptimization(latestMessage, previousMessages) {
|
|||||||
console.time("优化任务总耗时");
|
console.time("优化任务总耗时");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
window.Amily2PreOptimizationSnapshot = {
|
||||||
|
original: null,
|
||||||
|
optimized: null,
|
||||||
|
raw: latestMessage.mes,
|
||||||
|
};
|
||||||
|
|
||||||
const originalFullMessage = latestMessage.mes;
|
const originalFullMessage = latestMessage.mes;
|
||||||
let textToProcess = originalFullMessage;
|
let textToProcess = originalFullMessage;
|
||||||
|
|
||||||
@@ -50,10 +56,16 @@ export async function processOptimization(latestMessage, previousMessages) {
|
|||||||
|
|
||||||
if (!extractedBlock || extractContentByTag(extractedBlock, targetTag)?.trim() === '') {
|
if (!extractedBlock || extractContentByTag(extractedBlock, targetTag)?.trim() === '') {
|
||||||
console.log(`[Amily2-外交部] 目标标签 <${targetTag}> 未找到或为空,或内容已被完全排除,优化任务已跳过。`);
|
console.log(`[Amily2-外交部] 目标标签 <${targetTag}> 未找到或为空,或内容已被完全排除,优化任务已跳过。`);
|
||||||
|
window.Amily2PreOptimizationSnapshot = null;
|
||||||
|
document.dispatchEvent(new CustomEvent('preOptimizationStateUpdated'));
|
||||||
console.timeEnd("优化任务总耗时");
|
console.timeEnd("优化任务总耗时");
|
||||||
console.groupEnd();
|
console.groupEnd();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
window.Amily2PreOptimizationSnapshot.original = extractContentByTag(extractedBlock, targetTag);
|
||||||
|
document.dispatchEvent(new CustomEvent('preOptimizationStateUpdated'));
|
||||||
|
|
||||||
textToProcess = extractedBlock;
|
textToProcess = extractedBlock;
|
||||||
|
|
||||||
const context = getContext();
|
const context = getContext();
|
||||||
@@ -64,13 +76,7 @@ export async function processOptimization(latestMessage, previousMessages) {
|
|||||||
const historyMessages = lastUserMessage ? previousMessages.slice(0, -1) : 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");
|
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 = "";
|
const worldbookContent = await getOptimizationWorldbookContent();
|
||||||
if (settings.worldbookEnabled) {
|
|
||||||
const character = characters[context.characterId];
|
|
||||||
if (character?.data?.extensions?.world) {
|
|
||||||
worldbookContent = await getCombinedWorldbookContent(character.data.extensions.world);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const presetPrompts = await getPresetPrompts('optimization');
|
const presetPrompts = await getPresetPrompts('optimization');
|
||||||
const messages = [
|
const messages = [
|
||||||
{ role: 'system', content: generateRandomSeed() }
|
{ 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}`;
|
let currentInteractionContent = lastUserMessage ? `${userName}(用户)最新消息:${lastUserMessage.mes}\n${characterName}(AI)最新消息,[核心处理内容]:${textToProcess}` : `${characterName}(AI)最新消息,[核心处理内容]:${textToProcess}`;
|
||||||
const fillingMode = settings.filling_mode || 'main-api';
|
const fillingMode = settings.filling_mode || 'main-api';
|
||||||
|
|
||||||
window.lastPreOptimizationText = currentInteractionContent;
|
|
||||||
document.dispatchEvent(new CustomEvent('preOptimizationTextUpdated'));
|
|
||||||
|
|
||||||
const order = getMixedOrder('optimization') || [];
|
const order = getMixedOrder('optimization') || [];
|
||||||
let promptCounter = 0;
|
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.groupCollapsed("[Amily2号-最终国书内容 (发往AI)]");
|
||||||
console.dir(messages);
|
console.dir(messages);
|
||||||
console.groupEnd();
|
console.groupEnd();
|
||||||
@@ -150,9 +152,12 @@ export async function processOptimization(latestMessage, previousMessages) {
|
|||||||
|
|
||||||
if (purifiedTextFromAI?.trim()) {
|
if (purifiedTextFromAI?.trim()) {
|
||||||
finalMessage = replaceContentByTag(originalFullMessage, targetTag, purifiedTextFromAI);
|
finalMessage = replaceContentByTag(originalFullMessage, targetTag, purifiedTextFromAI);
|
||||||
|
window.Amily2PreOptimizationSnapshot.optimized = purifiedTextFromAI;
|
||||||
} else {
|
} else {
|
||||||
console.warn(`[Amily2-外交部] AI的回复中未找到有效的目标标签 <${targetTag}>,将保留原始消息。`);
|
console.warn(`[Amily2-外交部] AI的回复中未找到有效的目标标签 <${targetTag}>,将保留原始消息。`);
|
||||||
|
window.Amily2PreOptimizationSnapshot.optimized = window.Amily2PreOptimizationSnapshot.original;
|
||||||
}
|
}
|
||||||
|
document.dispatchEvent(new CustomEvent('preOptimizationStateUpdated'));
|
||||||
|
|
||||||
if (isOptimizationEnabled && fillingMode === 'optimized') {
|
if (isOptimizationEnabled && fillingMode === 'optimized') {
|
||||||
await updateTableFromText(rawContent);
|
await updateTableFromText(rawContent);
|
||||||
@@ -169,9 +174,11 @@ export async function processOptimization(latestMessage, previousMessages) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const result = {
|
const result = {
|
||||||
|
originalContent: originalFullMessage,
|
||||||
optimizedContent: finalMessage,
|
optimizedContent: finalMessage,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
console.timeEnd("优化任务总耗时");
|
console.timeEnd("优化任务总耗时");
|
||||||
console.groupEnd();
|
console.groupEnd();
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
Reference in New Issue
Block a user