mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Don't add user placeholders
This commit is contained in:
@ -64,11 +64,11 @@ function postProcessPrompt(messages, type, names) {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case 'merge':
|
case 'merge':
|
||||||
case 'claude':
|
case 'claude':
|
||||||
return mergeMessages(messages, names, false);
|
return mergeMessages(messages, names, false, true);
|
||||||
case 'strict':
|
case 'strict':
|
||||||
return mergeMessages(messages, names, true);
|
return mergeMessages(messages, names, true, true);
|
||||||
case 'deepseek':
|
case 'deepseek':
|
||||||
return (x => x[x.length - 1].role !== 'assistant' || (x[x.length - 1].prefix = true) ? x : x)([...mergeMessages(messages, names, true)]);
|
return (x => x.length && (x[x.length - 1].role !== 'assistant' || (x[x.length - 1].prefix = true)) ? x : x)(mergeMessages(messages, names, true, false));
|
||||||
default:
|
default:
|
||||||
return messages;
|
return messages;
|
||||||
}
|
}
|
||||||
|
@ -639,9 +639,10 @@ export function convertMistralMessages(messages, names) {
|
|||||||
* @param {any[]} messages Messages to merge
|
* @param {any[]} messages Messages to merge
|
||||||
* @param {PromptNames} names Prompt names
|
* @param {PromptNames} names Prompt names
|
||||||
* @param {boolean} strict Enable strict mode: only allow one system message at the start, force user first message
|
* @param {boolean} strict Enable strict mode: only allow one system message at the start, force user first message
|
||||||
|
* @param {boolean} placeholders Add user placeholders to the messages in strict mode
|
||||||
* @returns {any[]} Merged messages
|
* @returns {any[]} Merged messages
|
||||||
*/
|
*/
|
||||||
export function mergeMessages(messages, names, strict) {
|
export function mergeMessages(messages, names, strict, placeholders) {
|
||||||
let mergedMessages = [];
|
let mergedMessages = [];
|
||||||
|
|
||||||
/** @type {Map<string,object>} */
|
/** @type {Map<string,object>} */
|
||||||
@ -700,9 +701,9 @@ export function mergeMessages(messages, names, strict) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Prevent erroring out if the messages array is empty.
|
// Prevent erroring out if the mergedMessages array is empty.
|
||||||
if (messages.length === 0) {
|
if (mergedMessages.length === 0) {
|
||||||
messages.unshift({
|
mergedMessages.unshift({
|
||||||
role: 'user',
|
role: 'user',
|
||||||
content: PROMPT_PLACEHOLDER,
|
content: PROMPT_PLACEHOLDER,
|
||||||
});
|
});
|
||||||
@ -741,7 +742,7 @@ export function mergeMessages(messages, names, strict) {
|
|||||||
mergedMessages[i].role = 'user';
|
mergedMessages[i].role = 'user';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mergedMessages.length) {
|
if (mergedMessages.length && placeholders) {
|
||||||
if (mergedMessages[0].role === 'system' && (mergedMessages.length === 1 || mergedMessages[1].role !== 'user')) {
|
if (mergedMessages[0].role === 'system' && (mergedMessages.length === 1 || mergedMessages[1].role !== 'user')) {
|
||||||
mergedMessages.splice(1, 0, { role: 'user', content: PROMPT_PLACEHOLDER });
|
mergedMessages.splice(1, 0, { role: 'user', content: PROMPT_PLACEHOLDER });
|
||||||
}
|
}
|
||||||
@ -749,7 +750,7 @@ export function mergeMessages(messages, names, strict) {
|
|||||||
mergedMessages.unshift({ role: 'user', content: PROMPT_PLACEHOLDER });
|
mergedMessages.unshift({ role: 'user', content: PROMPT_PLACEHOLDER });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return mergeMessages(mergedMessages, names, false);
|
return mergeMessages(mergedMessages, names, false, placeholders);
|
||||||
}
|
}
|
||||||
|
|
||||||
return mergedMessages;
|
return mergedMessages;
|
||||||
|
Reference in New Issue
Block a user