Add world info support for OAI. Fix regens

This commit is contained in:
SillyLossy
2023-03-22 01:16:16 +02:00
parent edab2e84b9
commit 7cce26bd22
3 changed files with 29 additions and 18 deletions

View File

@@ -163,7 +163,16 @@ function parseExampleIntoIndividual(messageExampleString) {
return result;
}
function prepareOpenAIMessages(name2, storyString) {
function formatWorldInfo(value) {
if (!value) {
return '';
}
// placeholder if we would want to apply some formatting
return `[Details of the fictional world the RP set in:\n${value}\n]`;
}
function prepareOpenAIMessages(name2, storyString, worldInfoBefore, worldInfoAfter, extensionPrompt) {
let this_max_context = oai_settings.openai_max_context;
let nsfw_toggle_prompt = "";
let enhance_definitions_prompt = "";
@@ -181,10 +190,10 @@ function prepareOpenAIMessages(name2, storyString) {
let whole_prompt = [];
// If it's toggled, NSFW prompt goes first.
if (oai_settings.nsfw_first) {
whole_prompt = [nsfw_toggle_prompt, oai_settings.main_prompt, enhance_definitions_prompt, "\n\n", storyString]
whole_prompt = [nsfw_toggle_prompt, oai_settings.main_prompt, enhance_definitions_prompt, "\n\n", formatWorldInfo(worldInfoBefore), storyString, formatWorldInfo(worldInfoAfter), extensionPrompt]
}
else {
whole_prompt = [oai_settings.main_prompt, nsfw_toggle_prompt, enhance_definitions_prompt, "\n\n", storyString]
whole_prompt = [oai_settings.main_prompt, nsfw_toggle_prompt, enhance_definitions_prompt, "\n\n", formatWorldInfo(worldInfoBefore), storyString, formatWorldInfo(worldInfoAfter), extensionPrompt]
}
// Join by a space and replace placeholders with real user/char names

View File

@@ -13,6 +13,7 @@ export {
deleteWorldInfo,
selectImportedWorldInfo,
setWorldInfoSettings,
getWorldInfoPrompt,
}
let world_info = null;
@@ -30,6 +31,18 @@ const world_info_position = {
after: 1,
};
function getWorldInfoPrompt(chat2) {
let worldInfoString = "", worldInfoBefore = "", worldInfoAfter = "";
if (world_info && world_info_data) {
const activatedWorldInfo = checkWorldInfo(chat2);
worldInfoBefore = activatedWorldInfo.worldInfoBefore;
worldInfoAfter = activatedWorldInfo.worldInfoAfter;
worldInfoString = worldInfoBefore + worldInfoAfter;
}
return { worldInfoString, worldInfoBefore, worldInfoAfter };
}
function setWorldInfoSettings(settings, data) {
if (settings.world_info_depth !== undefined)
world_info_depth = Number(settings.world_info_depth);