Shuffle randomly activated chars

This commit is contained in:
SillyLossy
2023-02-27 19:25:38 +02:00
parent aa05749e9b
commit f215ff664e
2 changed files with 23 additions and 10 deletions

View File

@ -1829,8 +1829,9 @@
}
}
// activation by talkativeness
for (let member of members) {
// activation by talkativeness (in shuffled order)
const shuffledMembers = shuffle([...members]);
for (let member of shuffledMembers) {
const character = characters.find(x => x.name === member);
if (!character) {
@ -1840,7 +1841,7 @@
const rollValue = Math.random();
let talkativeness = Number(character.talkativeness);
talkativeness = Number.isNaN(talkativeness) ? talkativeness_default : talkativeness;
if (talkativeness > rollValue) {
if (talkativeness >= rollValue) {
activatedNames.push(member);
}
}
@ -1852,12 +1853,8 @@
}
// de-duplicate array of names
function onlyUnique(value, index, array) {
return array.indexOf(value) === index;
}
activatedNames = activatedNames.filter(onlyUnique);
console.log(activatedNames);
// map to character ids
const memberIds = activatedNames.map(x => characters.findIndex(y => y.name === x)).filter(x => x !== -1);
return memberIds;
@ -4286,6 +4283,22 @@
$('#world_create_button').click(() => {
createNewWorldInfo();
});
/// UTILS
function onlyUnique(value, index, array) {
return array.indexOf(value) === index;
}
function shuffle(array) {
let currentIndex = array.length, randomIndex;
while (currentIndex != 0) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex--;
[array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];
}
return array;
}
});
    </script>
<title>Tavern.AI</title>

View File

@ -1077,12 +1077,12 @@ app.post("/importcharacter", urlencodedParser, async function(request, response)
try {
if(jsonData.name !== undefined){
png_name = getPngName(jsonData.name);
let char = {"name": jsonData.name, "description": jsonData.description ?? '', "personality": jsonData.personality ?? '', "first_mes": jsonData.first_mes ?? '', "avatar": 'none', "chat": Date.now(), "mes_example": jsonData.mes_example ?? '', "scenario": jsonData.scenario ?? '', "create_date": Date.now()};
let char = {"name": jsonData.name, "description": jsonData.description ?? '', "personality": jsonData.personality ?? '', "first_mes": jsonData.first_mes ?? '', "avatar": 'none', "chat": Date.now(), "mes_example": jsonData.mes_example ?? '', "scenario": jsonData.scenario ?? '', "create_date": Date.now(), "talkativeness": jsonData.talkativeness ?? 0.5};
char = JSON.stringify(char);
await charaWrite('./public/img/fluffy.png', char, png_name, response, {file_name: png_name});
}else if(jsonData.char_name !== undefined){//json Pygmalion notepad
png_name = getPngName(jsonData.char_name);
let char = {"name": jsonData.char_name, "description": jsonData.char_persona ?? '', "personality": '', "first_mes": jsonData.char_greeting ?? '', "avatar": 'none', "chat": Date.now(), "mes_example": jsonData.example_dialogue ?? '', "scenario": jsonData.world_scenario ?? '', "create_date": Date.now()};
let char = {"name": jsonData.char_name, "description": jsonData.char_persona ?? '', "personality": '', "first_mes": jsonData.char_greeting ?? '', "avatar": 'none', "chat": Date.now(), "mes_example": jsonData.example_dialogue ?? '', "scenario": jsonData.world_scenario ?? '', "create_date": Date.now(), "talkativeness": jsonData.talkativeness ?? 0.5};
char = JSON.stringify(char);
await charaWrite('./public/img/fluffy.png', char, png_name, response, {file_name: png_name});
}else{
@ -1101,7 +1101,7 @@ app.post("/importcharacter", urlencodedParser, async function(request, response)
png_name = getPngName(jsonData.name);
if(jsonData.name !== undefined){
let char = {"name": jsonData.name, "description": jsonData.description ?? '', "personality": jsonData.personality ?? '', "first_mes": jsonData.first_mes ?? '', "avatar": 'none', "chat": Date.now(), "mes_example": jsonData.mes_example ?? '', "scenario": jsonData.scenario ?? '', "create_date": Date.now()};
let char = {"name": jsonData.name, "description": jsonData.description ?? '', "personality": jsonData.personality ?? '', "first_mes": jsonData.first_mes ?? '', "avatar": 'none', "chat": Date.now(), "mes_example": jsonData.mes_example ?? '', "scenario": jsonData.scenario ?? '', "create_date": Date.now(), "talkativeness": jsonData.talkativeness ?? 0.5};
char = JSON.stringify(char);
await charaWrite('./uploads/'+filedata.filename, char, png_name, response, {file_name: png_name});
/*