mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Merge pull request #3763 from qvink/empty_message_injection
Fix for generation interceptors messing with WI timed effects
This commit is contained in:
@ -174,7 +174,7 @@ import {
|
|||||||
saveBase64AsFile,
|
saveBase64AsFile,
|
||||||
uuidv4,
|
uuidv4,
|
||||||
} from './scripts/utils.js';
|
} from './scripts/utils.js';
|
||||||
import { debounce_timeout } from './scripts/constants.js';
|
import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js';
|
||||||
|
|
||||||
import { doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js';
|
import { doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js';
|
||||||
import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js';
|
import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js';
|
||||||
@ -5301,6 +5301,12 @@ function formatMessageHistoryItem(chatItem, isInstruct, forceOutputSequence) {
|
|||||||
const itemName = chatItem.is_user ? chatItem['name'] : characterName;
|
const itemName = chatItem.is_user ? chatItem['name'] : characterName;
|
||||||
const shouldPrependName = !isNarratorType;
|
const shouldPrependName = !isNarratorType;
|
||||||
|
|
||||||
|
// If this symbol flag is set, completely ignore the message.
|
||||||
|
// This can be used to hide messages without affecting the number of messages in the chat.
|
||||||
|
if (chatItem.extra?.[IGNORE_SYMBOL]) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
// Don't include a name if it's empty
|
// Don't include a name if it's empty
|
||||||
let textResult = chatItem?.name && shouldPrependName ? `${itemName}: ${chatItem.mes}\n` : `${chatItem.mes}\n`;
|
let textResult = chatItem?.name && shouldPrependName ? `${itemName}: ${chatItem.mes}\n` : `${chatItem.mes}\n`;
|
||||||
|
|
||||||
|
@ -14,3 +14,11 @@ export const debounce_timeout = {
|
|||||||
/** [5 sec] For delayed tasks, like auto-saving or completing batch operations that need a significant pause. */
|
/** [5 sec] For delayed tasks, like auto-saving or completing batch operations that need a significant pause. */
|
||||||
extended: 5000,
|
extended: 5000,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used as an ephemeral key in message extra metadata.
|
||||||
|
* When set, the message will be excluded from generation
|
||||||
|
* prompts without affecting the number of chat messages,
|
||||||
|
* which is needed to preserve world info timed effects.
|
||||||
|
*/
|
||||||
|
export const IGNORE_SYMBOL = Symbol.for('ignore');
|
||||||
|
@ -75,6 +75,7 @@ import { Popup, POPUP_RESULT } from './popup.js';
|
|||||||
import { t } from './i18n.js';
|
import { t } from './i18n.js';
|
||||||
import { ToolManager } from './tool-calling.js';
|
import { ToolManager } from './tool-calling.js';
|
||||||
import { accountStorage } from './util/AccountStorage.js';
|
import { accountStorage } from './util/AccountStorage.js';
|
||||||
|
import { IGNORE_SYMBOL } from './constants.js';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
openai_messages_count,
|
openai_messages_count,
|
||||||
@ -523,6 +524,13 @@ function setOpenAIMessages(chat) {
|
|||||||
let role = chat[j]['is_user'] ? 'user' : 'assistant';
|
let role = chat[j]['is_user'] ? 'user' : 'assistant';
|
||||||
let content = chat[j]['mes'];
|
let content = chat[j]['mes'];
|
||||||
|
|
||||||
|
// If this symbol flag is set, completely ignore the message.
|
||||||
|
// This can be used to hide messages without affecting the number of messages in the chat.
|
||||||
|
if (chat[j].extra?.[IGNORE_SYMBOL]) {
|
||||||
|
j++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// 100% legal way to send a message as system
|
// 100% legal way to send a message as system
|
||||||
if (chat[j].extra?.type === system_message_types.NARRATOR) {
|
if (chat[j].extra?.type === system_message_types.NARRATOR) {
|
||||||
role = 'system';
|
role = 'system';
|
||||||
|
@ -83,6 +83,7 @@ import { convertCharacterBook, getWorldInfoPrompt, loadWorldInfo, reloadEditor,
|
|||||||
import { ChatCompletionService, TextCompletionService } from './custom-request.js';
|
import { ChatCompletionService, TextCompletionService } from './custom-request.js';
|
||||||
import { ConnectionManagerRequestService } from './extensions/shared.js';
|
import { ConnectionManagerRequestService } from './extensions/shared.js';
|
||||||
import { updateReasoningUI, parseReasoningFromString } from './reasoning.js';
|
import { updateReasoningUI, parseReasoningFromString } from './reasoning.js';
|
||||||
|
import { IGNORE_SYMBOL } from './constants.js';
|
||||||
|
|
||||||
export function getContext() {
|
export function getContext() {
|
||||||
return {
|
return {
|
||||||
@ -225,6 +226,9 @@ export function getContext() {
|
|||||||
parseReasoningFromString,
|
parseReasoningFromString,
|
||||||
unshallowCharacter,
|
unshallowCharacter,
|
||||||
unshallowGroupMembers,
|
unshallowGroupMembers,
|
||||||
|
symbols: {
|
||||||
|
ignore: IGNORE_SYMBOL,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user