Fix /sys and /sendas attribution when converting to groups. Fix context line with /sys with OpenAI

This commit is contained in:
SillyLossy
2023-06-01 11:18:19 +03:00
parent 83c875d8dc
commit 5df7d2d1dc
2 changed files with 5 additions and 2 deletions

View File

@ -258,7 +258,7 @@ async function convertSoloToGroupChat() {
} }
// Skip messages we don't care about // Skip messages we don't care about
if (message.is_user || message.is_system) { if (message.is_user || message.is_system || message.extra?.type === system_message_types.NARRATOR || message.force_avatar !== undefined) {
continue; continue;
} }

View File

@ -56,6 +56,7 @@ export {
let openai_msgs = []; let openai_msgs = [];
let openai_msgs_example = []; let openai_msgs_example = [];
let openai_messages_count = 0; let openai_messages_count = 0;
let openai_narrator_messages_count = 0;
let is_get_status_openai = false; let is_get_status_openai = false;
let is_api_button_press_openai = false; let is_api_button_press_openai = false;
@ -175,6 +176,7 @@ function setOpenAIMessages(chat) {
let j = 0; let j = 0;
// clean openai msgs // clean openai msgs
openai_msgs = []; openai_msgs = [];
openai_narrator_messages_count = 0;
for (let i = chat.length - 1; i >= 0; i--) { for (let i = chat.length - 1; i >= 0; i--) {
let role = chat[j]['is_user'] ? 'user' : 'assistant'; let role = chat[j]['is_user'] ? 'user' : 'assistant';
let content = chat[j]['mes']; let content = chat[j]['mes'];
@ -182,6 +184,7 @@ function setOpenAIMessages(chat) {
// 100% legal way to send a message as system // 100% legal way to send a message as system
if (chat[j].extra?.type === system_message_types.NARRATOR) { if (chat[j].extra?.type === system_message_types.NARRATOR) {
role = 'system'; role = 'system';
openai_narrator_messages_count++;
} }
// for groups or sendas command - prepend a character's name // for groups or sendas command - prepend a character's name
@ -457,7 +460,7 @@ async function prepareOpenAIMessages(name2, storyString, worldInfoBefore, worldI
} }
} }
openai_messages_count = openai_msgs_tosend.filter(x => x.role == "user" || x.role == "assistant").length; openai_messages_count = openai_msgs_tosend.filter(x => x.role == "user" || x.role == "assistant").length + openai_narrator_messages_count;
// reverse the messages array because we had the newest at the top to remove the oldest, // reverse the messages array because we had the newest at the top to remove the oldest,
// now we want proper order // now we want proper order
openai_msgs_tosend.reverse(); openai_msgs_tosend.reverse();