mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Allow running generate interceptors on quiet prompts
This commit is contained in:
@ -3764,9 +3764,9 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro
|
|||||||
// Determine token limit
|
// Determine token limit
|
||||||
let this_max_context = getMaxContextSize();
|
let this_max_context = getMaxContextSize();
|
||||||
|
|
||||||
if (!dryRun && type !== 'quiet') {
|
if (!dryRun) {
|
||||||
console.debug('Running extension interceptors');
|
console.debug('Running extension interceptors');
|
||||||
const aborted = await runGenerationInterceptors(coreChat, this_max_context);
|
const aborted = await runGenerationInterceptors(coreChat, this_max_context, type);
|
||||||
|
|
||||||
if (aborted) {
|
if (aborted) {
|
||||||
console.debug('Generation aborted by extension interceptors');
|
console.debug('Generation aborted by extension interceptors');
|
||||||
|
@ -1209,9 +1209,10 @@ async function autoUpdateExtensions(forceAll) {
|
|||||||
* Runs the generate interceptors for all extensions.
|
* Runs the generate interceptors for all extensions.
|
||||||
* @param {any[]} chat Chat array
|
* @param {any[]} chat Chat array
|
||||||
* @param {number} contextSize Context size
|
* @param {number} contextSize Context size
|
||||||
|
* @param {string} type Generation type
|
||||||
* @returns {Promise<boolean>} True if generation should be aborted
|
* @returns {Promise<boolean>} True if generation should be aborted
|
||||||
*/
|
*/
|
||||||
export async function runGenerationInterceptors(chat, contextSize) {
|
export async function runGenerationInterceptors(chat, contextSize, type) {
|
||||||
let aborted = false;
|
let aborted = false;
|
||||||
let exitImmediately = false;
|
let exitImmediately = false;
|
||||||
|
|
||||||
@ -1224,7 +1225,7 @@ export async function runGenerationInterceptors(chat, contextSize) {
|
|||||||
const interceptorKey = manifest.generate_interceptor;
|
const interceptorKey = manifest.generate_interceptor;
|
||||||
if (typeof globalThis[interceptorKey] === 'function') {
|
if (typeof globalThis[interceptorKey] === 'function') {
|
||||||
try {
|
try {
|
||||||
await globalThis[interceptorKey](chat, contextSize, abort);
|
await globalThis[interceptorKey](chat, contextSize, abort, type);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(`Failed running interceptor for ${manifest.display_name}`, e);
|
console.error(`Failed running interceptor for ${manifest.display_name}`, e);
|
||||||
}
|
}
|
||||||
|
@ -330,7 +330,18 @@ const defaultSettings = {
|
|||||||
|
|
||||||
const writePromptFieldsDebounced = debounce(writePromptFields, debounce_timeout.relaxed);
|
const writePromptFieldsDebounced = debounce(writePromptFields, debounce_timeout.relaxed);
|
||||||
|
|
||||||
function processTriggers(chat, _, abort) {
|
/**
|
||||||
|
* Generate interceptor for interactive mode triggers.
|
||||||
|
* @param {any[]} chat Chat messages
|
||||||
|
* @param {number} _ Context size (unused)
|
||||||
|
* @param {function(boolean): void} abort Abort generation function
|
||||||
|
* @param {string} type Type of the generation
|
||||||
|
*/
|
||||||
|
function processTriggers(chat, _, abort, type) {
|
||||||
|
if (type === 'quiet') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (extension_settings.sd.function_tool && ToolManager.isToolCallingSupported()) {
|
if (extension_settings.sd.function_tool && ToolManager.isToolCallingSupported()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -594,8 +594,11 @@ async function vectorizeFile(fileText, fileName, collectionId, chunkSize, overla
|
|||||||
/**
|
/**
|
||||||
* Removes the most relevant messages from the chat and displays them in the extension prompt
|
* Removes the most relevant messages from the chat and displays them in the extension prompt
|
||||||
* @param {object[]} chat Array of chat messages
|
* @param {object[]} chat Array of chat messages
|
||||||
|
* @param {number} _contextSize Context size (unused)
|
||||||
|
* @param {function} _abort Abort function (unused)
|
||||||
|
* @param {string} type Generation type
|
||||||
*/
|
*/
|
||||||
async function rearrangeChat(chat) {
|
async function rearrangeChat(chat, _contextSize, _abort, type) {
|
||||||
try {
|
try {
|
||||||
// Clear the extension prompt
|
// Clear the extension prompt
|
||||||
setExtensionPrompt(EXTENSION_PROMPT_TAG, '', settings.position, settings.depth, settings.include_wi);
|
setExtensionPrompt(EXTENSION_PROMPT_TAG, '', settings.position, settings.depth, settings.include_wi);
|
||||||
@ -609,7 +612,7 @@ async function rearrangeChat(chat) {
|
|||||||
await activateWorldInfo(chat);
|
await activateWorldInfo(chat);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!settings.enabled_chats) {
|
if (!settings.enabled_chats || type === 'quiet') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user