mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-04-24 23:48:42 +02:00
Fix user jb/main not replacing original placeholder in character main/jb
This commit is contained in:
parent
edcce96a6e
commit
9543f54f8c
@ -726,33 +726,23 @@ function preparePromptsForChatCompletion(Scenario, charPersonality, name2, world
|
|||||||
// Apply character-specific main prompt
|
// Apply character-specific main prompt
|
||||||
const systemPromptOverride = promptManager.activeCharacter.data?.system_prompt ?? null;
|
const systemPromptOverride = promptManager.activeCharacter.data?.system_prompt ?? null;
|
||||||
const systemPrompt = prompts.get('main') ?? null;
|
const systemPrompt = prompts.get('main') ?? null;
|
||||||
if (systemPromptOverride) {
|
if (systemPromptOverride && systemPrompt) {
|
||||||
|
const mainOriginalContent = systemPrompt.content;
|
||||||
systemPrompt.content = systemPromptOverride;
|
systemPrompt.content = systemPromptOverride;
|
||||||
prompts.set(systemPrompt, prompts.index('main'));
|
const mainReplacement = promptManager.preparePrompt(systemPrompt, mainOriginalContent);
|
||||||
|
prompts.set(mainReplacement, prompts.index('main'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply character-specific jailbreak
|
// Apply character-specific jailbreak
|
||||||
const jailbreakPromptOverride = promptManager.activeCharacter.data?.post_history_instructions ?? null;
|
const jailbreakPromptOverride = promptManager.activeCharacter.data?.post_history_instructions ?? null;
|
||||||
const jailbreakPrompt = prompts.get('jailbreak') ?? null;
|
const jailbreakPrompt = prompts.get('jailbreak') ?? null;
|
||||||
if (jailbreakPromptOverride && jailbreakPrompt) {
|
if (jailbreakPromptOverride && jailbreakPrompt) {
|
||||||
|
const jbOriginalContent = jailbreakPrompt.content;
|
||||||
jailbreakPrompt.content = jailbreakPromptOverride;
|
jailbreakPrompt.content = jailbreakPromptOverride;
|
||||||
prompts.set(jailbreakPrompt, prompts.index('jailbreak'));
|
const jbReplacement = promptManager.preparePrompt(jailbreakPrompt, jbOriginalContent);
|
||||||
|
prompts.set(jbReplacement, prompts.index('jailbreak'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replace {{original}} placeholder for supported prompts
|
|
||||||
const originalReplacements = {
|
|
||||||
main: default_main_prompt,
|
|
||||||
nsfw: default_nsfw_prompt,
|
|
||||||
jailbreak: default_jailbreak_prompt
|
|
||||||
}
|
|
||||||
|
|
||||||
prompts.collection.forEach(prompt => {
|
|
||||||
if (originalReplacements.hasOwnProperty(prompt.identifier)) {
|
|
||||||
const original = originalReplacements[prompt.identifier];
|
|
||||||
prompt.content = promptManager.preparePrompt(prompt, original)?.content;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Allow subscribers to manipulate the prompts object
|
// Allow subscribers to manipulate the prompts object
|
||||||
eventSource.emit(event_types.OAI_BEFORE_CHATCOMPLETION, prompts);
|
eventSource.emit(event_types.OAI_BEFORE_CHATCOMPLETION, prompts);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user