mirror of
https://github.com/Wx-2025/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 18:35:50 +00:00
2 lines
37 KiB
JavaScript
2 lines
37 KiB
JavaScript
'use strict';const _0x1cd2d7=_0xe42b;(function(_0x30ea5c,_0x4a3282){const _0x52a690=_0xe42b,_0x48f367=_0x30ea5c();while(!![]){try{const _0x6e1de7=-parseInt(_0x52a690(0x239))/0x1+parseInt(_0x52a690(0x199))/0x2*(parseInt(_0x52a690(0x183))/0x3)+-parseInt(_0x52a690(0x224))/0x4*(-parseInt(_0x52a690(0x229))/0x5)+parseInt(_0x52a690(0x176))/0x6*(-parseInt(_0x52a690(0x1a8))/0x7)+-parseInt(_0x52a690(0x1c2))/0x8+-parseInt(_0x52a690(0x195))/0x9+parseInt(_0x52a690(0x19a))/0xa;if(_0x6e1de7===_0x4a3282)break;else _0x48f367['push'](_0x48f367['shift']());}catch(_0x1c16fb){_0x48f367['push'](_0x48f367['shift']());}}}(_0x2d0a,0x28041));import{extension_prompt_roles,setExtensionPrompt}from'/script.js';import*as _0x215c17 from'./utils/context-utils.js';import{getCollectionIdInfo,getCharacterId,getCharacterStableId}from'./utils/context-utils.js';import{defaultSettings as _0x24e517}from'./rag-settings.js';import*as _0x55731b from'./ingestion-manager.js';import{getEmbeddings,fetchEmbeddingModels as _0x43083b,fetchRerankModels as _0xbd2ece,executeRerank,testApiConnection as _0x4e38d5}from'./rag-api.js';const MODULE_NAME='hanlinyuan-rag-core',OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME=_0x1cd2d7(0x230);let context=null,settings=null,lockedCollectionId=null;export{initialize,getSettings,saveSettings,resetSettings,_0x4e38d5 as testApiConnection,_0x43083b as fetchEmbeddingModels,_0xbd2ece as fetchRerankModels,getVectorCount,purgeStorage,getMessagesForCondensation,processCondensation,ingestTextToHanlinyuan,getCollectionId,toggleSessionLock,isSessionLocked,getLockedSessionInfo,addKnowledgeBase,removeKnowledgeBase,getKnowledgeBases,toggleKnowledgeBase};function initialize(){const _0x3cc720=_0x1cd2d7;context=SillyTavern[_0x3cc720(0x1e0)]();if(!context){console[_0x3cc720(0x186)](_0x3cc720(0x1b1));return;}settings=getSettings(),!window['hanlinyuanRagProcessor']&&(window[_0x3cc720(0x175)]={}),window[_0x3cc720(0x175)][_0x3cc720(0x1f1)]=rearrangeChat,window[_0x3cc720(0x175)][_0x3cc720(0x1f8)]=!![],console[_0x3cc720(0x189)](_0x3cc720(0x1d0));}async function ingestTextToHanlinyuan(_0x13c196,_0xafb920=_0x1cd2d7(0x19c),_0xe77aaa={},_0x1f81b0=()=>{},_0x1ce4a9=null,_0x5aec60=()=>{},_0x424ca0=()=>{},_0x5f4ffe=null,_0x5d8fca=0x0){const _0x1e2877=_0x1cd2d7;if(!_0x13c196||!_0x13c196[_0x1e2877(0x190)]())return{'success':![],'error':_0x1e2877(0x166)};if(!settings)return{'success':![],'error':'核心未初始化'};try{const _0x38c6ce=getCollectionIdInfo(),_0x3983f7=await _0x10bd47();if(_0x38c6ce[_0x1e2877(0x235)]&&_0x38c6ce['oldId']===_0x3983f7&&_0x38c6ce[_0x1e2877(0x235)]!==_0x38c6ce[_0x1e2877(0x164)]){const _0x579910=confirm(_0x1e2877(0x1b3));if(_0x579910)_0x5aec60(_0x1e2877(0x1de)+_0x38c6ce[_0x1e2877(0x235)],'warn'),await purgeStorage(_0x38c6ce[_0x1e2877(0x235)]),_0x5aec60(_0x1e2877(0x221),_0x1e2877(0x1c0));else return _0x5aec60('[翰林院-迁移]\x20用户取消了迁移操作。','info'),toastr['info'](_0x1e2877(0x1be)),{'success':![],'error':_0x1e2877(0x168)};}let _0x146e48,_0x196bfb;const _0x188acc=new Date()['toLocaleString'](_0x1e2877(0x23f),{'hour12':![]}),_0x36f6d6=getCharacterName()||_0x1e2877(0x1df);switch(_0xafb920){case'chat_history':const _0x1ad3ed=_0xe77aaa[_0x1e2877(0x1f4)]||{},_0x26a48a=_0x1ad3ed[_0x1e2877(0x1e9)]??'?',_0x254e16=_0x1ad3ed[_0x1e2877(0x18f)]===0x0?'末':_0x1ad3ed['end']??'?';_0x146e48=_0x36f6d6+':\x20'+_0x26a48a+'楼-'+_0x254e16+'楼';break;case _0x1e2877(0x209):const _0x1ec3ea=_0xe77aaa['bookName']||'未分类世界书',_0xc3d390=_0xe77aaa[_0x1e2877(0x211)]||_0x1e2877(0x1bf);_0x146e48=_0x1ec3ea+':\x20'+_0xc3d390;break;case _0x1e2877(0x1f3):_0x146e48=_0x1e2877(0x216)+(_0xe77aaa[_0x1e2877(0x1e3)]||_0x1e2877(0x231));break;case _0x1e2877(0x19c):default:_0x146e48=_0x1e2877(0x1d9)+_0x188acc;break;}const _0x173776=Object[_0x1e2877(0x1dd)](getKnowledgeBases()),_0x5a33e7=_0x173776[_0x1e2877(0x21f)](_0xcf0658=>_0xcf0658[_0x1e2877(0x218)]===_0x146e48);if(_0x5a33e7)_0x196bfb=_0x5a33e7['id'],_0x5aec60('[翰林院-核心]\x20检测到同名知识库\x20\x22'+_0x146e48+_0x1e2877(0x172),_0x1e2877(0x20e));else{_0x5aec60(_0x1e2877(0x1e6)+_0x146e48+_0x1e2877(0x1e1),'info');const _0x1e997a=addKnowledgeBase(_0x146e48);_0x196bfb=_0x1e997a['id'];}const _0x1fed2c=getCharacterStableId(),_0x2d1f29=_0x1fed2c+'_'+_0x196bfb;_0x5aec60('[翰林院-核心]\x20已创建并锁定知识库:\x20'+_0x146e48+_0x1e2877(0x1f9)+_0x2d1f29+')',_0x1e2877(0x1c0)),_0x5aec60('[翰林院-核心]\x20已锁定忆识宝库ID:\x20'+_0x2d1f29,_0x1e2877(0x20e)),_0x1f81b0({'message':'正在智能分块...','processed':0x0,'total':0x1});const _0x55aabf=splitIntoChunks(_0x13c196,_0xafb920,_0xe77aaa),_0x53f4d9=_0x55aabf['length'];if(_0x1ce4a9?.[_0x1e2877(0x1d2)])throw new Error(_0x1e2877(0x200));_0x5aec60(_0x1e2877(0x16c)+_0x146e48+_0x1e2877(0x1c5)+_0x53f4d9+_0x1e2877(0x1e4),'info');if(_0x53f4d9===0x0)return{'success':!![],'count':0x0};const _0x33e8ba=settings['retrieval']['batchSize']||0x5;let _0x4311f4=_0x5d8fca;for(let _0x197b41=_0x5d8fca;_0x197b41<_0x53f4d9;_0x197b41+=_0x33e8ba){if(_0x1ce4a9?.['aborted'])throw new Error('AbortError');const _0x5f3540=_0x55aabf[_0x1e2877(0x206)](_0x197b41,_0x197b41+_0x33e8ba);_0x1f81b0({'message':_0x1e2877(0x232)+(_0x197b41+0x1)+'-'+(_0x197b41+_0x5f3540[_0x1e2877(0x1fb)])+'\x20块','processed':_0x197b41,'total':_0x53f4d9});const _0x347f13=_0x5f3540[_0x1e2877(0x18d)](_0x79d61a=>_0x79d61a['text']),_0xeab248=await getEmbeddings(_0x347f13,_0x1ce4a9);if(_0x1ce4a9?.[_0x1e2877(0x1d2)])throw new Error(_0x1e2877(0x200));if(_0x5f3540[_0x1e2877(0x1fb)]!==_0xeab248['length'])throw new Error(_0x1e2877(0x1d5));const _0x4e4c4e=_0x5f3540[_0x1e2877(0x18d)]((_0x4b35fb,_0x237ba4)=>({..._0x4b35fb,'vector':_0xeab248[_0x237ba4]}));await insertVectors(_0x4e4c4e,_0x1ce4a9,_0x2d1f29),_0x4311f4+=_0x5f3540['length'],_0x5f4ffe&&_0x55731b['saveProgress'](_0x5f4ffe,_0x4311f4,_0x53f4d9),_0x424ca0();}return _0x5f4ffe&&_0x55731b[_0x1e2877(0x193)](_0x5f4ffe),_0x5aec60(_0x1e2877(0x1d3)+_0x4311f4+'\x20个向量条目。',_0x1e2877(0x1c0)),{'success':!![],'count':_0x4311f4};}catch(_0x4f8584){if(_0x4f8584[_0x1e2877(0x218)]==='AbortError'){_0x5aec60(_0x1e2877(0x1cd),'warn');throw _0x4f8584;}return console[_0x1e2877(0x186)](_0x1e2877(0x1a6),_0x4f8584),_0x5aec60(_0x1e2877(0x1f7)+_0x4f8584['message'],_0x1e2877(0x186)),{'success':![],'error':_0x4f8584[_0x1e2877(0x233)]};}}function getSettings(){const _0x575b85=_0x1cd2d7;if(!context||!context[_0x575b85(0x167)])return structuredClone(_0x24e517);let _0x635ada=context['extensionSettings'][MODULE_NAME];!_0x635ada&&(_0x635ada={},context[_0x575b85(0x167)][MODULE_NAME]=_0x635ada);_0x635ada[_0x575b85(0x1ee)]===undefined&&(_0x635ada[_0x575b85(0x1ee)]={});_0x635ada[_0x575b85(0x1ec)]===undefined&&(_0x635ada[_0x575b85(0x1ec)]={});for(const _0xa8e2c in _0x24e517){if(_0x635ada[_0xa8e2c]===undefined)_0x635ada[_0xa8e2c]=structuredClone(_0x24e517[_0xa8e2c]);else{if(typeof _0x24e517[_0xa8e2c]===_0x575b85(0x1a2)&&!Array[_0x575b85(0x223)](_0x24e517[_0xa8e2c])&&_0x24e517[_0xa8e2c]!==null)for(const _0x41624c in _0x24e517[_0xa8e2c]){_0x635ada[_0xa8e2c][_0x41624c]===undefined&&(_0x635ada[_0xa8e2c][_0x41624c]=_0x24e517[_0xa8e2c][_0x41624c]);}}}return _0x635ada;}function saveSettings(){const _0x335b69=_0x1cd2d7;if(context)context[_0x335b69(0x225)]();}function resetSettings(){const _0x2d8481=_0x1cd2d7;context&&(context[_0x2d8481(0x167)][MODULE_NAME]=structuredClone(_0x24e517),saveSettings());}function showNotification(_0x2c5299,_0x27ecfc=_0x1cd2d7(0x20e)){toastr[_0x27ecfc](_0x2c5299);}function getTagForSource(_0x1bdf27){const _0x27333c=_0x1cd2d7;switch(_0x1bdf27){case'chat_history':return _0x27333c(0x220);case'lorebook':return _0x27333c(0x1cc);case _0x27333c(0x19c):return _0x27333c(0x16a);case'novel':return _0x27333c(0x1ef);default:return'资料';}}function splitIntoChunks(_0xe44590,_0x3dbc7e,_0x1da515={}){const _0x3e1618=_0x1cd2d7;switch(_0x3dbc7e){case _0x3e1618(0x1f3):return _chunkForNovel(_0xe44590,_0x1da515);case _0x3e1618(0x16d):return _chunkForChatHistory(_0xe44590,_0x1da515);case'lorebook':return _chunkForLorebook(_0xe44590,_0x1da515);case _0x3e1618(0x19c):return _chunkForManual(_0xe44590,_0x1da515);default:console[_0x3e1618(0x22a)](_0x3e1618(0x1a1)+_0x3dbc7e+'\x27,使用通用分块逻辑。');return _chunkForManual(_0xe44590,{..._0x1da515,'sourceName':_0x1da515[_0x3e1618(0x1e3)]||_0x3e1618(0x22b)});}}function _chunkForNovel(_0x5e9d06,_0x3306be){const _0x3dd368=_0x1cd2d7,{chunkSize:_0x561e8b,overlap:_0x458acb}=settings[_0x3dd368(0x197)],{sourceName:sourceName='小说'}=_0x3306be,_0x3711d0=[];if(!_0x5e9d06||_0x561e8b<=0x0)return _0x3711d0;const _0x3cbfd3=/(第\s*[一二三四五六七八九十百千万零\d]+\s*卷)/gim,_0x32b49b=/(第\s*[一二三四五六七八九十百千万零\d]+\s*[章回节部])|^(Chapter\s+\d+)/gim;let _0x4019d6=0x0;const _0x19a95b=_0x5e9d06[_0x3dd368(0x1ca)]('\x0a');let _0x605e03=_0x3dd368(0x174),_0x3ff47d=_0x3dd368(0x19e),_0x1da6ed=[];function _0x1fc5bb(){const _0x3703f2=_0x3dd368;if(_0x1da6ed[_0x3703f2(0x1fb)]===0x0)return;const _0x4bfe8d=_0x1da6ed[_0x3703f2(0x238)]('\x0a');let _0x3bf8bb=0x0,_0x366ce6=0x1;while(_0x3bf8bb<_0x4bfe8d[_0x3703f2(0x1fb)]){const _0x268353=Math[_0x3703f2(0x1fc)](_0x3bf8bb+_0x561e8b,_0x4bfe8d[_0x3703f2(0x1fb)]),_0x53ecce=_0x4bfe8d['substring'](_0x3bf8bb,_0x268353);if(_0x53ecce[_0x3703f2(0x190)]()[_0x3703f2(0x1fb)]>0x0){const _0x52c7de={'source':'novel','sourceName':sourceName,'timestamp':new Date()[_0x3703f2(0x1bd)](),'globalIndex':_0x4019d6++,'volume':_0x605e03,'chapter':_0x3ff47d,'section':_0x366ce6},_0x4afeff=getTagForSource(_0x3703f2(0x1f3)),_0x4d6e8c=_0x3703f2(0x23a)+sourceName+',\x20'+_0x605e03+',\x20'+_0x3ff47d+_0x3703f2(0x1e7)+_0x366ce6+'节]',_0x4ca8be='<'+_0x4afeff+'>\x0a'+_0x4d6e8c+'\x0a'+_0x53ecce+_0x3703f2(0x21d)+_0x4afeff+'>';_0x3711d0[_0x3703f2(0x179)]({'text':_0x4ca8be,'metadata':_0x52c7de}),_0x366ce6++;}_0x3bf8bb+=_0x561e8b-_0x458acb;if(_0x3bf8bb>=_0x4bfe8d[_0x3703f2(0x1fb)])break;}_0x1da6ed=[];}for(const _0x474a17 of _0x19a95b){const _0x509314=_0x474a17['trim']();if(_0x3cbfd3[_0x3dd368(0x1ba)](_0x509314))_0x1fc5bb(),_0x605e03=_0x509314,_0x3ff47d='第1章';else _0x32b49b[_0x3dd368(0x1ba)](_0x509314)?(_0x1fc5bb(),_0x3ff47d=_0x509314):_0x1da6ed['push'](_0x474a17);}_0x1fc5bb();if(_0x3711d0[_0x3dd368(0x1fb)]===0x0&&_0x5e9d06[_0x3dd368(0x1fb)]>0x0){let _0x1332c4=0x0,_0x15ba3a=0x1;while(_0x1332c4<_0x5e9d06[_0x3dd368(0x1fb)]){const _0x4fa2b4=Math[_0x3dd368(0x1fc)](_0x1332c4+_0x561e8b,_0x5e9d06[_0x3dd368(0x1fb)]),_0x1e0f85=_0x5e9d06[_0x3dd368(0x23e)](_0x1332c4,_0x4fa2b4),_0x536ad3={'source':_0x3dd368(0x1f3),'sourceName':sourceName,'timestamp':new Date()[_0x3dd368(0x1bd)](),'globalIndex':_0x3711d0[_0x3dd368(0x1fb)],'volume':_0x3dd368(0x174),'chapter':_0x3dd368(0x19e),'section':_0x15ba3a},_0x445a5a=getTagForSource('novel'),_0x38626b=_0x3dd368(0x23a)+sourceName+_0x3dd368(0x202)+_0x15ba3a+'节]',_0x46e4a='<'+_0x445a5a+'>\x0a'+_0x38626b+'\x0a'+_0x1e0f85+'\x0a</'+_0x445a5a+'>';_0x3711d0['push']({'text':_0x46e4a,'metadata':_0x536ad3}),_0x15ba3a++,_0x1332c4+=_0x561e8b-_0x458acb;}}return _0x3711d0;}function _chunkForChatHistory(_0x404d0b,_0x40f426){const _0x5f39a6=_0x1cd2d7,{chunkSize:_0x9c0b7f,overlap:_0x164bfa}=settings[_0x5f39a6(0x197)],{floor:_0x34faca,is_user:_0x160a22,timestamp:_0x530b15}=_0x40f426,_0x53c9f5=[];if(!_0x404d0b||_0x9c0b7f<=0x0)return _0x53c9f5;let _0x537626=0x1,_0x27ce3c=0x0;while(_0x27ce3c<_0x404d0b[_0x5f39a6(0x1fb)]){const _0x528859=Math[_0x5f39a6(0x1fc)](_0x27ce3c+_0x9c0b7f,_0x404d0b[_0x5f39a6(0x1fb)]),_0x4fc114=_0x404d0b[_0x5f39a6(0x23e)](_0x27ce3c,_0x528859),_0x371649=_0x5f39a6(0x21e)+_0x34faca+',\x20第'+_0x537626+_0x5f39a6(0x1db),_0x1a5e4d=getTagForSource(_0x5f39a6(0x16d)),_0x5d0f7e='<'+_0x1a5e4d+'>\x0a'+_0x371649+'\x0a'+_0x4fc114+_0x5f39a6(0x21d)+_0x1a5e4d+'>';_0x53c9f5[_0x5f39a6(0x179)]({'text':_0x5d0f7e,'metadata':{'source':_0x5f39a6(0x16d),'sourceName':'聊天记录\x20#'+_0x34faca,'floor':_0x34faca,'part':_0x537626,'is_user':_0x160a22,'timestamp':_0x530b15}}),_0x537626++,_0x27ce3c+=_0x9c0b7f-_0x164bfa;if(_0x27ce3c>=_0x404d0b[_0x5f39a6(0x1fb)])break;}return _0x53c9f5;}function _0xe42b(_0x9ce9fe,_0x1dd6e2){const _0x2d0ab6=_0x2d0a();return _0xe42b=function(_0xe42b9b,_0xbaa28b){_0xe42b9b=_0xe42b9b-0x163;let _0x1d3824=_0x2d0ab6[_0xe42b9b];return _0x1d3824;},_0xe42b(_0x9ce9fe,_0x1dd6e2);}function _chunkForLorebook(_0x47894d,_0x41919c){const _0x7c55b6=_0x1cd2d7,{chunkSize:_0x3e4a47,overlap:_0x4675fd}=settings[_0x7c55b6(0x197)],{sourceName:sourceName=_0x7c55b6(0x244)}=_0x41919c,_0x52f79f=[];if(!_0x47894d||_0x3e4a47<=0x0)return _0x52f79f;let _0x4b6772=0x1,_0x1d0837=0x0;while(_0x1d0837<_0x47894d[_0x7c55b6(0x1fb)]){const _0x11fcd3=Math[_0x7c55b6(0x1fc)](_0x1d0837+_0x3e4a47,_0x47894d[_0x7c55b6(0x1fb)]),_0x5960c8=_0x47894d[_0x7c55b6(0x23e)](_0x1d0837,_0x11fcd3),_0x5789d3=_0x7c55b6(0x1c4)+sourceName+_0x7c55b6(0x1e7)+_0x4b6772+_0x7c55b6(0x1db),_0x35720f=getTagForSource(_0x7c55b6(0x209)),_0x31dc0d='<'+_0x35720f+'>\x0a'+_0x5789d3+'\x0a'+_0x5960c8+_0x7c55b6(0x21d)+_0x35720f+'>';_0x52f79f[_0x7c55b6(0x179)]({'text':_0x31dc0d,'metadata':{'source':_0x7c55b6(0x209),'sourceName':sourceName,'part':_0x4b6772,'timestamp':new Date()['toISOString']()}}),_0x4b6772++,_0x1d0837+=_0x3e4a47-_0x4675fd;if(_0x1d0837>=_0x47894d[_0x7c55b6(0x1fb)])break;}return _0x52f79f;}function _chunkForManual(_0x58890c,_0x47553d){const _0x456c9b=_0x1cd2d7,{chunkSize:_0x35840b,overlap:_0x25462a}=settings['advanced'],{sourceName:sourceName=_0x456c9b(0x16a)}=_0x47553d,_0x224924=[];if(!_0x58890c||_0x35840b<=0x0)return _0x224924;const _0x32a348=new Date(),_0x40a8da=_0x32a348[_0x456c9b(0x214)](_0x456c9b(0x23f));let _0xde0d7=0x1,_0x51b3f8=0x0;while(_0x51b3f8<_0x58890c[_0x456c9b(0x1fb)]){const _0x4d3bea=Math[_0x456c9b(0x1fc)](_0x51b3f8+_0x35840b,_0x58890c[_0x456c9b(0x1fb)]),_0x509810=_0x58890c[_0x456c9b(0x23e)](_0x51b3f8,_0x4d3bea),_0xa98a6a=_0x456c9b(0x23a)+sourceName+_0x456c9b(0x236)+_0x40a8da+_0x456c9b(0x1e7)+_0xde0d7+_0x456c9b(0x1db),_0xa71f7c=getTagForSource('manual'),_0x544476='<'+_0xa71f7c+'>\x0a'+_0xa98a6a+'\x0a'+_0x509810+'\x0a</'+_0xa71f7c+'>';_0x224924[_0x456c9b(0x179)]({'text':_0x544476,'metadata':{'source':_0x456c9b(0x19c),'sourceName':sourceName,'part':_0xde0d7,'timestamp':_0x32a348[_0x456c9b(0x1bd)]()}}),_0xde0d7++,_0x51b3f8+=_0x35840b-_0x25462a;if(_0x51b3f8>=_0x58890c[_0x456c9b(0x1fb)])break;}return _0x224924;}import{getCollectionId as _0x10bd47,getCharacterName}from'./utils/context-utils.js';async function getCollectionId(){return lockedCollectionId||await _0x10bd47();}async function toggleSessionLock(){return lockedCollectionId?(lockedCollectionId=null,![]):(lockedCollectionId=await _0x10bd47(),!![]);}function isSessionLocked(){return lockedCollectionId!==null;}function getLockedSessionInfo(){const _0x10fbc1=_0x1cd2d7;if(!lockedCollectionId)return null;return{'id':lockedCollectionId,'name':_0x10fbc1(0x219)+lockedCollectionId['substring'](0x0,0x8)+_0x10fbc1(0x1ea)};}function getKnowledgeBases(){const _0x4dcc6f=_0x1cd2d7,_0x49833e=getCharacterStableId();return!settings[_0x4dcc6f(0x1ec)][_0x49833e]&&(settings['knowledgeBases'][_0x49833e]={}),settings[_0x4dcc6f(0x1ec)][_0x49833e];}function addKnowledgeBase(_0x4955af){const _0x4639de=_0x1cd2d7;if(!_0x4955af||!_0x4955af['trim']())throw new Error(_0x4639de(0x213));const _0x55900e=getCharacterStableId(),_0x3e7f53=getKnowledgeBases(),_0x3aaa95=_0x4639de(0x242)+Date[_0x4639de(0x1ce)]()+'_'+Math[_0x4639de(0x1e5)]()[_0x4639de(0x23c)](0x24)[_0x4639de(0x23e)](0x2,0x9),_0x48175c={'id':_0x3aaa95,'name':_0x4955af['trim'](),'enabled':!![],'createdAt':new Date()[_0x4639de(0x1bd)]()};return _0x3e7f53[_0x3aaa95]=_0x48175c,saveSettings(),console[_0x4639de(0x189)](_0x4639de(0x21c)+_0x55900e+_0x4639de(0x22e)+_0x4955af+_0x4639de(0x1b2)+_0x3aaa95+')'),_0x48175c;}async function removeKnowledgeBase(_0x2b3bc0){const _0x2d08ba=_0x1cd2d7,_0x27e4cb=getCharacterStableId(),_0x12f5e7=getKnowledgeBases(),_0x353559=_0x12f5e7[_0x2b3bc0]?.[_0x2d08ba(0x218)]||_0x2b3bc0;if(!_0x12f5e7[_0x2b3bc0]){console[_0x2d08ba(0x22a)](_0x2d08ba(0x243)+_0x2b3bc0);return;}const _0x468707=_0x27e4cb+'_'+_0x2b3bc0;console['log'](_0x2d08ba(0x1bc)+_0x2b3bc0+_0x2d08ba(0x1fe)+_0x468707);const _0x3a0589=await purgeStorage(_0x468707);_0x3a0589?(delete _0x12f5e7[_0x2b3bc0],saveSettings(),console[_0x2d08ba(0x189)](_0x2d08ba(0x19f)+_0x2b3bc0+_0x2d08ba(0x215)),toastr['success'](_0x2d08ba(0x180)+_0x353559+_0x2d08ba(0x18a))):(console[_0x2d08ba(0x186)]('[翰林院-核心]\x20清空向量集合\x20'+_0x468707+_0x2d08ba(0x20d)),toastr[_0x2d08ba(0x186)]('删除知识库失败,未能清空后端数据。'));}function toggleKnowledgeBase(_0x5bcfb3){const _0x47620e=_0x1cd2d7,_0x103e85=getKnowledgeBases();_0x103e85[_0x5bcfb3]&&(_0x103e85[_0x5bcfb3]['enabled']=!_0x103e85[_0x5bcfb3][_0x47620e(0x227)],saveSettings(),console[_0x47620e(0x189)](_0x47620e(0x1d7)+_0x5bcfb3+_0x47620e(0x245)+(_0x103e85[_0x5bcfb3]['enabled']?'启用':'禁用')));}function generateHash(_0x8a08ce){const _0x3520af=_0x1cd2d7;let _0x5ed9af=0x0;for(let _0x4cc712=0x0;_0x4cc712<_0x8a08ce['length'];_0x4cc712++){const _0xd81aab=_0x8a08ce['charCodeAt'](_0x4cc712);_0x5ed9af=(_0x5ed9af<<0x5)-_0x5ed9af+_0xd81aab,_0x5ed9af=_0x5ed9af&_0x5ed9af;}return Math[_0x3520af(0x17f)](_0x5ed9af)[_0x3520af(0x23c)](0x24);}async function queryVectors(_0xf2cffa){const _0x32c3ff=_0x1cd2d7;console[_0x32c3ff(0x189)](_0x32c3ff(0x19d));const _0x5ca1d5=getCharacterStableId(),_0x2a3e98=getKnowledgeBases(),_0x50c9fa=Object[_0x32c3ff(0x1dd)](_0x2a3e98)[_0x32c3ff(0x165)](_0x177301=>_0x177301[_0x32c3ff(0x227)]);if(_0x50c9fa['length']===0x0){console['log']('[翰林院-日志]\x20没有启用的新知识库,尝试查询旧版单体宝库...');const _0x5e21e8=await _0x10bd47();if(!_0x5e21e8)return[];_0x50c9fa[_0x32c3ff(0x179)]({'id':null,'name':_0x32c3ff(0x22f)});}const _0x4ba417=(await getEmbeddings([_0xf2cffa]))[0x0];let _0x1edaca=[];const _0x37a55b=_0x50c9fa['map'](_0x5d8f7d=>{const _0x23f5ed=_0x32c3ff,_0x1abc20=_0x5d8f7d['id']===null?_0x10bd47():Promise[_0x23f5ed(0x178)](_0x5ca1d5+'_'+_0x5d8f7d['id']);return _0x1abc20[_0x23f5ed(0x23d)](_0xca9154=>{const _0x9288ca=_0x23f5ed;if(!_0xca9154)return[];console[_0x9288ca(0x189)](_0x9288ca(0x1d6)+_0x5d8f7d[_0x9288ca(0x218)]+_0x9288ca(0x1b2)+_0xca9154+')');const _0x347999={'collectionId':_0xca9154,'searchText':_0xf2cffa,'topK':settings[_0x9288ca(0x197)][_0x9288ca(0x21a)],'threshold':settings[_0x9288ca(0x197)][_0x9288ca(0x1b8)],'source':_0x9288ca(0x192),'embeddings':{[_0xf2cffa]:_0x4ba417}};return fetch('/api/vector/query',{'method':'POST','headers':context[_0x9288ca(0x182)](),'body':JSON[_0x9288ca(0x1b5)](_0x347999)})[_0x9288ca(0x23d)](async _0x4a75b3=>{const _0x13df1d=_0x9288ca;if(!_0x4a75b3['ok']){const _0x366352=await _0x4a75b3[_0x13df1d(0x18b)]();return console[_0x13df1d(0x186)]('[翰林院-日志]\x20查询知识库\x20'+_0xca9154+_0x13df1d(0x16e),_0x366352),[];}const _0x39f567=await _0x4a75b3['json'](),_0x49f45e=_0x39f567[_0x13df1d(0x1ae)]||_0x39f567[_0x13df1d(0x1d4)]||_0x39f567[_0x13df1d(0x1ff)]||[];return console[_0x13df1d(0x189)](_0x13df1d(0x204)+_0x5d8f7d[_0x13df1d(0x218)]+'\x20返回\x20'+_0x49f45e[_0x13df1d(0x1fb)]+_0x13df1d(0x237)),_0x49f45e;})['catch'](_0x1c4de8=>{const _0x5c0238=_0x9288ca;return console[_0x5c0238(0x186)](_0x5c0238(0x20c)+_0xca9154+_0x5c0238(0x1dc),_0x1c4de8),[];});});}),_0x5e9e55=await Promise[_0x32c3ff(0x18e)](_0x37a55b);_0x1edaca=_0x5e9e55['flat'](),console['log'](_0x32c3ff(0x203)+_0x1edaca[_0x32c3ff(0x1fb)]+_0x32c3ff(0x222));const _0x12a38b=[],_0x18090e=new Set();for(const _0x311584 of _0x1edaca){_0x311584&&_0x311584[_0x32c3ff(0x18b)]&&!_0x18090e[_0x32c3ff(0x234)](_0x311584[_0x32c3ff(0x18b)])&&(_0x18090e[_0x32c3ff(0x207)](_0x311584[_0x32c3ff(0x18b)]),_0x12a38b[_0x32c3ff(0x179)](_0x311584));}return console['log']('[翰林院-日志]\x20去重后剩余\x20'+_0x12a38b[_0x32c3ff(0x1fb)]+_0x32c3ff(0x237)),_0x12a38b['sort']((_0x3b4d23,_0x342a65)=>(_0x342a65[_0x32c3ff(0x210)]||0x0)-(_0x3b4d23[_0x32c3ff(0x210)]||0x0)),_0x12a38b;}async function insertVectors(_0x47c0d3,_0x19a0e1=null,_0x3beb22){const _0x4785c8=_0x1cd2d7;if(!_0x3beb22)throw new Error(_0x4785c8(0x22c));if(_0x47c0d3[_0x4785c8(0x1fb)]===0x0)return{'success':!![],'count':0x0};const _0x5dc6a2=_0x47c0d3['map']((_0x1706bf,_0x222095)=>({'hash':generateHash(_0x1706bf[_0x4785c8(0x18b)]+Date[_0x4785c8(0x1ce)]()+_0x222095),'text':_0x1706bf['text'],'metadata':_0x1706bf[_0x4785c8(0x1ae)]||{'source':_0x4785c8(0x1a7),'timestamp':new Date()[_0x4785c8(0x1bd)]()}})),_0x4747a6=_0x5dc6a2[_0x4785c8(0x17c)]((_0x4fae0a,_0xdac317,_0x320028)=>{const _0x3e0bc4=_0x4785c8;return _0x4fae0a[_0xdac317['text']]=_0x47c0d3[_0x320028][_0x3e0bc4(0x1a0)],_0x4fae0a;},{}),_0x525ff0={'collectionId':_0x3beb22,'items':_0x5dc6a2,'source':'webllm','embeddings':_0x4747a6},_0x9e9451=await fetch(_0x4785c8(0x1a3),{'method':_0x4785c8(0x1a5),'headers':context[_0x4785c8(0x182)](),'body':JSON[_0x4785c8(0x1b5)](_0x525ff0),'signal':_0x19a0e1});if(!_0x9e9451['ok']){const _0x271ce1=await _0x9e9451['text']();console[_0x4785c8(0x186)](_0x4785c8(0x217),_0x271ce1);throw new Error(_0x4785c8(0x188)+_0x9e9451[_0x4785c8(0x17d)]+':\x20'+_0x271ce1);}return{'success':!![],'count':_0x5dc6a2[_0x4785c8(0x1fb)]};}function _0x2d0a(){const _0x2df405=['score','entryName','[翰林院-核心]\x20已将\x20','知识库名称不能为空','toLocaleString','\x20及其向量数据。','小说:\x20','[翰林院-日志]\x20忆识存入API错误:','name','(已锁定:\x20','maxResults','max','[翰林院-核心]\x20已为角色\x20','\x0a</','[来源:\x20聊天记录,\x20楼层:\x20#','find','聊天记录','[翰林院-迁移]\x20旧宝库已清空。','\x20条初步结果。','isArray','12YwAMgs','saveSettingsDebounced','无法确定要清空的目标宝库。','enabled','[翰林院-迁移]\x20用户取消了迁移操作。','509740EwNzRL','warn','未知来源','insertVectors\x20必须接收一个有效的\x20collectionId\x20参数。','position','\x20添加新知识库:\x20','旧版宝库\x20(Legacy)','vectors_rearrangeChat','未知小说','正在处理\x20','message','has','oldId',',\x20向量化录入时间:\x20','\x20条结果。','join','225845BmuiXF','[来源:\x20','getTime','toString','then','substring','zh-CN','凝识之权未开启','[翰林院-日志]\x20开始获取所有知识库的向量总数...','task_','[翰林院-核心]\x20尝试删除一个不存在的知识库:\x20','世界书条目','\x20的状态已切换为:\x20','template','newId','filter','输入文本为空','extensionSettings','用户取消了迁移操作','[翰林院-核心]\x20processCondensation\x20失败:','手动录入','hashes','[翰林院-核心]\x20将来源\x27','chat_history','\x20失败:','\x20列表API时出现问题\x20(状态:\x20','\x20个知识块,准备入库。','depth_role','\x22,将数据合并入库。','replace','第1卷','hanlinyuanRagProcessor','468htzCat','[翰林院-日志]\x20统计集合\x20','resolve','push','HANLINYUAN_RAG','[翰林院]\x20检索或注入时发生错误:','reduce','status','[翰林院-日志]\x20所有知识库统计完成,总向量数:\x20','abs','知识库\x20\x22','rerank_score','getRequestHeaders','273543liwlRU','[翰林院-迁移]\x20旧宝库已清空,将向新宝库写入数据:\x20','No\x20messages\x20to\x20process.','error','floor','忆识存入API错误\x20','log','\x22\x20已删除。','text','\x20个条目。','map','all','end','trim','messageTypes','webllm','clearJob','rerank','2644641ZsHaIa','findIndex','advanced','hybrid_alpha','2kCHOlk','7463690gPOYTv','[翰林院-日志]\x20清空宝库API调用成功。','manual','[翰林院-日志]\x20开始多知识库向量查询...','第1章','[翰林院-核心]\x20成功删除知识库\x20','vector','[翰林院-分块]\x20未知的来源类型\x20\x27','object','/api/vector/insert','retrieval','POST','[翰林院-核心]\x20ingestTextToHanlinyuan\x20失败:','unknown','13748buXiDW','batchSize','/api/vector/purge','quiet','final_score','[翰林院-核心]\x20聊天记录凝识完成,成功插入\x20','metadata','/api/vector/list','warning','[翰林院]\x20未能获取SillyTavern上下文,初始化失败。','\x20(ID:\x20','检测到旧版数据。此操作将把旧数据迁移到新格式,过程不可逆,是否继续?','[翰林院-日志]\x20获取集合\x20','stringify','[翰林院-核心]\x20聊天记录凝识失败:\x20','send_date','matchThreshold','{{text}}','test','mes','[翰林院-核心]\x20准备删除知识库\x20','toISOString','操作已取消。','未知条目','success','forEach','2452824KEJXVw','original_index','[来源:\x20世界书,\x20条目:\x20','\x27的文本分割成\x20','[翰林院-日志]\x20清空宝库API错误:','外部Rerank完成','[翰林院-日志]\x20集合\x20','Rerank失败:\x20','split','[翰林院-Rerank]\x20开始元数据加权最终排序...','世界书','[翰林院-核心]\x20文本录入任务被用户中止。','now','top_n','翰林院忆识核心已启动\x20(V5.2-集成版),已注册到全局\x20hanlinyuanRagProcessor\x20对象。','notify','aborted','[翰林院-核心]\x20成功插入\x20','results','文本块和向量数量不匹配','[翰林院-日志]\x20正在查询知识库:\x20','[翰林院-核心]\x20知识库\x20','queryMessageCount','手动录入:\x20','injection','部分]','\x20时发生网络错误:','values','[翰林院-迁移]\x20用户确认迁移,正在处理旧宝库:\x20','未知角色','getContext','\x22\x20创建专属知识库...','depth','sourceName','\x20个块。','random','[翰林院-核心]\x20准备为任务\x20\x22',',\x20第','[翰林院-日志]\x20统计目标集合ID:\x20','start','...)','\x20条消息分解为\x20','knowledgeBases','此操作将清空旧版数据,并开始使用新版数据库。此过程不可逆,是否继续?','condensationHistory','小说录入','sort','rearrangeChat','忆识检索失败:\x20','novel','range','chat','[翰林院-迁移]\x20用户确认迁移,正在清空旧宝库:\x20','[翰林院-核心]\x20文本录入失败:\x20','initialized','\x20(集合ID:\x20','is_user','length','min','condensation',',将清空集合:\x20','data','AbortError',']\x20的消息已成功凝识。',',\x20第1卷,\x20第1章,\x20第','[翰林院-日志]\x20所有知识库查询完毕,共获得\x20','[翰林院-日志]\x20知识库\x20','[翰林院-核心]\x20凝识任务已锁定忆识宝库ID:\x20','slice','add','user','lorebook','relevance_score','json','[翰林院-日志]\x20查询知识库\x20','\x20失败,删除操作中止。','info','[翰林院-Rerank]\x20元数据加权排序完成。'];_0x2d0a=function(){return _0x2df405;};return _0x2d0a();}async function getVectorCount(_0x369aa3=null){const _0x1b171a=_0x1cd2d7,_0x208488=getCharacterStableId();if(_0x369aa3){const _0x28b8a7=_0x208488+'_'+_0x369aa3;return await countVectorsInCollection(_0x28b8a7);}else{console[_0x1b171a(0x189)](_0x1b171a(0x241));const _0x1edab4=getKnowledgeBases(),_0x36f34f=Object[_0x1b171a(0x1dd)](_0x1edab4),_0x5c4e2e=_0x36f34f[_0x1b171a(0x18d)](_0x344642=>{const _0x281220=_0x208488+'_'+_0x344642['id'];return countVectorsInCollection(_0x281220);}),_0x45ee16=await _0x10bd47();_0x5c4e2e[_0x1b171a(0x179)](countVectorsInCollection(_0x45ee16));const _0x4f5fa1=await Promise[_0x1b171a(0x18e)](_0x5c4e2e),_0x3fbdea=_0x4f5fa1[_0x1b171a(0x17c)]((_0x3feaf1,_0x516240)=>_0x3feaf1+_0x516240,0x0);return console[_0x1b171a(0x189)](_0x1b171a(0x17e)+_0x3fbdea),_0x3fbdea;}}async function countVectorsInCollection(_0x4fe12f){const _0x2f5ec7=_0x1cd2d7;if(!_0x4fe12f)return 0x0;console[_0x2f5ec7(0x189)](_0x2f5ec7(0x1e8)+_0x4fe12f);const _0x3d64bb={'collectionId':_0x4fe12f,'source':'webllm','embeddings':{}};try{const _0x564c2d=await fetch(_0x2f5ec7(0x1af),{'method':_0x2f5ec7(0x1a5),'headers':context['getRequestHeaders'](),'body':JSON[_0x2f5ec7(0x1b5)](_0x3d64bb)});if(!_0x564c2d['ok']){if(_0x564c2d['status']===0x194)console[_0x2f5ec7(0x189)](_0x2f5ec7(0x1c8)+_0x4fe12f+'\x20不存在,计为\x200。');else{const _0x49143=await _0x564c2d[_0x2f5ec7(0x18b)]();console[_0x2f5ec7(0x22a)](_0x2f5ec7(0x1b4)+_0x4fe12f+_0x2f5ec7(0x16f)+_0x564c2d['status']+'):',_0x49143);}return 0x0;}const _0x37edf7=await _0x564c2d[_0x2f5ec7(0x20b)]();let _0x1643c9=0x0;if(Array['isArray'](_0x37edf7))_0x1643c9=_0x37edf7['length'];else _0x37edf7&&_0x37edf7[_0x2f5ec7(0x16b)]&&(_0x1643c9=_0x37edf7[_0x2f5ec7(0x16b)][_0x2f5ec7(0x1fb)]);return _0x1643c9;}catch(_0x3e3096){return console[_0x2f5ec7(0x186)](_0x2f5ec7(0x177)+_0x4fe12f+_0x2f5ec7(0x1dc),_0x3e3096),0x0;}}async function purgeStorage(_0x341cb7=null){const _0x237803=_0x1cd2d7;console[_0x237803(0x189)]('[翰林院-日志]\x20开始清空宝库...');const _0x507332=_0x341cb7||await getCollectionId();if(!_0x507332)return console[_0x237803(0x186)]('[翰林院-日志]\x20无法确定要清空的目标集合ID。'),toastr[_0x237803(0x186)](_0x237803(0x226)),![];console[_0x237803(0x189)]('[翰林院-日志]\x20清空目标集合ID:\x20'+_0x507332);const _0x1f6b40={'collectionId':_0x507332};console[_0x237803(0x189)]('[翰林院-日志]\x20发送到\x20/api/vector/purge\x20的请求体:',JSON[_0x237803(0x1b5)](_0x1f6b40,null,0x2));const _0x1a8c81=await fetch(_0x237803(0x1aa),{'method':_0x237803(0x1a5),'headers':context['getRequestHeaders'](),'body':JSON[_0x237803(0x1b5)](_0x1f6b40)});console[_0x237803(0x189)]('[翰林院-日志]\x20/api/vector/purge\x20响应状态:\x20'+_0x1a8c81[_0x237803(0x17d)]);if(!_0x1a8c81['ok']){const _0x2faab6=await _0x1a8c81[_0x237803(0x18b)]();console[_0x237803(0x186)](_0x237803(0x1c6),_0x2faab6);}else console[_0x237803(0x189)](_0x237803(0x19b));return _0x1a8c81['ok'];}function getMessagesForCondensation(_0x5e0637=null){const _0x31a997=_0x1cd2d7;if(!settings[_0x31a997(0x1fd)][_0x31a997(0x227)])return showNotification(_0x31a997(0x240),_0x31a997(0x1b0)),[];const {layerStart:_0x53c5a3,layerEnd:_0x4d5568}=settings[_0x31a997(0x1fd)],_0x564199=_0x5e0637||settings[_0x31a997(0x1fd)][_0x31a997(0x191)],_0x565f0a=context[_0x31a997(0x1f5)][_0x31a997(0x1fb)],_0x1a5715=Math[_0x31a997(0x21b)](0x0,_0x53c5a3-0x1),_0xa548b5=_0x4d5568===0x0||_0x4d5568>_0x565f0a?_0x565f0a:Math['min'](_0x565f0a,_0x4d5568),_0x3fb365=context['chat'][_0x31a997(0x206)](_0x1a5715,_0xa548b5);return _0x3fb365[_0x31a997(0x165)](_0x495f4b=>{const _0xe92d82=_0x31a997,_0x3c5e44=_0x495f4b[_0xe92d82(0x1fa)]===!![],_0x53c878=_0x495f4b['is_user']===![];if(!_0x495f4b[_0xe92d82(0x1bb)]||!_0x495f4b[_0xe92d82(0x1bb)]['trim']())return![];return _0x564199[_0xe92d82(0x208)]&&_0x3c5e44||_0x564199['ai']&&_0x53c878;});}async function processCondensation(_0x43094a,_0x7078cb=()=>{},_0x465b65=null){const _0x34f96e=_0x1cd2d7;if(!_0x43094a||_0x43094a[_0x34f96e(0x1fb)]===0x0)return{'success':![],'error':_0x34f96e(0x185)};try{let _0x1c9cda=await getCollectionId();const _0x17b7bc=getCollectionIdInfo();if(_0x17b7bc[_0x34f96e(0x235)]&&_0x17b7bc[_0x34f96e(0x235)]===_0x1c9cda&&_0x17b7bc[_0x34f96e(0x235)]!==_0x17b7bc[_0x34f96e(0x164)]){const _0x2a2f3a=confirm(_0x34f96e(0x1ed));if(_0x2a2f3a)_0x7078cb(_0x34f96e(0x1f6)+_0x17b7bc[_0x34f96e(0x235)],'warn'),await purgeStorage(_0x17b7bc[_0x34f96e(0x235)]),_0x1c9cda=_0x17b7bc[_0x34f96e(0x164)],_0x7078cb(_0x34f96e(0x184)+_0x1c9cda,_0x34f96e(0x1c0));else return _0x7078cb(_0x34f96e(0x228),'info'),toastr['info'](_0x34f96e(0x1be)),{'success':![],'error':_0x34f96e(0x168)};}if(!_0x1c9cda)throw new Error('无法确定当前忆识宝库的ID,请确认角色已正确加载。');_0x7078cb(_0x34f96e(0x205)+_0x1c9cda,_0x34f96e(0x20e));const _0x32fe23=[],_0x2ea4f7=context['chat'];for(const _0x148b12 of _0x43094a){const _0x2a879d=(_0x148b12[_0x34f96e(0x1bb)]||'')[_0x34f96e(0x173)](/<[^>]*>/g,'')[_0x34f96e(0x190)]();if(_0x2a879d['length']===0x0)continue;let _0x294a41;if(_0x148b12['floor']!==undefined&&_0x148b12[_0x34f96e(0x187)]!==null)_0x294a41=_0x148b12[_0x34f96e(0x187)];else{const _0x3bdd79=_0x2ea4f7[_0x34f96e(0x196)](_0x1e83a4=>_0x1e83a4===_0x148b12);_0x294a41=_0x3bdd79!==-0x1?_0x3bdd79+0x1:-0x1;}const _0x59698f=new Date(_0x148b12[_0x34f96e(0x1b7)]),_0x2b58ea=isNaN(_0x59698f[_0x34f96e(0x23b)]())?new Date()['toISOString']():_0x59698f[_0x34f96e(0x1bd)](),_0x2cdf38=splitIntoChunks(_0x2a879d,'chat_history',{'floor':_0x294a41,'is_user':_0x148b12['is_user'],'timestamp':_0x2b58ea});_0x32fe23['push'](..._0x2cdf38);}if(_0x32fe23[_0x34f96e(0x1fb)]===0x0)return{'success':!![],'count':0x0};_0x7078cb(_0x34f96e(0x212)+_0x43094a[_0x34f96e(0x1fb)]+_0x34f96e(0x1eb)+_0x32fe23['length']+_0x34f96e(0x170),_0x34f96e(0x20e));const _0xdadc2f=settings['retrieval'][_0x34f96e(0x1a9)]||0x5;let _0x9d5173=0x0;for(let _0x4332c6=0x0;_0x4332c6<_0x32fe23[_0x34f96e(0x1fb)];_0x4332c6+=_0xdadc2f){const _0x19ab6f=_0x32fe23['slice'](_0x4332c6,_0x4332c6+_0xdadc2f),_0x4b7a0a=_0x19ab6f[_0x34f96e(0x18d)](_0x412603=>_0x412603[_0x34f96e(0x18b)]),_0x2cb943=await getEmbeddings(_0x4b7a0a);if(_0x19ab6f[_0x34f96e(0x1fb)]!==_0x2cb943[_0x34f96e(0x1fb)])throw new Error(_0x34f96e(0x1d5));const _0x8d3a2d=_0x19ab6f[_0x34f96e(0x18d)]((_0x3f3e45,_0xb7945)=>({..._0x3f3e45,'vector':_0x2cb943[_0xb7945]}));await insertVectors(_0x8d3a2d,null,_0x1c9cda),_0x9d5173+=_0x19ab6f[_0x34f96e(0x1fb)];}if(_0x465b65){const _0x1d3e0d=_0x465b65[_0x34f96e(0x18f)]===0x0?context[_0x34f96e(0x1f5)][_0x34f96e(0x1fb)]:_0x465b65[_0x34f96e(0x18f)];settings[_0x34f96e(0x1ee)][_0x1c9cda]={'start':_0x465b65['start'],'end':_0x1d3e0d,'timestamp':new Date()['toISOString']()},saveSettings(),_0x7078cb('[翰林院-核心]\x20已为宝库\x20'+_0x1c9cda+'\x20记录凝识范围:\x20'+_0x465b65['start']+'-'+_0x1d3e0d,'info');}_0x7078cb(_0x34f96e(0x1ad)+_0x9d5173+_0x34f96e(0x18c),_0x34f96e(0x1c0));const _0x5ac0f5=_0x43094a['map'](_0x10c218=>{const _0x4ab48d=_0x34f96e,_0x5be428=_0x2ea4f7[_0x4ab48d(0x196)](_0x180678=>_0x180678===_0x10c218),_0x24a4ca=_0x5be428!==-0x1?_0x5be428+0x1:-0x1,_0x465e83=_0x10c218['is_user']?'用户':getCharacterName()||'AI';return'['+_0x465e83+'\x20-\x20楼层\x20#'+_0x24a4ca+_0x4ab48d(0x201);});return{'success':!![],'count':_0x9d5173,'messages':_0x5ac0f5};}catch(_0x35cc8e){return console['error'](_0x34f96e(0x169),_0x35cc8e),_0x7078cb(_0x34f96e(0x1b6)+_0x35cc8e[_0x34f96e(0x233)],_0x34f96e(0x186)),{'success':![],'error':_0x35cc8e[_0x34f96e(0x233)]};}}async function rerankResults(_0x2554b4,_0x4268da,_0x5c732e){const _0x59349f=_0x1cd2d7;let _0x2f7038=_0x2554b4;if(_0x5c732e[_0x59349f(0x194)][_0x59349f(0x227)]&&_0x2554b4[_0x59349f(0x1fb)]>0x0){console[_0x59349f(0x189)]('[翰林院-Rerank]\x20开始外部API重排序...');try{const _0x462b7d=_0x2554b4[_0x59349f(0x18d)](_0x3a2734=>_0x3a2734[_0x59349f(0x18b)]),_0x45e35f=await executeRerank(_0x4268da,_0x462b7d,_0x5c732e[_0x59349f(0x194)]),_0x246dc2=_0x2554b4['map']((_0x5cc7c8,_0x558107)=>({..._0x5cc7c8,'original_index':_0x558107}));_0x2f7038=_0x246dc2['map'](_0x1745ad=>{const _0x52020d=_0x59349f,_0x4a05d1=_0x45e35f['results'][_0x52020d(0x21f)](_0x5cad77=>_0x5cad77['index']===_0x1745ad[_0x52020d(0x1c3)]),_0x465164=_0x4a05d1?_0x4a05d1[_0x52020d(0x20a)]:0x0;return{..._0x1745ad,'rerank_score':_0x465164};});if(_0x5c732e[_0x59349f(0x194)][_0x59349f(0x1d1)])showNotification(_0x59349f(0x1c7),'success');}catch(_0x1a191a){console[_0x59349f(0x186)]('[翰林院-Rerank]\x20外部Rerank失败,将仅使用内部加权。',_0x1a191a);if(_0x5c732e[_0x59349f(0x194)][_0x59349f(0x1d1)])showNotification(_0x59349f(0x1c9)+_0x1a191a[_0x59349f(0x233)],_0x59349f(0x186));_0x2f7038[_0x59349f(0x1c1)](_0x5a5894=>_0x5a5894[_0x59349f(0x181)]=0x0);}}else _0x2f7038[_0x59349f(0x1c1)](_0x4208e7=>_0x4208e7[_0x59349f(0x181)]=0x0);console[_0x59349f(0x189)](_0x59349f(0x1cb));const _0x207fb0=context[_0x59349f(0x1f5)][_0x59349f(0x1fb)],_0x4c9976=_0x5c732e[_0x59349f(0x194)][_0x59349f(0x198)],_0x5326ab=_0x2f7038[_0x59349f(0x18d)](_0x273ae6=>{const _0x2207eb=_0x59349f;let _0xf342cf=0x1;const _0x2f89c2=_0x273ae6[_0x2207eb(0x1ae)]||{};switch(_0x2f89c2['source']){case _0x2207eb(0x209):_0xf342cf*=1.2;break;case'manual':_0xf342cf*=1.1;break;case _0x2207eb(0x16d):if(_0x2f89c2['floor']&&_0x207fb0>0x0){const _0x3a657e=_0x2f89c2['floor']/_0x207fb0;_0xf342cf*=0x1+_0x3a657e;}break;}const _0x460a88=_0x273ae6[_0x2207eb(0x181)]*_0x4c9976+(_0x273ae6[_0x2207eb(0x210)]||0x0)*(0x1-_0x4c9976),_0x1bc6b8=_0x460a88*_0xf342cf;return{..._0x273ae6,'final_score':_0x1bc6b8};});return _0x5326ab[_0x59349f(0x1f0)]((_0x408119,_0x57e1cb)=>(_0x57e1cb[_0x59349f(0x1ac)]||0x0)-(_0x408119[_0x59349f(0x1ac)]||0x0)),console[_0x59349f(0x189)](_0x59349f(0x20f)),_0x5326ab['slice'](0x0,_0x5c732e[_0x59349f(0x194)][_0x59349f(0x1cf)]);}async function rearrangeChat(_0x17d5c1,_0x3daa7c,_0x2be9ae,_0x57dcf5){const _0x507016=_0x1cd2d7;setExtensionPrompt(_0x507016(0x17a),'',settings['injection'][_0x507016(0x22d)],settings[_0x507016(0x1da)][_0x507016(0x1e2)],![],settings['injection'][_0x507016(0x171)]);if(_0x57dcf5===_0x507016(0x1ab)||!settings[_0x507016(0x1a4)][_0x507016(0x227)])return;const _0x1488eb=_0x17d5c1['slice'](-settings[_0x507016(0x197)][_0x507016(0x1d8)]);if(_0x1488eb[_0x507016(0x1fb)]===0x0)return;const _0x230ee2=_0x1488eb[_0x507016(0x18d)](_0x40ac66=>_0x40ac66['mes'])['join']('\x20')[_0x507016(0x173)](/<[^>]*>/g,'')['trim']();if(!_0x230ee2)return;try{const _0x4ac066=await queryVectors(_0x230ee2);if(_0x4ac066[_0x507016(0x1fb)]===0x0)return;const _0x2e159b=await rerankResults(_0x4ac066,_0x230ee2,settings);if(_0x2e159b['length']===0x0)return;const _0x5a9f79=_0x2e159b[_0x507016(0x18d)](_0x41b003=>_0x41b003[_0x507016(0x18b)])[_0x507016(0x238)]('\x0a\x0a');let _0x5c3fe1=settings[_0x507016(0x1da)][_0x507016(0x163)][_0x507016(0x173)](_0x507016(0x1b9),_0x5a9f79);_0x5c3fe1[_0x507016(0x190)]()&&(_0x5c3fe1='%%HANLINYUAN_RAG_INJECTION%%'+_0x5c3fe1),setExtensionPrompt(_0x507016(0x17a),_0x5c3fe1,settings[_0x507016(0x1da)][_0x507016(0x22d)],settings['injection'][_0x507016(0x1e2)],![],settings[_0x507016(0x1da)]['depth_role']);}catch(_0x5bed2a){console[_0x507016(0x186)](_0x507016(0x17b),_0x5bed2a);if(settings[_0x507016(0x1a4)][_0x507016(0x1d1)])showNotification(_0x507016(0x1f2)+_0x5bed2a[_0x507016(0x233)],_0x507016(0x186));}}
|