From 63e3816e928e44fb2f69ba09b9792917d06357bb Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Tue, 11 Feb 2025 22:35:56 +0200 Subject: [PATCH] Remove reasoning from queit prompt results if auto-parse is enabled Fixes #3457 --- public/script.js | 5 +++-- public/scripts/reasoning.js | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/public/script.js b/public/script.js index e848b2cd7..53cd0a5e1 100644 --- a/public/script.js +++ b/public/script.js @@ -269,7 +269,7 @@ import { initSettingsSearch } from './scripts/setting-search.js'; import { initBulkEdit } from './scripts/bulk-edit.js'; import { deriveTemplatesFromChatTemplate } from './scripts/chat-templates.js'; import { getContext } from './scripts/st-context.js'; -import { extractReasoningFromData, initReasoning, PromptReasoning, updateReasoningTimeUI } from './scripts/reasoning.js'; +import { extractReasoningFromData, initReasoning, PromptReasoning, removeReasoningFromString, updateReasoningTimeUI } from './scripts/reasoning.js'; // API OBJECT FOR EXTERNAL WIRING globalThis.SillyTavern = { @@ -2793,7 +2793,8 @@ export async function generateQuietPrompt(quiet_prompt, quietToLoud, skipWIAN, q TempResponseLength.save(main_api, responseLength); eventHook = TempResponseLength.setupEventHook(main_api); } - return await Generate('quiet', options); + const result = await Generate('quiet', options); + return removeReasoningFromString(result); } finally { if (responseLengthCustomized && TempResponseLength.isCustomized()) { TempResponseLength.restore(main_api); diff --git a/public/scripts/reasoning.js b/public/scripts/reasoning.js index 3535401e5..e3c29ea08 100644 --- a/public/scripts/reasoning.js +++ b/public/scripts/reasoning.js @@ -446,6 +446,20 @@ function setReasoningEventHandlers() { }); } +/** + * Removes reasoning from a string if auto-parsing is enabled. + * @param {string} str Input string + * @returns {string} Output string + */ +export function removeReasoningFromString(str) { + if (!power_user.reasoning.auto_parse) { + return str; + } + + const parsedReasoning = parseReasoningFromString(str); + return parsedReasoning?.content ?? str; +} + /** * Parses reasoning from a string using the power user reasoning settings. * @typedef {Object} ParsedReasoning