Adjust Novel instruction prompts for quiet generation

This commit is contained in:
Cohee 2023-08-17 17:40:38 +03:00
parent 8c949ed440
commit 86a486be8f
2 changed files with 17 additions and 0 deletions

View File

@ -104,6 +104,7 @@ import {
loadNovelSettings,
nai_settings,
setNovelData,
adjustNovelInstructionPrompt,
} from "./scripts/nai-settings.js";
import {
@ -2320,6 +2321,10 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject,
abortController = new AbortController();
}
if (main_api == 'novel' && quiet_prompt) {
quiet_prompt = adjustNovelInstructionPrompt(quiet_prompt);
}
// OpenAI doesn't need instruct mode. Use OAI main prompt instead.
const isInstruct = power_user.instruct.enabled && main_api !== 'openai';
const isImpersonate = type == "impersonate";

View File

@ -572,6 +572,18 @@ function calculateLogitBias() {
}));
}
/**
* Transforms instruction into compatible format for Novel AI.
* 1. Instruction must begin and end with curly braces followed and preceded by a space.
* 2. Instruction must not contain square brackets as it serves different purpose in NAI.
* @param {string} prompt Original instruction prompt
* @returns Processed prompt
*/
export function adjustNovelInstructionPrompt(prompt) {
const stripedPrompt = prompt.replace(/[\[\]]/g, '').trim();
return `{ ${stripedPrompt} }`;
}
export async function generateNovelWithStreaming(generate_data, signal) {
const response = await fetch('/generate_novelai', {
headers: getRequestHeaders(),