#418 Fix freeze on group with all disabled. Allow to send user messages into group with all disabled.

This commit is contained in:
SillyLossy
2023-05-31 11:36:00 +03:00
parent 6ad2492ef6
commit 412fad002d
2 changed files with 14 additions and 5 deletions

View File

@@ -2512,7 +2512,7 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject,
//console.log('generate ending'); //console.log('generate ending');
} //generate ends } //generate ends
function getBiasStrings(textareaText) { export function getBiasStrings(textareaText) {
let promptBias = ''; let promptBias = '';
let messageBias = extractMessageBias(textareaText); let messageBias = extractMessageBias(textareaText);
@@ -2551,7 +2551,7 @@ export function replaceBiasMarkup(str) {
return (str ?? '').replace(/{{(\*?.*\*?)}}/g, ''); return (str ?? '').replace(/{{(\*?.*\*?)}}/g, '');
} }
async function sendMessageAsUser(textareaText, messageBias) { export async function sendMessageAsUser(textareaText, messageBias) {
chat[chat.length] = {}; chat[chat.length] = {};
chat[chat.length - 1]['name'] = name1; chat[chat.length - 1]['name'] = name1;
chat[chat.length - 1]['is_user'] = true; chat[chat.length - 1]['is_user'] = true;

View File

@@ -48,6 +48,9 @@ import {
cancelTtsPlay, cancelTtsPlay,
isMultigenEnabled, isMultigenEnabled,
displayPastChats, displayPastChats,
sendMessageAsUser,
getBiasStrings,
saveChatConditional,
} from "../script.js"; } from "../script.js";
import { appendTagToList, createTagMapFromList, getTagsList, applyTagsOnCharacterSelect } from './tags.js'; import { appendTagToList, createTagMapFromList, getTagsList, applyTagsOnCharacterSelect } from './tags.js';
@@ -414,7 +417,7 @@ async function generateGroupWrapper(by_auto_mode, type = null, params = {}) {
group_generation_id = Date.now(); group_generation_id = Date.now();
const lastMessage = chat[chat.length - 1]; const lastMessage = chat[chat.length - 1];
let messagesBefore = chat.length; let messagesBefore = chat.length;
let lastMessageText = lastMessage.mes; let lastMessageText = lastMessage?.mes || '';
let activationText = ""; let activationText = "";
let isUserInput = false; let isUserInput = false;
let isGenerationDone = false; let isGenerationDone = false;
@@ -491,7 +494,12 @@ async function generateGroupWrapper(by_auto_mode, type = null, params = {}) {
if (activatedMembers.length === 0) { if (activatedMembers.length === 0) {
toastr.warning('All group members are disabled. Enable at least one to get a reply.'); toastr.warning('All group members are disabled. Enable at least one to get a reply.');
throw new Error('All group members are disabled');
// Send user message as is
const bias = getBiasStrings(userInput);
await sendMessageAsUser(userInput, bias.messageBias);
await saveChatConditional();
$('#send_textarea').val('');
} }
// now the real generation begins: cycle through every activated character // now the real generation begins: cycle through every activated character
@@ -714,7 +722,8 @@ function activateNaturalOrder(members, input, lastMessage, allowSelfResponses, i
} }
// pick 1 at random if no one was activated // pick 1 at random if no one was activated
while (activatedMembers.length === 0) { let retries = 0;
while (activatedMembers.length === 0 && ++retries <= members.length) {
const randomIndex = Math.floor(Math.random() * members.length); const randomIndex = Math.floor(Math.random() * members.length);
const character = characters.find((x) => x.avatar === members[randomIndex]); const character = characters.find((x) => x.avatar === members[randomIndex]);