mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-02-13 10:42:55 +01:00
#2188 Make first message not required
This commit is contained in:
parent
226852233f
commit
b1c9fee29e
@ -469,7 +469,6 @@ let settingsReady = false;
|
|||||||
let currentVersion = '0.0.0';
|
let currentVersion = '0.0.0';
|
||||||
let displayVersion = 'SillyTavern';
|
let displayVersion = 'SillyTavern';
|
||||||
|
|
||||||
export const default_ch_mes = 'Hello';
|
|
||||||
let generatedPromptCache = '';
|
let generatedPromptCache = '';
|
||||||
let generation_started = new Date();
|
let generation_started = new Date();
|
||||||
/** @type {import('scripts/char-data.js').v1CharData[]} */
|
/** @type {import('scripts/char-data.js').v1CharData[]} */
|
||||||
@ -5785,8 +5784,10 @@ async function getChatResult() {
|
|||||||
name2 = characters[this_chid].name;
|
name2 = characters[this_chid].name;
|
||||||
if (chat.length === 0) {
|
if (chat.length === 0) {
|
||||||
const message = getFirstMessage();
|
const message = getFirstMessage();
|
||||||
chat.push(message);
|
if (message.mes) {
|
||||||
await saveChatConditional();
|
chat.push(message);
|
||||||
|
await saveChatConditional();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
await loadItemizedPrompts(getCurrentChatId());
|
await loadItemizedPrompts(getCurrentChatId());
|
||||||
await printMessages();
|
await printMessages();
|
||||||
@ -5802,7 +5803,7 @@ async function getChatResult() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getFirstMessage() {
|
function getFirstMessage() {
|
||||||
const firstMes = characters[this_chid].first_mes || default_ch_mes;
|
const firstMes = characters[this_chid].first_mes || '';
|
||||||
const alternateGreetings = characters[this_chid]?.data?.alternate_greetings;
|
const alternateGreetings = characters[this_chid]?.data?.alternate_greetings;
|
||||||
|
|
||||||
const message = {
|
const message = {
|
||||||
@ -5816,10 +5817,17 @@ function getFirstMessage() {
|
|||||||
|
|
||||||
if (Array.isArray(alternateGreetings) && alternateGreetings.length > 0) {
|
if (Array.isArray(alternateGreetings) && alternateGreetings.length > 0) {
|
||||||
const swipes = [message.mes, ...(alternateGreetings.map(greeting => getRegexedString(greeting, regex_placement.AI_OUTPUT)))];
|
const swipes = [message.mes, ...(alternateGreetings.map(greeting => getRegexedString(greeting, regex_placement.AI_OUTPUT)))];
|
||||||
|
|
||||||
|
if (!message.mes) {
|
||||||
|
swipes.shift();
|
||||||
|
message.mes = swipes[0];
|
||||||
|
}
|
||||||
|
|
||||||
message['swipe_id'] = 0;
|
message['swipe_id'] = 0;
|
||||||
message['swipes'] = swipes;
|
message['swipes'] = swipes;
|
||||||
message['swipe_info'] = [];
|
message['swipe_info'] = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7400,8 +7408,8 @@ function openAlternateGreetings() {
|
|||||||
template.find('.add_alternate_greeting').on('click', function () {
|
template.find('.add_alternate_greeting').on('click', function () {
|
||||||
const array = getArray();
|
const array = getArray();
|
||||||
const index = array.length;
|
const index = array.length;
|
||||||
array.push(default_ch_mes);
|
array.push('');
|
||||||
addAlternateGreeting(template, default_ch_mes, index, getArray);
|
addAlternateGreeting(template, '', index, getArray);
|
||||||
updateAlternateGreetingsHintVisibility(template);
|
updateAlternateGreetingsHintVisibility(template);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -7572,15 +7580,20 @@ async function createOrEditCharacter(e) {
|
|||||||
eventSource.emit(event_types.CHARACTER_EDITED, { detail: { id: this_chid, character: characters[this_chid] } });
|
eventSource.emit(event_types.CHARACTER_EDITED, { detail: { id: this_chid, character: characters[this_chid] } });
|
||||||
|
|
||||||
// Recreate the chat if it hasn't been used at least once (i.e. with continue).
|
// Recreate the chat if it hasn't been used at least once (i.e. with continue).
|
||||||
if (chat.length === 1 && !selected_group && !chat_metadata['tainted']) {
|
const message = getFirstMessage();
|
||||||
const firstMessage = getFirstMessage();
|
const shouldRegenerateMessage =
|
||||||
chat[0] = firstMessage;
|
message.mes &&
|
||||||
|
!selected_group &&
|
||||||
|
!chat_metadata['tainted'] &&
|
||||||
|
(chat.length === 0 || (chat.length === 1 && !chat[0].is_user && !chat[0].is_system));
|
||||||
|
|
||||||
const chat_id = (chat.length - 1);
|
if (shouldRegenerateMessage) {
|
||||||
await eventSource.emit(event_types.MESSAGE_RECEIVED, chat_id);
|
chat.splice(0, chat.length, message);
|
||||||
|
const messageId = (chat.length - 1);
|
||||||
|
await eventSource.emit(event_types.MESSAGE_RECEIVED, messageId);
|
||||||
await clearChat();
|
await clearChat();
|
||||||
await printMessages();
|
await printMessages();
|
||||||
await eventSource.emit(event_types.CHARACTER_MESSAGE_RENDERED, chat_id);
|
await eventSource.emit(event_types.CHARACTER_MESSAGE_RENDERED, messageId);
|
||||||
await saveChatConditional();
|
await saveChatConditional();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -40,7 +40,6 @@ import {
|
|||||||
online_status,
|
online_status,
|
||||||
talkativeness_default,
|
talkativeness_default,
|
||||||
selectRightMenuWithAnimation,
|
selectRightMenuWithAnimation,
|
||||||
default_ch_mes,
|
|
||||||
deleteLastMessage,
|
deleteLastMessage,
|
||||||
showSwipeButtons,
|
showSwipeButtons,
|
||||||
hideSwipeButtons,
|
hideSwipeButtons,
|
||||||
@ -204,6 +203,12 @@ export async function getGroupChat(groupId, reload = false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const mes = await getFirstCharacterMessage(character);
|
const mes = await getFirstCharacterMessage(character);
|
||||||
|
|
||||||
|
// No first message
|
||||||
|
if (!(mes?.mes)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
chat.push(mes);
|
chat.push(mes);
|
||||||
await eventSource.emit(event_types.MESSAGE_RECEIVED, (chat.length - 1));
|
await eventSource.emit(event_types.MESSAGE_RECEIVED, (chat.length - 1));
|
||||||
addOneMessage(mes);
|
addOneMessage(mes);
|
||||||
@ -452,7 +457,7 @@ async function getFirstCharacterMessage(character) {
|
|||||||
mes['extra'] = { 'gen_id': Date.now() * Math.random() * 1000000 };
|
mes['extra'] = { 'gen_id': Date.now() * Math.random() * 1000000 };
|
||||||
mes['mes'] = messageText
|
mes['mes'] = messageText
|
||||||
? substituteParams(messageText.trim(), name1, character.name)
|
? substituteParams(messageText.trim(), name1, character.name)
|
||||||
: default_ch_mes;
|
: '';
|
||||||
mes['force_avatar'] =
|
mes['force_avatar'] =
|
||||||
character.avatar != 'none'
|
character.avatar != 'none'
|
||||||
? getThumbnailUrl('avatar', character.avatar)
|
? getThumbnailUrl('avatar', character.avatar)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user