From 4dd94a4a6229758b9290529f22f2766fcbc73d1f Mon Sep 17 00:00:00 2001 From: maver Date: Thu, 13 Jul 2023 20:05:55 +0200 Subject: [PATCH] Do not generate group responses on dry run --- public/script.js | 21 ++++++++++++++++++++- public/scripts/PromptManager.js | 9 ++------- public/scripts/openai.js | 4 ++-- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/public/script.js b/public/script.js index f58a1b9ce..7337badd1 100644 --- a/public/script.js +++ b/public/script.js @@ -2309,9 +2309,28 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject, reject = () => { }; } - if (selected_group && !is_group_generating) { + if (selected_group && !is_group_generating && !dryRun) { generateGroupWrapper(false, type, { resolve, reject, quiet_prompt, force_chid, signal: abortController.signal }); return; + } else if (selected_group && !is_group_generating && dryRun) { + const characterIndexMap = new Map(characters.map((char, index) => [char.avatar, index])); + const group = groups.find((x) => x.id === selected_group); + + const enabledMembers = group.members.reduce((acc, member) => { + if (!group.disabled_members.includes(member) && !acc.includes(member)) { + acc.push(member); + } + return acc; + }, []); + + const memberIds = enabledMembers + .map((member) => characterIndexMap.get(member)) + .filter((index) => index !== undefined); + + if (memberIds.length > 0) { + setCharacterId(memberIds[0]); + setCharacterName(''); + } } if (true === dryRun || diff --git a/public/scripts/PromptManager.js b/public/scripts/PromptManager.js index a483a088c..2a05e46ef 100644 --- a/public/scripts/PromptManager.js +++ b/public/scripts/PromptManager.js @@ -139,7 +139,7 @@ class PromptCollection { /** * Retrieves the index of a Prompt instance in the collection by its identifier. * - * @param {string} identifier - The identifier of the Prompt instance to find. + * @param {null} identifier - The identifier of the Prompt instance to find. * @returns {number} The index of the Prompt instance in the collection, or -1 if not found. */ index(identifier) { @@ -1589,12 +1589,7 @@ const openAiDefaultPromptList = [ const defaultPromptManagerSettings = { prompt_manager_settings: { - showAdvancedSettings: false, - utilityPrompts: { - newChat: '[Start a new Chat]', - newGroupChat: '[Start a new group chat. Group members: {{names}}]', - newExampleChat: '[Start a new Chat]', - } + showAdvancedSettings: false } }; diff --git a/public/scripts/openai.js b/public/scripts/openai.js index dda2d6e4c..c6c0c4660 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -635,7 +635,7 @@ function prepareOpenAIMessages({ extensionPrompts, cyclePrompt } = {}, dryRun) { - // When there is no character selected, there is no way to accurately calculate tokens + // Without a character selected, there is no way to accurately calculate tokens if (!promptManager.activeCharacter && dryRun) return [null, false]; const prompts = promptManager.getPromptCollection(); @@ -723,7 +723,7 @@ function prepareOpenAIMessages({ promptManager.populateTokenHandler(messages); promptManager.setMessages(messages); - // All information are up-to-date, render without dry-run. + // All information are up-to-date, render. if (false === dryRun) promptManager.render(false); }