Merge pull request #3465 from SillyTavern/quiet-reasoning-parse Remove reasoning from queit prompt results if auto-parse is enabled

4c8ae0afd3f08a67a9c9073366731a2e1c9cd6d8

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
2 files changed, +17 -2Showing whitespace changes
public/script.js+3 -2
@@ -269,7 +269,7 @@ import { initSettingsSearch } from './scripts/setting-search.js';
269import { initBulkEdit } from './scripts/bulk-edit.js';269import { initBulkEdit } from './scripts/bulk-edit.js';
270import { deriveTemplatesFromChatTemplate } from './scripts/chat-templates.js';270import { deriveTemplatesFromChatTemplate } from './scripts/chat-templates.js';
271import { getContext } from './scripts/st-context.js';271import { getContext } from './scripts/st-context.js';
272import { extractReasoningFromData, initReasoning, PromptReasoning, updateReasoningTimeUI } from './scripts/reasoning.js';272import { extractReasoningFromData, initReasoning, PromptReasoning, removeReasoningFromString, updateReasoningTimeUI } from './scripts/reasoning.js';
273273
274// API OBJECT FOR EXTERNAL WIRING274// API OBJECT FOR EXTERNAL WIRING
275globalThis.SillyTavern = {275globalThis.SillyTavern = {
@@ -2793,7 +2793,8 @@ export async function generateQuietPrompt(quiet_prompt, quietToLoud, skipWIAN, q
2793 TempResponseLength.save(main_api, responseLength);2793 TempResponseLength.save(main_api, responseLength);
2794 eventHook = TempResponseLength.setupEventHook(main_api);2794 eventHook = TempResponseLength.setupEventHook(main_api);
2795 }2795 }
2796 return await Generate('quiet', options);2796 const result = await Generate('quiet', options);
2797 return removeReasoningFromString(result);
2797 } finally {2798 } finally {
2798 if (responseLengthCustomized && TempResponseLength.isCustomized()) {2799 if (responseLengthCustomized && TempResponseLength.isCustomized()) {
2799 TempResponseLength.restore(main_api);2800 TempResponseLength.restore(main_api);
public/scripts/reasoning.js+14 -0
@@ -447,6 +447,20 @@ function setReasoningEventHandlers() {
447}447}
448448
449/**449/**
450 * Removes reasoning from a string if auto-parsing is enabled.
451 * @param {string} str Input string
452 * @returns {string} Output string
453 */
454export function removeReasoningFromString(str) {
455 if (!power_user.reasoning.auto_parse) {
456 return str;
457 }
458
459 const parsedReasoning = parseReasoningFromString(str);
460 return parsedReasoning?.content ?? str;
461}
462
463/**
450 * Parses reasoning from a string using the power user reasoning settings.464 * Parses reasoning from a string using the power user reasoning settings.
451 * @typedef {Object} ParsedReasoning465 * @typedef {Object} ParsedReasoning
452 * @property {string} reasoning Reasoning block466 * @property {string} reasoning Reasoning block