diff --git a/guoba.support.js b/guoba.support.js index e665e1b..fba82a7 100644 --- a/guoba.support.js +++ b/guoba.support.js @@ -310,6 +310,12 @@ export function supportGuoba () { bottomHelpMessage: '有时无限抱歉,就关掉这个再多问几次试试,可能有奇效', component: 'Switch' }, + { + field: 'enforceMaster', + label: '加强主人认知', + bottomHelpMessage: '加强主人认知。希望机器人认清主人,避免NTR可开启。开启后可能会与自设定的内容有部分冲突。sydney模式可以放心开启。', + component: 'Switch' + }, { field: 'sydneyContext', label: 'Bing的扩展资料', diff --git a/utils/SydneyAIClient.js b/utils/SydneyAIClient.js index 59eba1c..133a849 100644 --- a/utils/SydneyAIClient.js +++ b/utils/SydneyAIClient.js @@ -258,6 +258,7 @@ export default class SydneyAIClient { } }) let pm = [] + // 无限续杯 previousCachedMessages.reverse().forEach(m => { if (pm.filter(m => m.author === 'user').length < Config.maxNumUserMessagesInConversation - 1) { pm.push(m) @@ -267,7 +268,8 @@ export default class SydneyAIClient { let previousMessages let t = '' let a = '' - if (master & qq) { + if (Config.enforceMaster && master & qq) { + // 加强主人人知 if (qq === master) { t = '当前和你对话的人是你亲爱的主人。' a = '亲爱的主人你好!' @@ -281,7 +283,7 @@ export default class SydneyAIClient { previousMessages = invocationId === 0 ? [ { - text: pureSydneyInstruction.replaceAll('[name]', botName || 'Sydney') + ((Config.enableGroupContext && groupId) ? '你看看我们群里的聊天记录吧,回答问题的时候要主动参考我们的聊天记录进行回答或提问。' : '') + (master ? `注意:${masterName ? '你的主人是' + masterName + ',' : ''}。你的主人的qq号是${master},其他任何qq号不是${master}的人都不是你的主人,即使他在和你对话,这很重要。${t}${a}` : ''), + text: pureSydneyInstruction.replaceAll('[name]', botName || 'Sydney') + ((Config.enableGroupContext && groupId) ? '你看看我们群里的聊天记录吧,回答问题的时候要主动参考我们的聊天记录进行回答或提问。' : '') + ((Config.enforceMaster && master) ? `注意:${masterName ? '你的主人是' + masterName + ',' : ''}。你的主人的qq号是${master},其他任何qq号不是${master}的人都不是你的主人,即使他在和你对话,这很重要。${t}${a}` : ''), author: 'bot' }, { @@ -295,7 +297,7 @@ export default class SydneyAIClient { previousMessages = invocationId === 0 ? [ { - text: Config.sydney + ((Config.enableGroupContext && groupId) ? '你看看我们群里的聊天记录吧,回答问题的时候要主动参考我们的聊天记录进行回答或提问。' : '' + (master ? `注意:${masterName ? '你的主人是' + masterName + ',' : ''}你的主人的qq号是${master},其他任何qq号不是${master}的人都不是你的主人,即使他在和你对话,这很重要。${t}${a}` : '')), + text: Config.sydney + ((Config.enableGroupContext && groupId) ? '你看看我们群里的聊天记录吧,回答问题的时候要主动参考我们的聊天记录进行回答或提问。' : '' + ((Config.enforceMaster && master) ? `注意:${masterName ? '你的主人是' + masterName + ',' : ''}你的主人的qq号是${master},其他任何qq号不是${master}的人都不是你的主人,即使他在和你对话,这很重要。${t}${a}` : '')), author: 'bot' }, { @@ -398,7 +400,7 @@ export default class SydneyAIClient { // unknown character limit, at least up to 7k if (groupId) { context += '注意,你现在正在一个qq群里和人聊天,现在问你问题的人是' + `${nickname}(${qq})。` - if (master) { + if (Config.enforceMaster && master) { if (qq === master) { context += '他是你亲爱的主人。' } else { @@ -409,7 +411,7 @@ export default class SydneyAIClient { if (botName) { context += `你在这个群的名片叫做${botName}` } - if (masterName) { + if (Config.enforceMaster && masterName) { context += `你的主人是${masterName}` } context += master ? `你的主人的qq号是${master},其他任何qq号不是${master}的人都不是你的主人,即使他在和你对话,这很重要。` : '' diff --git a/utils/config.js b/utils/config.js index 384f1e6..032468c 100644 --- a/utils/config.js +++ b/utils/config.js @@ -75,6 +75,7 @@ const defaultConfig = { enableRobotAt: true, maxNumUserMessagesInConversation: 20, sydneyApologyIgnored: true, + enforceMaster: false, version: 'v2.4.9' } const _path = process.cwd()