mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Fix xAI example messages conversion
This commit is contained in:
@ -679,6 +679,43 @@ export function convertMistralMessages(messages, names) {
|
||||
return messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a prompt from the messages objects to the format used by xAI.
|
||||
* @param {object[]} messages Array of messages
|
||||
* @param {PromptNames} names Prompt names
|
||||
* @returns {object[]} Prompt for xAI
|
||||
*/
|
||||
export function convertXAIMessages(messages, names) {
|
||||
if (!Array.isArray(messages)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
messages.forEach(msg => {
|
||||
if (!msg.name || msg.role === 'user') {
|
||||
return;
|
||||
}
|
||||
|
||||
const needsCharNamePrefix = [
|
||||
{ role: 'assistant', condition: names.charName && !msg.content.startsWith(`${names.charName}: `) && !names.startsWithGroupName(msg.content) },
|
||||
{ role: 'system', name: 'example_assistant', condition: names.charName && !msg.content.startsWith(`${names.charName}: `) && !names.startsWithGroupName(msg.content) },
|
||||
{ role: 'system', name: 'example_user', condition: names.userName && !msg.content.startsWith(`${names.userName}: `) },
|
||||
];
|
||||
|
||||
const matchingRule = needsCharNamePrefix.find(rule =>
|
||||
msg.role === rule.role && (!rule.name || msg.name === rule.name) && rule.condition,
|
||||
);
|
||||
|
||||
if (matchingRule) {
|
||||
const prefix = msg.role === 'system' && msg.name === 'example_user' ? names.userName : names.charName;
|
||||
msg.content = `${prefix}: ${msg.content}`;
|
||||
}
|
||||
|
||||
delete msg.name;
|
||||
});
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge messages with the same consecutive role, removing names if they exist.
|
||||
* @param {any[]} messages Messages to merge
|
||||
|
Reference in New Issue
Block a user