Substitute params with addl. macro

This commit is contained in:
Cohee 2024-06-15 01:22:15 +03:00
parent 5cb319771d
commit 2aa8564522
1 changed files with 16 additions and 1 deletions

View File

@ -2317,6 +2317,16 @@ export function scrollChatToBottom() {
}
}
/**
* Substitutes {{macro}} parameters in a string.
* @param {string} content - The string to substitute parameters in.
* @param {Record<string,any>} additionalMacro - Additional environment variables for substitution.
* @returns {string} The string with substituted parameters.
*/
export function substituteParamsExtended(content, additionalMacro) {
return substituteParams(content, undefined, undefined, undefined, undefined, true, additionalMacro);
}
/**
* Substitutes {{macro}} parameters in a string.
* @param {string} content - The string to substitute parameters in.
@ -2325,9 +2335,10 @@ export function scrollChatToBottom() {
* @param {string} [_original] - The original message for {{original}} substitution.
* @param {string} [_group] - The group members list for {{group}} substitution.
* @param {boolean} [_replaceCharacterCard] - Whether to replace character card macros.
* @param {Record<string,any>} [additionalMacro] - Additional environment variables for substitution.
* @returns {string} The string with substituted parameters.
*/
export function substituteParams(content, _name1, _name2, _original, _group, _replaceCharacterCard = true) {
export function substituteParams(content, _name1, _name2, _original, _group, _replaceCharacterCard = true, additionalMacro = {}) {
const environment = {};
if (typeof _original === 'string') {
@ -2377,6 +2388,10 @@ export function substituteParams(content, _name1, _name2, _original, _group, _re
environment.group = environment.charIfNotGroup = getGroupValue();
environment.model = getGeneratingModel();
if (additionalMacro && typeof additionalMacro === 'object') {
Object.assign(environment, additionalMacro);
}
return evaluateMacros(content, environment);
}