Files
ST-Amily2-Chat-Optimisation/core/rag-processor.js
2025-08-31 19:52:28 +08:00

2 lines
37 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
'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));}}