Update formatMessages.mjs

This commit is contained in:
被遗忘的记忆
2024-11-19 22:26:23 +08:00
committed by GitHub
parent fb2ab54079
commit 354bdd03f4
+8 -3
View File
@@ -163,15 +163,20 @@ function convertRoles(messages, roleFeatures) {
}); });
} }
// 替换 content 中的角色定义 // 转义正则特殊字符
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
// 替换 content 角色定义
function replaceRolesInContent(messages, roleFeatures) { function replaceRolesInContent(messages, roleFeatures) {
const { prefix } = roleFeatures; const { prefix } = roleFeatures;
// 构建角色名称列表 // 构建角色名称列表
const roles = ['System', 'Human', 'Assistant', 'system', 'human', 'user', 'assistant']; const roles = ['System', 'Human', 'Assistant', 'system', 'human', 'user', 'assistant'];
const rolePatterns = roles.map(role => { const rolePatterns = roles.map(role => {
const escapedRole = role.replace(/[\^$\\.*+?()[\]{}|]/g, '\\$&'); const escapedRole = escapeRegExp(role);
const escapedPrefix = prefix.replace(/[\^$\\.*+?()[\]{}|]/g, '\\$&'); const escapedPrefix = escapeRegExp(prefix);
return `(${escapedPrefix}?${escapedRole}:)`; return `(${escapedPrefix}?${escapedRole}:)`;
}); });
const roleRegex = new RegExp(rolePatterns.join('|'), 'g'); const roleRegex = new RegExp(rolePatterns.join('|'), 'g');