mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 20:35:51 +00:00
2 lines
62 KiB
JavaScript
2 lines
62 KiB
JavaScript
'use strict';const _0x1f6706=_0x21b6;(function(_0x5025a9,_0x46976e){const _0xac7039=_0x21b6,_0x54c3f0=_0x5025a9();while(!![]){try{const _0xf6e7ae=-parseInt(_0xac7039(0x2ef))/0x1+-parseInt(_0xac7039(0x231))/0x2+parseInt(_0xac7039(0x31c))/0x3+-parseInt(_0xac7039(0x2cc))/0x4+-parseInt(_0xac7039(0x2a8))/0x5*(-parseInt(_0xac7039(0x251))/0x6)+parseInt(_0xac7039(0x218))/0x7+-parseInt(_0xac7039(0x332))/0x8*(-parseInt(_0xac7039(0x272))/0x9);if(_0xf6e7ae===_0x46976e)break;else _0x54c3f0['push'](_0x54c3f0['shift']());}catch(_0x343827){_0x54c3f0['push'](_0x54c3f0['shift']());}}}(_0x213b,0x7c96b));import{extension_prompt_roles,setExtensionPrompt,eventSource,event_types}from'/script.js';import*as _0x1d5b5a from'./utils/context-utils.js';import{getCollectionIdInfo,getCharacterId,getCharacterStableId}from'./utils/context-utils.js';import{defaultSettings as _0x5d048b}from'./rag-settings.js';import{extractBlocksByTags,applyExclusionRules}from'./utils/rag-tag-extractor.js';import*as _0x4f1b20 from'./ingestion-manager.js';import{getEmbeddings,fetchEmbeddingModels as _0x4fe4b8,fetchRerankModels as _0x3706a5,executeRerank,testApiConnection as _0x371108}from'./rag-api.js';import{superSort}from'./super-sorter.js';import{executeGraphRetrieval}from'./relationship-graph/executor.js';import{initializeArchiveManager}from'./archive-manager.js';const MODULE_NAME=_0x1f6706(0x208),OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME='vectors_rearrangeChat',GLOBAL_SCOPE_ID=_0x1f6706(0x2f3);let context=null,settings=null,lockedCollectionId=null;function filterWorldbooks(_0x1c2cb8,_0x3c42af){const _0x182ae6=_0x1f6706;if(!_0x1c2cb8||!_0x1c2cb8[_0x182ae6(0x299)]())return _0x3c42af;const _0x32dc77=_0x1c2cb8[_0x182ae6(0x1f3)]()[_0x182ae6(0x299)]();return _0x3c42af[_0x182ae6(0x29e)](_0x45598c=>{const _0x39089d=_0x182ae6;return _0x45598c['toLowerCase']()[_0x39089d(0x27f)](_0x32dc77)||containsPinyinMatch(_0x45598c,_0x32dc77);});}function filterWorldbookEntries(_0x29ba40,_0x31c91c){const _0x33e185=_0x1f6706;if(!_0x29ba40||!_0x29ba40[_0x33e185(0x299)]())return _0x31c91c;const _0x4a7f22=_0x29ba40[_0x33e185(0x1f3)]()[_0x33e185(0x299)]();return _0x31c91c[_0x33e185(0x29e)](_0x292b63=>{const _0x4c893e=_0x33e185,_0x51881f=[_0x292b63[_0x4c893e(0x2d4)]||'',_0x292b63[_0x4c893e(0x26f)]||'',_0x292b63[_0x4c893e(0x2fa)]||''][_0x4c893e(0x324)]('\x20')[_0x4c893e(0x1f3)]();return _0x51881f[_0x4c893e(0x27f)](_0x4a7f22)||containsPinyinMatch(_0x292b63[_0x4c893e(0x2d4)]||'',_0x4a7f22);});}function containsPinyinMatch(_0x29d4ca,_0x3e435a){const _0x1f1f7a=_0x1f6706,_0x17ec2f={'世界书':_0x1f1f7a(0x267),'条目':_0x1f1f7a(0x27c),'编纂':_0x1f1f7a(0x30a),'搜索':_0x1f1f7a(0x305)},_0x25e3e8=_0x17ec2f[_0x29d4ca];return _0x25e3e8&&_0x25e3e8[_0x1f1f7a(0x27f)](_0x3e435a);}function highlightSearchMatch(_0xb2c5c3,_0x5886ad){const _0x54fd71=_0x1f6706;if(!_0x5886ad||!_0x5886ad[_0x54fd71(0x299)]())return _0xb2c5c3;const _0x2b92f2=new RegExp('('+_0x5886ad[_0x54fd71(0x2c4)](/[.*+?^${}()|[\]\\]/g,_0x54fd71(0x247))+')','gi');return _0xb2c5c3[_0x54fd71(0x2c4)](_0x2b92f2,_0x54fd71(0x2c5));}function debounce(_0x15d7ea,_0x11ab3f){let _0x292b86;return function _0x3f26e3(..._0x4eab2e){const _0x4f2d7d=()=>{clearTimeout(_0x292b86),_0x15d7ea(..._0x4eab2e);};clearTimeout(_0x292b86),_0x292b86=setTimeout(_0x4f2d7d,_0x11ab3f);};}export{initialize,getSettings,saveSettings,resetSettings,_0x371108 as testApiConnection,_0x4fe4b8 as fetchEmbeddingModels,_0x3706a5 as fetchRerankModels,getVectorCount,purgeStorage,getMessagesForCondensation,processCondensation,ingestTextToHanlinyuan,getCollectionId,toggleSessionLock,isSessionLocked,getLockedSessionInfo,addKnowledgeBase,removeKnowledgeBase,getLocalKnowledgeBases,getGlobalKnowledgeBases,toggleKnowledgeBase,moveKnowledgeBase,filterWorldbooks,filterWorldbookEntries,highlightSearchMatch,debounce,renameKnowledgeBase};function initialize(){const _0xcb9a33=_0x1f6706;context=SillyTavern[_0xcb9a33(0x225)]();if(!context){console[_0xcb9a33(0x28e)]('[翰林院]\x20未能获取SillyTavern上下文,初始化失败。');return;}settings=getSettings(),!window[_0xcb9a33(0x269)]&&(window[_0xcb9a33(0x269)]={}),window['hanlinyuanRagProcessor'][_0xcb9a33(0x219)]=rearrangeChat,window['hanlinyuanRagProcessor']['initialized']=!![],eventSource['on'](event_types[_0xcb9a33(0x28c)],handleAutoCondensation),initializeArchiveManager(),console[_0xcb9a33(0x309)](_0xcb9a33(0x286));}async function ingestTextToHanlinyuan(_0x1d4c29,_0x4a113f=_0x1f6706(0x318),_0x5f0201={},_0x2d15b8=()=>{},_0x1ec601=null,_0x253f42=()=>{},_0x479853=()=>{},_0x411f16=null,_0x4a46b6=0x0){const _0x25ad59=_0x1f6706;if(!_0x1d4c29||!_0x1d4c29[_0x25ad59(0x299)]())return{'success':![],'error':_0x25ad59(0x25b)};if(!settings)return{'success':![],'error':_0x25ad59(0x2c3)};try{const _0x40f233=getCollectionIdInfo(),_0x272add=await _0x471883();if(_0x40f233['oldId']&&_0x40f233[_0x25ad59(0x313)]===_0x272add&&_0x40f233[_0x25ad59(0x313)]!==_0x40f233['newId']){const _0x2b4b0a=confirm(_0x25ad59(0x337));if(_0x2b4b0a)_0x253f42(_0x25ad59(0x236)+_0x40f233['oldId'],'warn'),await purgeStorage(_0x40f233['oldId']),_0x253f42(_0x25ad59(0x2b8),_0x25ad59(0x1f1));else return _0x253f42(_0x25ad59(0x2d5),_0x25ad59(0x2ad)),toastr[_0x25ad59(0x2ad)]('操作已取消。'),{'success':![],'error':_0x25ad59(0x32b)};}let _0x4fbf2c,_0x30c581;const _0x2df935=new Date()[_0x25ad59(0x293)](_0x25ad59(0x2eb),{'hour12':![]}),_0x437b8f=getCharacterName()||_0x25ad59(0x2cf);switch(_0x4a113f){case _0x25ad59(0x2a6):const _0x217b8c=_0x5f0201[_0x25ad59(0x26c)]||{},_0x2aa0f3=_0x217b8c['start']??'?',_0xc57ebf=_0x217b8c[_0x25ad59(0x2dd)]===0x0?'末':_0x217b8c[_0x25ad59(0x2dd)]??'?';_0x4fbf2c=_0x437b8f+':\x20'+_0x2aa0f3+'楼-'+_0xc57ebf+'楼';break;case _0x25ad59(0x310):const _0x30fbfb=_0x5f0201[_0x25ad59(0x1fe)]||'未分类世界书';if(_0x5f0201[_0x25ad59(0x1f5)]&&_0x5f0201[_0x25ad59(0x1f5)]['includes'](_0x25ad59(0x316)))_0x5f0201[_0x25ad59(0x1f5)]=_0x25ad59(0x246);else _0x5f0201[_0x25ad59(0x1f5)]&&_0x5f0201[_0x25ad59(0x1f5)][_0x25ad59(0x27f)](_0x25ad59(0x29b))&&(_0x5f0201[_0x25ad59(0x1f5)]=_0x25ad59(0x2de));const _0x39adc8=_0x5f0201[_0x25ad59(0x1f5)]||_0x25ad59(0x250);_0x4fbf2c=_0x30fbfb+':\x20'+_0x39adc8;break;case _0x25ad59(0x2e3):_0x4fbf2c=_0x25ad59(0x296)+(_0x5f0201[_0x25ad59(0x1fc)]||_0x25ad59(0x22c));break;case'manual':default:_0x4fbf2c='手动录入:\x20'+_0x2df935;break;}const _0x186e1a=Object[_0x25ad59(0x2e4)](getKnowledgeBases()),_0x3bdba5=_0x186e1a[_0x25ad59(0x2be)](_0x48a82e=>_0x48a82e['name']===_0x4fbf2c);if(_0x3bdba5)_0x30c581=_0x3bdba5['id'],_0x253f42(_0x25ad59(0x257)+_0x4fbf2c+'\x22,将数据合并入库。',_0x25ad59(0x2ad));else{_0x253f42(_0x25ad59(0x242)+_0x4fbf2c+'\x22\x20创建专属知识库...',_0x25ad59(0x2ad));const _0xe2d0cd=addKnowledgeBase(_0x4fbf2c,_0x4a113f);_0x30c581=_0xe2d0cd['id'];}const _0x4c87b1=getCharacterStableId(),_0x4b49d8=_0x4c87b1+'_'+_0x30c581;_0x253f42(_0x25ad59(0x24a)+_0x4fbf2c+_0x25ad59(0x2c7)+_0x4b49d8+')',_0x25ad59(0x1f1)),_0x253f42(_0x25ad59(0x2e0)+_0x4b49d8,'info'),_0x2d15b8({'message':_0x25ad59(0x2e5),'processed':0x0,'total':0x1});const _0x11cc4d=splitIntoChunks(_0x1d4c29,_0x4a113f,_0x5f0201),_0x4c23e8=_0x11cc4d['length'];if(_0x1ec601?.[_0x25ad59(0x284)])throw new Error('AbortError');_0x253f42(_0x25ad59(0x2f8)+_0x4fbf2c+_0x25ad59(0x29f)+_0x4c23e8+_0x25ad59(0x335),_0x25ad59(0x2ad));if(_0x4c23e8===0x0)return{'success':!![],'count':0x0};const _0x33fdc7=settings[_0x25ad59(0x1f8)][_0x25ad59(0x31a)]||0x5;let _0x3a653e=_0x4a46b6;for(let _0xd2ec20=_0x4a46b6;_0xd2ec20<_0x4c23e8;_0xd2ec20+=_0x33fdc7){if(_0x1ec601?.['aborted'])throw new Error('AbortError');const _0x287818=_0x11cc4d[_0x25ad59(0x2bb)](_0xd2ec20,_0xd2ec20+_0x33fdc7);_0x2d15b8({'message':_0x25ad59(0x21e)+(_0xd2ec20+0x1)+'-'+(_0xd2ec20+_0x287818[_0x25ad59(0x21f)])+'\x20块','processed':_0xd2ec20,'total':_0x4c23e8});const _0x307ed6=_0x287818[_0x25ad59(0x238)](_0x107f0f=>_0x107f0f[_0x25ad59(0x211)]),_0x5c32b5=await getEmbeddings(_0x307ed6,_0x1ec601);if(_0x1ec601?.['aborted'])throw new Error(_0x25ad59(0x2b5));if(_0x287818['length']!==_0x5c32b5[_0x25ad59(0x21f)])throw new Error(_0x25ad59(0x2e7));const _0x18178d=_0x287818[_0x25ad59(0x238)]((_0x52d8b0,_0x16c1ad)=>({..._0x52d8b0,'vector':_0x5c32b5[_0x16c1ad]}));await insertVectors(_0x18178d,_0x1ec601,_0x4b49d8),_0x3a653e+=_0x287818[_0x25ad59(0x21f)],_0x411f16&&_0x4f1b20[_0x25ad59(0x29a)](_0x411f16,_0x3a653e,_0x4c23e8),await _0x479853();}return _0x411f16&&_0x4f1b20[_0x25ad59(0x20d)](_0x411f16),_0x253f42(_0x25ad59(0x276)+_0x3a653e+'\x20个向量条目。','success'),{'success':!![],'count':_0x3a653e};}catch(_0x30108c){if(_0x30108c[_0x25ad59(0x275)]==='AbortError'){_0x253f42('[翰林院-核心]\x20文本录入任务被用户中止。','warn');throw _0x30108c;}return console[_0x25ad59(0x28e)](_0x25ad59(0x30f),_0x30108c),_0x253f42('[翰林院-核心]\x20文本录入失败:\x20'+_0x30108c[_0x25ad59(0x30d)],_0x25ad59(0x28e)),{'success':![],'error':_0x30108c[_0x25ad59(0x30d)]};}}function getSettings(){const _0x1fb493=_0x1f6706;if(!context||!context[_0x1fb493(0x26e)])return structuredClone(_0x5d048b);let _0x366771=context[_0x1fb493(0x26e)][MODULE_NAME];!_0x366771&&(_0x366771={},context['extensionSettings'][MODULE_NAME]=_0x366771);_0x366771[_0x1fb493(0x32a)]===undefined&&(_0x366771[_0x1fb493(0x32a)]={});_0x366771[_0x1fb493(0x2a5)]===undefined&&(_0x366771[_0x1fb493(0x2a5)]={});_0x366771[_0x1fb493(0x234)]===undefined&&(_0x366771[_0x1fb493(0x234)]={'enabled':![],'tagExtractionEnabled':![],'tags':'content,details,摘要','exclusionRules':[]});for(const _0x5274ef in _0x5d048b){if(_0x366771[_0x5274ef]===undefined)_0x366771[_0x5274ef]=structuredClone(_0x5d048b[_0x5274ef]);else{if(typeof _0x5d048b[_0x5274ef]===_0x1fb493(0x221)&&!Array[_0x1fb493(0x21d)](_0x5d048b[_0x5274ef])&&_0x5d048b[_0x5274ef]!==null)for(const _0x5951f2 in _0x5d048b[_0x5274ef]){_0x366771[_0x5274ef][_0x5951f2]===undefined&&(_0x366771[_0x5274ef][_0x5951f2]=_0x5d048b[_0x5274ef][_0x5951f2]);}}}return _0x366771;}function saveSettings(){const _0x5e6a1d=_0x1f6706;if(context)context[_0x5e6a1d(0x291)]();}function resetSettings(){context&&(context['extensionSettings'][MODULE_NAME]=structuredClone(_0x5d048b),saveSettings());}function showNotification(_0x146575,_0x14e934=_0x1f6706(0x2ad)){toastr[_0x14e934](_0x146575);}function getTagForSource(_0x5b9f17){const _0x30a414=_0x1f6706;switch(_0x5b9f17){case _0x30a414(0x2a6):return _0x30a414(0x24d);case'lorebook':return _0x30a414(0x2a9);case _0x30a414(0x318):return'手动录入';case _0x30a414(0x2e3):return _0x30a414(0x226);default:return'资料';}}function splitIntoChunks(_0xe29c21,_0x10871a,_0x22dd2e={}){const _0x50223a=_0x1f6706;switch(_0x10871a){case _0x50223a(0x2e3):return _chunkForNovel(_0xe29c21,_0x22dd2e);case _0x50223a(0x2a6):return _chunkForChatHistory(_0xe29c21,_0x22dd2e);case _0x50223a(0x310):return _chunkForLorebook(_0xe29c21,_0x22dd2e);case _0x50223a(0x318):return _chunkForManual(_0xe29c21,_0x22dd2e);default:console[_0x50223a(0x255)]('[翰林院-分块]\x20未知的来源类型\x20\x27'+_0x10871a+'\x27,使用通用分块逻辑。');return _chunkForManual(_0xe29c21,{..._0x22dd2e,'sourceName':_0x22dd2e[_0x50223a(0x1fc)]||_0x50223a(0x32c)});}}function _0x21b6(_0xf0f723,_0x2355f0){_0xf0f723=_0xf0f723-0x1f1;const _0x213bf9=_0x213b();let _0x21b679=_0x213bf9[_0xf0f723];return _0x21b679;}function _chunkForNovel(_0x22dfa8,_0x52cc9a){const _0x466013=_0x1f6706,{chunkSize:_0x5a389f,overlap:_0x44cff0}=settings[_0x466013(0x2d9)],{sourceName:sourceName='小说'}=_0x52cc9a,_0x47e489=[];if(!_0x22dfa8||_0x5a389f<=0x0)return _0x47e489;const _0x375661=/(第\s*[一二三四五六七八九十百千万零\d]+\s*卷)/gim,_0x29b529=/(第\s*[一二三四五六七八九十百千万零\d]+\s*[章回节部])|^(Chapter\s+\d+)/gim;let _0x2af7dd=0x0;const _0x12194a=_0x22dfa8[_0x466013(0x331)]('\x0a');let _0x96988a=_0x466013(0x334),_0xfa64c=_0x466013(0x1f7),_0x1cf11c=[];function _0x2c74e2(){const _0x4ab279=_0x466013;if(_0x1cf11c['length']===0x0)return;const _0x54ffb4=_0x1cf11c['join']('\x0a');let _0x269ac1=0x0,_0x42f6a7=0x1;while(_0x269ac1<_0x54ffb4[_0x4ab279(0x21f)]){const _0x252e5f=Math['min'](_0x269ac1+_0x5a389f,_0x54ffb4[_0x4ab279(0x21f)]),_0xf80588=_0x54ffb4[_0x4ab279(0x30b)](_0x269ac1,_0x252e5f);if(_0xf80588[_0x4ab279(0x299)]()[_0x4ab279(0x21f)]>0x0){const _0x21d4bb={'source':_0x4ab279(0x2e3),'sourceName':sourceName,'timestamp':new Date()['toISOString'](),'globalIndex':_0x2af7dd++,'volume':_0x96988a,'chapter':_0xfa64c,'section':_0x42f6a7},_0x1dedba=getTagForSource(_0x4ab279(0x2e3)),_0x3db927='[来源:\x20'+sourceName+',\x20'+_0x96988a+',\x20'+_0xfa64c+_0x4ab279(0x2aa)+_0x42f6a7+'节]',_0x4e566f='<'+_0x1dedba+'>\x0a'+_0x3db927+'\x0a'+_0xf80588+_0x4ab279(0x228)+_0x1dedba+'>';_0x47e489[_0x4ab279(0x2db)]({'text':_0x4e566f,'metadata':_0x21d4bb}),_0x42f6a7++;}_0x269ac1+=_0x5a389f-_0x44cff0;if(_0x269ac1>=_0x54ffb4[_0x4ab279(0x21f)])break;}_0x1cf11c=[];}for(const _0x452ac2 of _0x12194a){const _0x53aaaa=_0x452ac2[_0x466013(0x299)]();if(_0x375661[_0x466013(0x2f0)](_0x53aaaa))_0x2c74e2(),_0x96988a=_0x53aaaa,_0xfa64c=_0x466013(0x1f7);else _0x29b529['test'](_0x53aaaa)?(_0x2c74e2(),_0xfa64c=_0x53aaaa):_0x1cf11c[_0x466013(0x2db)](_0x452ac2);}_0x2c74e2();if(_0x47e489[_0x466013(0x21f)]===0x0&&_0x22dfa8[_0x466013(0x21f)]>0x0){let _0x592119=0x0,_0x53f269=0x1;while(_0x592119<_0x22dfa8[_0x466013(0x21f)]){const _0x19b45f=Math[_0x466013(0x28f)](_0x592119+_0x5a389f,_0x22dfa8['length']),_0x3afd06=_0x22dfa8[_0x466013(0x30b)](_0x592119,_0x19b45f),_0x33128f={'source':_0x466013(0x2e3),'sourceName':sourceName,'timestamp':new Date()[_0x466013(0x297)](),'globalIndex':_0x47e489[_0x466013(0x21f)],'volume':_0x466013(0x334),'chapter':_0x466013(0x1f7),'section':_0x53f269},_0x22166a=getTagForSource(_0x466013(0x2e3)),_0x37782f='[来源:\x20'+sourceName+_0x466013(0x1fa)+_0x53f269+'节]',_0x3ecfc2='<'+_0x22166a+'>\x0a'+_0x37782f+'\x0a'+_0x3afd06+_0x466013(0x228)+_0x22166a+'>';_0x47e489[_0x466013(0x2db)]({'text':_0x3ecfc2,'metadata':_0x33128f}),_0x53f269++,_0x592119+=_0x5a389f-_0x44cff0;}}return _0x47e489;}function _chunkForChatHistory(_0x50b8a0,_0x3eb500){const _0x70a5b5=_0x1f6706,{chunkSize:_0x1e6b0c,overlap:_0xbb50b4}=settings[_0x70a5b5(0x2d9)],{floor:_0x167720,is_user:_0x46e8d2,timestamp:_0x2218c1}=_0x3eb500,_0x119f0a=[];if(!_0x50b8a0||_0x1e6b0c<=0x0)return _0x119f0a;let _0x597439=0x1,_0x5d5f51=0x0;while(_0x5d5f51<_0x50b8a0[_0x70a5b5(0x21f)]){const _0x4b6c6b=Math[_0x70a5b5(0x28f)](_0x5d5f51+_0x1e6b0c,_0x50b8a0[_0x70a5b5(0x21f)]),_0x3362ce=_0x50b8a0[_0x70a5b5(0x30b)](_0x5d5f51,_0x4b6c6b),_0x457ef2=_0x70a5b5(0x224)+_0x167720+_0x70a5b5(0x2aa)+_0x597439+_0x70a5b5(0x2ac),_0xe717a4=getTagForSource(_0x70a5b5(0x2a6)),_0x1319bf='<'+_0xe717a4+'>\x0a'+_0x457ef2+'\x0a'+_0x3362ce+_0x70a5b5(0x228)+_0xe717a4+'>';_0x119f0a[_0x70a5b5(0x2db)]({'text':_0x1319bf,'metadata':{'source':'chat_history','sourceName':_0x70a5b5(0x295)+_0x167720,'floor':_0x167720,'part':_0x597439,'is_user':_0x46e8d2,'timestamp':_0x2218c1}}),_0x597439++,_0x5d5f51+=_0x1e6b0c-_0xbb50b4;if(_0x5d5f51>=_0x50b8a0[_0x70a5b5(0x21f)])break;}return _0x119f0a;}function _chunkForLorebook(_0x20f362,_0x2daafc){const _0x5e77f7=_0x1f6706,{chunkSize:_0x147260,overlap:_0x4ea10e}=settings[_0x5e77f7(0x2d9)],{bookName:bookName=_0x5e77f7(0x2a9),entryName:entryName=_0x5e77f7(0x259)}=_0x2daafc,_0x391c76=[];if(!_0x20f362||_0x147260<=0x0)return _0x391c76;let _0x3da84c=0x1,_0x24b8be=0x0;while(_0x24b8be<_0x20f362['length']){const _0x520371=Math['min'](_0x24b8be+_0x147260,_0x20f362['length']),_0x4fa609=_0x20f362[_0x5e77f7(0x30b)](_0x24b8be,_0x520371),_0x4792e4=_0x5e77f7(0x2a1)+bookName+',\x20条目:\x20'+entryName+_0x5e77f7(0x2aa)+_0x3da84c+_0x5e77f7(0x2ac),_0x4ad284=getTagForSource(_0x5e77f7(0x310)),_0x33f9a9='<'+_0x4ad284+'>\x0a'+_0x4792e4+'\x0a'+_0x4fa609+'\x0a</'+_0x4ad284+'>';_0x391c76[_0x5e77f7(0x2db)]({'text':_0x33f9a9,'metadata':{'source':_0x5e77f7(0x310),'sourceName':bookName+':\x20'+entryName,'bookName':bookName,'entryName':entryName,'part':_0x3da84c,'timestamp':new Date()[_0x5e77f7(0x297)]()}}),_0x3da84c++,_0x24b8be+=_0x147260-_0x4ea10e;if(_0x24b8be>=_0x20f362['length'])break;}return _0x391c76;}function _chunkForManual(_0x4844a4,_0x3d3f57){const _0x59e792=_0x1f6706,{chunkSize:_0x261ddf,overlap:_0x39f133}=settings['advanced'],{sourceName:sourceName=_0x59e792(0x302)}=_0x3d3f57,_0x138fa9=[];if(!_0x4844a4||_0x261ddf<=0x0)return _0x138fa9;const _0x5b5c4c=new Date(),_0x4a8f3e=_0x5b5c4c['toLocaleString'](_0x59e792(0x2eb));let _0x496b54=0x1,_0x1adeef=0x0;while(_0x1adeef<_0x4844a4[_0x59e792(0x21f)]){const _0xc16b9f=Math[_0x59e792(0x28f)](_0x1adeef+_0x261ddf,_0x4844a4[_0x59e792(0x21f)]),_0x53f507=_0x4844a4[_0x59e792(0x30b)](_0x1adeef,_0xc16b9f),_0x4c8b29=_0x59e792(0x2a1)+sourceName+',\x20向量化录入时间:\x20'+_0x4a8f3e+_0x59e792(0x2aa)+_0x496b54+_0x59e792(0x2ac),_0x4b6ff3=getTagForSource(_0x59e792(0x318)),_0x335fb0='<'+_0x4b6ff3+'>\x0a'+_0x4c8b29+'\x0a'+_0x53f507+_0x59e792(0x228)+_0x4b6ff3+'>';_0x138fa9[_0x59e792(0x2db)]({'text':_0x335fb0,'metadata':{'source':_0x59e792(0x318),'sourceName':sourceName,'part':_0x496b54,'timestamp':_0x5b5c4c['toISOString']()}}),_0x496b54++,_0x1adeef+=_0x261ddf-_0x39f133;if(_0x1adeef>=_0x4844a4['length'])break;}return _0x138fa9;}import{getCollectionId as _0x471883,getCharacterName,getChatId}from'./utils/context-utils.js';async function getCollectionId(){const _0x2be8c9=_0x1f6706;if(lockedCollectionId)return lockedCollectionId;const _0x2b3e4f=settings[_0x2be8c9(0x1f8)][_0x2be8c9(0x1fd)];return _0x2b3e4f?getChatId():await _0x471883();}function _0x213b(){const _0x9cf3b0=['...)','\x20时发生网络错误:','知识库【','[翰林院-日志]\x20没有启用的新知识库,尝试查询旧版单体宝库...','1342698iLmOeW','insertVectors\x20必须接收一个有效的\x20collectionId\x20参数。','[翰林院-日志]\x20清空宝库API错误:','queryPreprocessing','rerank','[翰林院-迁移]\x20用户确认迁移,正在处理旧宝库:\x20','\x20池精确提取\x20','map','无法确定要清空的目标宝库。','[翰林院-自动凝识]\x20处理分桶:\x20','统一检索部分的Rerank已完成','凝识之权未开启','\x20个知识块,准备入库。','\x20返回\x20','priorityRetrieval','chat','is_user','[翰林院-核心]\x20准备为任务\x20\x22','[翰林院-核心]\x20尝试删除一个不存在的知识库:\x20','reranked','[翰林院-户口普查]\x20检测到旧版设置\x20(V','对话记录小总结','\x5c$&','\x20条内容。','start','[翰林院-核心]\x20已创建并锁定知识库:\x20','[翰林院-日志]\x20独立聊天记忆模式开启,聊天\x20','match','聊天记录','[翰林院-日志]\x20开始获取所有知识库的向量总数...','),开始强制重分类所有知识库...','未知条目','3813438ReqIyl','】已成功移动到','[翰林院-Rerank]\x20开始外部API重排序...','toString','warn','all','[翰林院-核心]\x20检测到同名知识库\x20\x22','[翰林院-核心]\x20成功删除知识库\x20','世界书条目','\x20不存在,计为\x200。','输入文本为空','[翰林院-自动凝识]\x20分桶\x20','json','\x20条消息分解为\x20','hashes','[翰林院-核心]\x20清空向量集合\x20','[翰林院-日志]\x20发送到\x20/api/vector/purge\x20的请求体:','[翰林院-核心]\x20凝识任务已锁定知识库:\x20','exclusionRules','[翰林院]\x20进入传统处理流程...','HANLINYUAN_RAG_LOREBOOK','[索引:\x20','sjshu','指定知识库','hanlinyuanRagProcessor','知识库\x20\x22','\x20列表API时出现问题\x20(状态:\x20','range','findIndex','extensionSettings','key','查询集合\x20','\x20的知识库。','5369535WouEzr','\x20->\x20','[翰林院]\x20常规池处理完毕,产出\x20','name','[翰林院-核心]\x20成功插入\x20','local',')\x20的状态已切换为:\x20','\x22\x20创建专属知识库...',',将清空集合:\x20','settingsVersion','tiaomu','[翰林院-日志]\x20统计目标集合ID:\x20','send_date','includes','startsWith','metadata','reduce','superSortEnabled','aborted','[翰林院-核心]\x20processCondensation\x20失败:','翰林院忆识核心已启动\x20(V5.3-归档版),已注册到全局\x20hanlinyuanRagProcessor\x20对象。','[翰林院-计数]\x20在作用域\x20\x27','[翰林院]\x20优先组\x20','HANLINYUAN_RAG_GRAPH','mes','global','MESSAGE_RECEIVED','[翰林院-Rerank]\x20元数据加权排序完成。','error','min','在源作用域\x20\x27','saveSettingsDebounced','[翰林院-日志]\x20没有可供查询的知识库,查询中止。','toLocaleString','[翰林院]\x20已从\x20','聊天记录\x20#','小说:\x20','toISOString','\x20条结果。','trim','saveProgress','宏史卷总结','task_','翰林院通告','filter','\x27的文本分割成\x20','unknown','[来源:\x20','[翰林院]\x20已为来源\x20\x27','vector','enabled','knowledgeBases','chat_history','scope','5HzIQcY','世界书',',\x20第','tagExtractionEnabled','部分]','info','top_n','forEach','preserveFloors','[翰林院-配置]\x20','then','[翰林院-日志]\x20统计集合\x20','legacy','AbortError','matchThreshold','webllm','[翰林院-迁移]\x20旧宝库已清空。','chapter',':\x20自动凝识\x20(','slice','[翰林院]\x20经过预处理后,最终检索文本为空,注入中止。','[翰林院-核心]\x20知识库\x20','find','notify','flat','count','\x20(ID:\x20','核心未初始化','replace','<mark\x20class=\x22search-highlight\x22>$1</mark>','max','\x20(集合ID:\x20','injection_','[翰林院-日志]\x20查询白名单已提供,将查询\x20','status','[翰林院-日志]\x20清空宝库API调用成功。','1811728ZGsMWI','position','[翰林院-自动凝识]\x20触发自动凝识:\x20','未知角色','[翰林院]\x20常规组返回\x20','删除知识库失败,未能清空后端数据。','[翰林院-日志]\x20/api/vector/purge\x20响应状态:\x20','sources','comment','[翰林院-迁移]\x20用户取消了迁移操作。','\x22,将数据合并入库。','[翰林院]\x20开始处理常规池...','所有启用库','advanced','hybrid_alpha','push','/api/vector/insert','end','对话记录大总结','[翰林院-日志]\x20开始清空宝库...','[翰林院-核心]\x20已锁定忆识宝库ID:\x20','[翰林院-修复]\x20最终返回数组长度:\x20','/api/vector/list','novel','values','正在智能分块...','小说:','文本块和向量数量不匹配','injection_lorebook','\x20个已启用的全局知识库。','[翰林院]\x20未找到来源\x20\x27','zh-CN','个库)','user','warning','435389aHasNd','test','[翰林院-配置]\x20为旧版知识库\x20','source','_global','HANLINYUAN_RAG_NOVEL','\x22\x20已从\x20[','embeddings','autoCondense','[翰林院-核心]\x20将来源\x27','\x20记录凝识范围:\x20','content','sort','string','tags','[翰林院-预处理]\x20最终用于检索的文本:\x20\x22','\x20楼\x20(ChatID:\x20','score','index','手动录入','[翰林院-核心]\x20已为宝库\x20','[翰林院-日志]\x20正在查询知识库:\x20','sousuo','(已锁定:\x20','[翰林院-日志]\x20无法获取当前聊天ID,跳过聊天宝库。','[翰林院-预处理]\x20原始检索文本:\x20\x22','log','bianzhuan','substring','[翰林院-日志]\x20未能为知识库\x20','message','知识库名称不能为空。','[翰林院-核心]\x20ingestTextToHanlinyuan\x20失败:','lorebook','[翰林院-日志]\x20查询知识库\x20','[翰林院-日志]\x20添加\x20','oldId','[翰林院-V13\x20修复]\x20重建元数据后,知识库\x20','\x27\x20的注入设置,跳过处理。','微言录总结','_history','manual','手动录入:\x20','batchSize','floor','2129817wxsgJk','condensation','[翰林院]\x20最终准备注入\x20','\x20个特定知识库。','volume','getRequestHeaders','add','在作用域\x20\x27','join','autoCondenseProgress','stringify','旧版宝库\x20(Legacy)','\x20条初步结果。','知识库名称不能为空','condensationHistory','用户取消了迁移操作','未知来源','queryMessageCount','final_score','[翰林院-自动凝识]\x20执行失败:','keys','split','8GGprDb','[翰林院-Rerank]\x20外部Rerank失败,将仅使用内部加权。','第1卷','\x20个块。','[翰林院-核心]\x20准备删除知识库\x20','检测到旧版数据。此操作将把旧数据迁移到新格式,过程不可逆,是否继续?','检测到旧版数据,正在进行一次性户口普查...','HANLINYUAN_RAG_MANUAL','\x27\x20中未找到ID为\x20','[翰林院]\x20检测到索引引用,已增强检索词:\x20','[翰林院-日志]\x20独立聊天记忆模式开启...','success','\x20个条目。','toLowerCase','聊天记录:\x20','entryName','\x20处理失败,中止后续处理。','第1章','retrieval','[翰林院-户口普查]\x20普查完成,正在保存更新后的户籍...',',\x20第1卷,\x20第1章,\x20第','\x20不存在,返回空数组。','sourceName','independentChatMemoryEnabled','bookName','/api/vector/query','[翰林院-日志]\x20统一角色卡模式开启...','忆识存入API错误\x20','part','[翰林院-核心]\x20已为角色\x20','rerank_score','\x27\x20注入\x20','POST','\x20(范围:\x20','hanlinyuan-rag-core','[翰林院-日志]\x20忆识存入API错误:','[翰林院-核心]\x20聊天记录凝识完成,成功插入\x20','[翰林院-日志]\x20无法确定要清空的目标集合ID。','HANLINYUAN_RAG_CHAT','clearJob','\x20及其向量数据。','messageTypes','[翰林院]\x20检索或注入时发生错误:','text','\x20-\x20楼层\x20#','No\x20messages\x20to\x20process.','original_index','\x20失败:','results','移动失败:没有当前角色,无法移入局部知识库。','895006ZYDUdG','rearrangeChat','\x22\x20已删除。','Rerank失败:\x20','data','isArray','正在处理\x20','length','[翰林院-预处理]\x20处理后检索文本:\x20\x22','object','random','_text}}','[来源:\x20聊天记录,\x20楼层:\x20#','getContext','小说录入','[翰林院]\x20创建优先查询组:\x20','\x0a</','[翰林院-Rerank]\x20开始元数据加权最终排序...','owner',']\x20更正为\x20[','未知小说'];_0x213b=function(){return _0x9cf3b0;};return _0x213b();}async function toggleSessionLock(){return lockedCollectionId?(lockedCollectionId=null,![]):(lockedCollectionId=await _0x471883(),!![]);}function isSessionLocked(){return lockedCollectionId!==null;}function getLockedSessionInfo(){const _0x5c0c53=_0x1f6706;if(!lockedCollectionId)return null;return{'id':lockedCollectionId,'name':_0x5c0c53(0x306)+lockedCollectionId['substring'](0x0,0x8)+_0x5c0c53(0x22d)};}function getLocalKnowledgeBases(){const _0x322772=_0x1f6706,_0x1552c=getCharacterStableId();return!settings[_0x322772(0x2a5)][_0x1552c]&&(settings[_0x322772(0x2a5)][_0x1552c]={}),settings[_0x322772(0x2a5)][_0x1552c];}function getGlobalKnowledgeBases(){const _0x566db6=_0x1f6706;return!settings[_0x566db6(0x2a5)][GLOBAL_SCOPE_ID]&&(settings[_0x566db6(0x2a5)][GLOBAL_SCOPE_ID]={}),settings[_0x566db6(0x2a5)][GLOBAL_SCOPE_ID];}function getKnowledgeBases(){const _0x3f3dcf=getLocalKnowledgeBases(),_0x2be468=getGlobalKnowledgeBases();return{..._0x2be468,..._0x3f3dcf};}function addKnowledgeBase(_0x4b481f,_0x1f080a=_0x1f6706(0x318)){const _0x1ffcbf=_0x1f6706;if(!_0x4b481f||!_0x4b481f['trim']())throw new Error(_0x1ffcbf(0x329));const _0x252f30=getCharacterStableId(),_0x3b4605=getLocalKnowledgeBases(),_0x39c20b=_0x1ffcbf(0x29c)+Date['now']()+'_'+Math[_0x1ffcbf(0x222)]()[_0x1ffcbf(0x254)](0x24)[_0x1ffcbf(0x30b)](0x2,0x9),_0x58c308={'id':_0x39c20b,'name':_0x4b481f[_0x1ffcbf(0x299)](),'enabled':!![],'createdAt':new Date()[_0x1ffcbf(0x297)](),'owner':_0x252f30,'source':_0x1f080a};return _0x3b4605[_0x39c20b]=_0x58c308,saveSettings(),console[_0x1ffcbf(0x309)](_0x1ffcbf(0x203)+_0x252f30+'\x20添加新知识库:\x20'+_0x4b481f+_0x1ffcbf(0x2c2)+_0x39c20b+')'),_0x58c308;}async function removeKnowledgeBase(_0x216b7d,_0x44a1d5){const _0x26632e=_0x1f6706,_0xe864b=getCharacterStableId(),_0x12195b=_0x44a1d5===_0x26632e(0x28b)?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x14f67d=_0x12195b[_0x216b7d],_0x9f17ae=_0x14f67d?.[_0x26632e(0x275)]||_0x216b7d;if(!_0x14f67d){console[_0x26632e(0x255)](_0x26632e(0x243)+_0x216b7d+_0x26632e(0x207)+_0x44a1d5+')');return;}const _0x4ac4e6=_0x44a1d5===_0x26632e(0x28b)?_0x14f67d['owner']||GLOBAL_SCOPE_ID:_0xe864b,_0x478d81=_0x4ac4e6+'_'+_0x216b7d;console[_0x26632e(0x309)](_0x26632e(0x336)+_0x216b7d+_0x26632e(0x27a)+_0x478d81);const _0x3faade=await purgeStorage(_0x478d81);_0x3faade?(delete _0x12195b[_0x216b7d],saveSettings(),console[_0x26632e(0x309)](_0x26632e(0x258)+_0x216b7d+_0x26632e(0x20e)),toastr['success'](_0x26632e(0x26a)+_0x9f17ae+_0x26632e(0x21a))):(console[_0x26632e(0x28e)](_0x26632e(0x260)+_0x478d81+'\x20失败,删除操作中止。'),toastr[_0x26632e(0x28e)](_0x26632e(0x2d1)));}function toggleKnowledgeBase(_0x427676,_0x1a5963){const _0x29521f=_0x1f6706,_0x274955=_0x1a5963===_0x29521f(0x28b)?getGlobalKnowledgeBases():getLocalKnowledgeBases();_0x274955[_0x427676]&&(_0x274955[_0x427676][_0x29521f(0x2a4)]=!_0x274955[_0x427676][_0x29521f(0x2a4)],saveSettings(),console[_0x29521f(0x309)](_0x29521f(0x2bd)+_0x427676+_0x29521f(0x207)+_0x1a5963+_0x29521f(0x278)+(_0x274955[_0x427676][_0x29521f(0x2a4)]?'启用':'禁用')));}function generateHash(_0x21435d){const _0x574c80=_0x1f6706;let _0x45e597=0x0;for(let _0x55bbc5=0x0;_0x55bbc5<_0x21435d[_0x574c80(0x21f)];_0x55bbc5++){const _0xa3b833=_0x21435d['charCodeAt'](_0x55bbc5);_0x45e597=(_0x45e597<<0x5)-_0x45e597+_0xa3b833,_0x45e597=_0x45e597&_0x45e597;}return Math['abs'](_0x45e597)[_0x574c80(0x254)](0x24);}async function queryVectors(_0x530dfc,_0x1f83af={}){const _0x479210=_0x1f6706,{includeBases:includeBases=null}=_0x1f83af;let _0x19392b=[];console[_0x479210(0x309)]('[翰林院-日志]\x20开始向量查询...\x20(目标:\x20'+(includeBases?_0x479210(0x268):_0x479210(0x2d8))+')');if(includeBases)_0x19392b=includeBases,console[_0x479210(0x309)](_0x479210(0x2c9)+_0x19392b[_0x479210(0x21f)]+_0x479210(0x31f));else{if(settings['retrieval']['independentChatMemoryEnabled']){console[_0x479210(0x309)](_0x479210(0x33c));const _0x1449e0=getChatId();_0x1449e0?(console[_0x479210(0x309)]('[翰林院-日志]\x20添加当前聊天宝库:\x20'+_0x1449e0),_0x19392b[_0x479210(0x2db)]({'id':_0x1449e0,'name':'当前聊天\x20('+_0x1449e0+')','scope':_0x479210(0x240)})):console[_0x479210(0x255)](_0x479210(0x307));const _0x3bc172=getGlobalKnowledgeBases(),_0x320b94=Object[_0x479210(0x2e4)](_0x3bc172)[_0x479210(0x29e)](_0x30ec32=>_0x30ec32[_0x479210(0x2a4)]);_0x320b94[_0x479210(0x21f)]>0x0&&(console[_0x479210(0x309)](_0x479210(0x312)+_0x320b94['length']+_0x479210(0x2e9)),_0x19392b['push'](..._0x320b94[_0x479210(0x238)](_0x3b8a45=>({..._0x3b8a45,'scope':'global'}))));}else{console[_0x479210(0x309)](_0x479210(0x200));const _0x7e8fd=getLocalKnowledgeBases(),_0x5c4c36=getGlobalKnowledgeBases(),_0x5bafe3=Object['values'](_0x7e8fd)[_0x479210(0x29e)](_0x5ee983=>_0x5ee983[_0x479210(0x2a4)]),_0x51b1a1=Object[_0x479210(0x2e4)](_0x5c4c36)['filter'](_0xa2ada6=>_0xa2ada6[_0x479210(0x2a4)]);_0x19392b['push'](..._0x5bafe3[_0x479210(0x238)](_0x54eb60=>({..._0x54eb60,'scope':_0x479210(0x277)}))),_0x19392b['push'](..._0x51b1a1[_0x479210(0x238)](_0x15ff92=>({..._0x15ff92,'scope':_0x479210(0x28b)})));if(_0x19392b[_0x479210(0x21f)]===0x0){console[_0x479210(0x309)](_0x479210(0x230));const _0xb635fe=await _0x471883();_0xb635fe&&_0x19392b[_0x479210(0x2db)]({'id':null,'name':_0x479210(0x327),'scope':'legacy'});}}}if(_0x19392b[_0x479210(0x21f)]===0x0)return console[_0x479210(0x309)](_0x479210(0x292)),[];const _0x543971=(await getEmbeddings([_0x530dfc]))[0x0];if(!_0x543971)throw new Error('未能生成查询向量。');const _0x49f3ae=_0x19392b[_0x479210(0x238)](_0x2f4c07=>_executeQueryForBase(_0x2f4c07,_0x530dfc,_0x543971)),_0x166a43=await Promise[_0x479210(0x256)](_0x49f3ae);let _0x40a573=_0x166a43['flat']();console[_0x479210(0x309)]('[翰林院-日志]\x20所有知识库查询完毕,共获得\x20'+_0x40a573[_0x479210(0x21f)]+_0x479210(0x328));const _0x4ea8ef=[],_0x7646e3=new Set();for(const _0xaba49d of _0x40a573){if(_0xaba49d&&typeof _0xaba49d===_0x479210(0x221)&&_0xaba49d[_0x479210(0x211)]&&typeof _0xaba49d[_0x479210(0x211)]===_0x479210(0x2fc)){const _0xb11bf3=_0xaba49d[_0x479210(0x211)][_0x479210(0x299)]();_0xb11bf3[_0x479210(0x21f)]>0x0&&!_0x7646e3['has'](_0xb11bf3)&&(_0x7646e3[_0x479210(0x322)](_0xb11bf3),_0x4ea8ef[_0x479210(0x2db)](_0xaba49d));}}console['log']('[翰林院-日志]\x20去重后剩余\x20'+_0x4ea8ef[_0x479210(0x21f)]+_0x479210(0x298)),_0x4ea8ef[_0x479210(0x2fb)]((_0x4499e1,_0x471826)=>(_0x471826['score']||0x0)-(_0x4499e1[_0x479210(0x300)]||0x0));const _0x4d59ad=[..._0x4ea8ef];return console[_0x479210(0x309)](_0x479210(0x2e1)+_0x4d59ad[_0x479210(0x21f)]),console[_0x479210(0x309)]('[翰林院-修复]\x20最终返回数组样本:',JSON['stringify'](_0x4d59ad[_0x479210(0x2bb)](0x0,0x1),null,0x2)),_0x4d59ad;}async function _executeQueryForBase(_0x4a7ac1,_0x1c6a38,_0x5dda0f=null){const _0x17176c=_0x1f6706,_0x2b38b0=getCharacterStableId();let _0x4e2185;switch(_0x4a7ac1[_0x17176c(0x2a7)]){case _0x17176c(0x2b4):_0x4e2185=await _0x471883();break;case _0x17176c(0x240):_0x4e2185=_0x4a7ac1['id'];break;case _0x17176c(0x28b):const _0x46d4b8=_0x4a7ac1[_0x17176c(0x22a)]||GLOBAL_SCOPE_ID;_0x4e2185=_0x46d4b8+'_'+_0x4a7ac1['id'];break;case _0x17176c(0x277):default:_0x4e2185=_0x2b38b0+'_'+_0x4a7ac1['id'];break;}if(!_0x4e2185)return[];console[_0x17176c(0x309)](_0x17176c(0x304)+_0x4a7ac1[_0x17176c(0x275)]+_0x17176c(0x2c2)+_0x4e2185+')');const _0x41793f=_0x5dda0f||(await getEmbeddings([_0x1c6a38]))[0x0];if(!_0x41793f)return console[_0x17176c(0x28e)](_0x17176c(0x30c)+_0x4e2185+'\x20生成查询向量。'),[];const _0x25078e={'collectionId':_0x4e2185,'searchText':_0x1c6a38,'topK':settings[_0x17176c(0x2d9)]['maxResults'],'threshold':settings[_0x17176c(0x2d9)][_0x17176c(0x2b6)],'source':_0x17176c(0x2b7),'embeddings':{[_0x1c6a38]:_0x41793f}};try{const _0x2495f0=await fetch(_0x17176c(0x1ff),{'method':_0x17176c(0x206),'headers':context[_0x17176c(0x321)](),'body':JSON[_0x17176c(0x326)](_0x25078e)});if(!_0x2495f0['ok']){const _0x40bf0e=await _0x2495f0['text']();return console[_0x17176c(0x28e)](_0x17176c(0x311)+_0x4e2185+_0x17176c(0x215),_0x40bf0e),[];}const _0x453d9e=await _0x2495f0[_0x17176c(0x25d)]();let _0x43eaf4=[];if(Array['isArray'](_0x453d9e))_0x43eaf4=_0x453d9e;else{if(_0x453d9e&&_0x453d9e[_0x17176c(0x281)]&&Array['isArray'](_0x453d9e[_0x17176c(0x281)]))_0x43eaf4=_0x453d9e['metadata'];else{if(_0x453d9e&&_0x453d9e[_0x17176c(0x216)]&&Array[_0x17176c(0x21d)](_0x453d9e[_0x17176c(0x216)]))_0x43eaf4=_0x453d9e[_0x17176c(0x216)];else _0x453d9e&&_0x453d9e[_0x17176c(0x21c)]&&Array[_0x17176c(0x21d)](_0x453d9e[_0x17176c(0x21c)])&&(_0x43eaf4=_0x453d9e[_0x17176c(0x21c)]);}}const _0x2dbc91=_0x43eaf4[_0x17176c(0x238)](_0x55cb7=>{const _0x314032=_0x17176c;if(!_0x55cb7||typeof _0x55cb7[_0x314032(0x211)]!==_0x314032(0x2fc))return null;const _0x19240c={'source':_0x314032(0x2a0),'sourceName':'未知'},_0x43c651=_0x55cb7[_0x314032(0x211)][_0x314032(0x24c)](/^<([^>]+)>/),_0x402418=_0x43c651?_0x43c651[0x1]:'';switch(_0x402418){case _0x314032(0x24d):_0x19240c[_0x314032(0x2f2)]=_0x314032(0x2a6);const _0x5a1daf=_0x55cb7['text'][_0x314032(0x24c)](/楼层:\s*#(\d+),\s*第(\d+)部分/);_0x5a1daf&&_0x5a1daf[0x1]&&_0x5a1daf[0x2]&&(_0x19240c[_0x314032(0x31b)]=parseInt(_0x5a1daf[0x1],0xa),_0x19240c[_0x314032(0x202)]=parseInt(_0x5a1daf[0x2],0xa),_0x19240c[_0x314032(0x1fc)]='聊天记录\x20#'+_0x19240c[_0x314032(0x31b)]);break;case _0x314032(0x2a9):_0x19240c[_0x314032(0x2f2)]=_0x314032(0x310);const _0x339904=_0x55cb7[_0x314032(0x211)][_0x314032(0x24c)](/\[来源:\s*([^,]+),\s*条目:\s*([^,]+),\s*第(\d+)部分\]/);_0x339904&&_0x339904[0x1]&&_0x339904[0x2]&&_0x339904[0x3]&&(_0x19240c[_0x314032(0x1fe)]=_0x339904[0x1][_0x314032(0x299)](),_0x19240c[_0x314032(0x1f5)]=_0x339904[0x2]['trim'](),_0x19240c[_0x314032(0x202)]=parseInt(_0x339904[0x3],0xa),_0x19240c[_0x314032(0x1fc)]=_0x19240c[_0x314032(0x1fe)]+':\x20'+_0x19240c['entryName']);break;case _0x314032(0x302):_0x19240c['source']=_0x314032(0x318);const _0x56b027=_0x55cb7[_0x314032(0x211)][_0x314032(0x24c)](/\[来源:\s*([^,]+),.*第(\d+)部分\]/);_0x56b027&&_0x56b027[0x1]&&_0x56b027[0x2]&&(_0x19240c['sourceName']=_0x56b027[0x1][_0x314032(0x299)](),_0x19240c[_0x314032(0x202)]=parseInt(_0x56b027[0x2],0xa));break;case _0x314032(0x226):_0x19240c['source']=_0x314032(0x2e3);const _0x4487fe=_0x55cb7[_0x314032(0x211)][_0x314032(0x24c)](/\[来源:\s*([^,]+),\s*([^,]+),\s*([^,]+),\s*([^\]]+)\]/);_0x4487fe&&(_0x19240c['sourceName']=_0x4487fe[0x1][_0x314032(0x299)](),_0x19240c[_0x314032(0x320)]=_0x4487fe[0x2][_0x314032(0x299)](),_0x19240c[_0x314032(0x2b9)]=_0x4487fe[0x3][_0x314032(0x299)](),_0x19240c['section']=_0x4487fe[0x4]['trim']());break;}return{..._0x55cb7,'score':_0x55cb7['score']||0x1,'metadata':_0x19240c};})[_0x17176c(0x29e)](Boolean);return console[_0x17176c(0x309)](_0x17176c(0x314)+_0x4a7ac1[_0x17176c(0x275)]+_0x17176c(0x23e)+_0x2dbc91['length']+_0x17176c(0x298)),_0x2dbc91;}catch(_0x537beb){return console[_0x17176c(0x28e)](_0x17176c(0x311)+_0x4e2185+_0x17176c(0x22e),_0x537beb),[];}}async function insertVectors(_0x19f92c,_0x232398=null,_0x5dd223){const _0x357cfd=_0x1f6706;if(!_0x5dd223)throw new Error(_0x357cfd(0x232));if(_0x19f92c['length']===0x0)return{'success':!![],'count':0x0};const _0x5b8bde=_0x19f92c[_0x357cfd(0x238)]((_0x40a9e2,_0x5be5b2)=>({'hash':generateHash(_0x40a9e2['text']+Date['now']()+_0x5be5b2),'text':_0x40a9e2[_0x357cfd(0x211)],'metadata':_0x40a9e2[_0x357cfd(0x281)]||{'source':_0x357cfd(0x2a0),'timestamp':new Date()[_0x357cfd(0x297)]()}})),_0x4ce55d=_0x5b8bde[_0x357cfd(0x282)]((_0x558ebb,_0x4eb1db,_0x192ad2)=>{const _0x431819=_0x357cfd;return _0x558ebb[_0x4eb1db['text']]=_0x19f92c[_0x192ad2][_0x431819(0x2a3)],_0x558ebb;},{}),_0x484cca={'collectionId':_0x5dd223,'items':_0x5b8bde,'source':_0x357cfd(0x2b7),'embeddings':_0x4ce55d},_0x3a66c8=await fetch(_0x357cfd(0x2dc),{'method':_0x357cfd(0x206),'headers':context[_0x357cfd(0x321)](),'body':JSON['stringify'](_0x484cca),'signal':_0x232398});if(!_0x3a66c8['ok']){const _0x371105=await _0x3a66c8['text']();console[_0x357cfd(0x28e)](_0x357cfd(0x209),_0x371105);throw new Error(_0x357cfd(0x201)+_0x3a66c8[_0x357cfd(0x2ca)]+':\x20'+_0x371105);}return{'success':!![],'count':_0x5b8bde[_0x357cfd(0x21f)]};}async function getVectorCount(_0x34ba72=null,_0x3e0214=_0x1f6706(0x277)){const _0x14f1dd=_0x1f6706,_0x13e473=getCharacterStableId();if(_0x34ba72){const _0x3e0151=_0x3e0214===_0x14f1dd(0x28b)?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0xfccb59=_0x3e0151[_0x34ba72];if(!_0xfccb59)return console['warn'](_0x14f1dd(0x287)+_0x3e0214+_0x14f1dd(0x33a)+_0x34ba72+_0x14f1dd(0x271)),0x0;const _0x2f8e2f=_0x3e0214==='global'?_0xfccb59['owner']||GLOBAL_SCOPE_ID:_0x13e473,_0x5f1a4f=_0x2f8e2f+'_'+_0x34ba72;return await countVectorsInCollection(_0x5f1a4f);}else{if(settings[_0x14f1dd(0x1f8)][_0x14f1dd(0x1fd)]){const _0x2adb80=getChatId();if(!_0x2adb80)return 0x0;const _0xeec37f=await countVectorsInCollection(_0x2adb80);return console[_0x14f1dd(0x309)](_0x14f1dd(0x24b)+_0x2adb80+'\x20的向量总数:\x20'+_0xeec37f),_0xeec37f;}console['log'](_0x14f1dd(0x24e));const _0x451774=Object[_0x14f1dd(0x2e4)](getLocalKnowledgeBases()),_0x27d514=Object['values'](getGlobalKnowledgeBases()),_0x41b3bf=[];_0x451774['forEach'](_0x546a9b=>{const _0x1b702f=_0x14f1dd,_0x2fea25=_0x13e473+'_'+_0x546a9b['id'];_0x41b3bf[_0x1b702f(0x2db)](countVectorsInCollection(_0x2fea25));}),_0x27d514[_0x14f1dd(0x2af)](_0x53c48f=>{const _0x507320=_0x14f1dd,_0x164f86=_0x53c48f[_0x507320(0x22a)]||GLOBAL_SCOPE_ID,_0x4fb19f=_0x164f86+'_'+_0x53c48f['id'];_0x41b3bf[_0x507320(0x2db)](countVectorsInCollection(_0x4fb19f));});const _0x1403a7=await _0x471883();_0x41b3bf[_0x14f1dd(0x2db)](countVectorsInCollection(_0x1403a7));const _0x9a4cba=await Promise[_0x14f1dd(0x256)](_0x41b3bf),_0x5e98e0=_0x9a4cba['reduce']((_0x239c7c,_0x250402)=>_0x239c7c+_0x250402,0x0);return console['log']('[翰林院-日志]\x20所有知识库统计完成,总向量数:\x20'+_0x5e98e0),_0x5e98e0;}}async function countVectorsInCollection(_0x25af8e){const _0x19386f=_0x1f6706;if(!_0x25af8e)return 0x0;console[_0x19386f(0x309)](_0x19386f(0x27d)+_0x25af8e);const _0x4de6e7={'collectionId':_0x25af8e,'source':_0x19386f(0x2b7),'embeddings':{}};try{const _0x20b882=await fetch(_0x19386f(0x2e2),{'method':'POST','headers':context[_0x19386f(0x321)](),'body':JSON['stringify'](_0x4de6e7)});if(!_0x20b882['ok']){if(_0x20b882['status']===0x194)console['log']('[翰林院-日志]\x20集合\x20'+_0x25af8e+_0x19386f(0x25a));else{const _0x5ab115=await _0x20b882['text']();console[_0x19386f(0x255)]('[翰林院-日志]\x20获取集合\x20'+_0x25af8e+_0x19386f(0x26b)+_0x20b882[_0x19386f(0x2ca)]+'):',_0x5ab115);}return 0x0;}const _0x440e91=await _0x20b882[_0x19386f(0x25d)]();let _0xb1faa5=0x0;if(Array[_0x19386f(0x21d)](_0x440e91))_0xb1faa5=_0x440e91[_0x19386f(0x21f)];else _0x440e91&&_0x440e91[_0x19386f(0x25f)]&&(_0xb1faa5=_0x440e91[_0x19386f(0x25f)][_0x19386f(0x21f)]);return _0xb1faa5;}catch(_0x41f1e6){return console[_0x19386f(0x28e)](_0x19386f(0x2b3)+_0x25af8e+_0x19386f(0x22e),_0x41f1e6),0x0;}}async function purgeStorage(_0x4ab8a4=null){const _0x43381c=_0x1f6706;console[_0x43381c(0x309)](_0x43381c(0x2df));const _0x4b68ee=_0x4ab8a4||await getCollectionId();if(!_0x4b68ee)return console[_0x43381c(0x28e)](_0x43381c(0x20b)),toastr[_0x43381c(0x28e)](_0x43381c(0x239)),![];console[_0x43381c(0x309)]('[翰林院-日志]\x20清空目标集合ID:\x20'+_0x4b68ee);const _0x44cd48={'collectionId':_0x4b68ee};console['log'](_0x43381c(0x261),JSON[_0x43381c(0x326)](_0x44cd48,null,0x2));const _0x158a24=await fetch('/api/vector/purge',{'method':'POST','headers':context[_0x43381c(0x321)](),'body':JSON[_0x43381c(0x326)](_0x44cd48)});console[_0x43381c(0x309)](_0x43381c(0x2d2)+_0x158a24[_0x43381c(0x2ca)]);if(!_0x158a24['ok']){const _0x7d3ebc=await _0x158a24[_0x43381c(0x211)]();console['error'](_0x43381c(0x233),_0x7d3ebc);}else console[_0x43381c(0x309)](_0x43381c(0x2cb));return _0x158a24['ok'];}function getMessagesForCondensation(_0x147d0b=null){const _0xc6a24a=_0x1f6706;if(!settings['condensation'][_0xc6a24a(0x2a4)])return showNotification(_0xc6a24a(0x23c),_0xc6a24a(0x2ee)),[];const {layerStart:_0xcee7c5,layerEnd:_0x2f1cd3}=settings[_0xc6a24a(0x31d)],_0x37acd5=_0x147d0b||settings['condensation'][_0xc6a24a(0x20f)],_0x2d1211=context[_0xc6a24a(0x240)][_0xc6a24a(0x21f)],_0x1337ab=Math[_0xc6a24a(0x2c6)](0x0,_0xcee7c5-0x1),_0x4ecbd3=_0x2f1cd3===0x0||_0x2f1cd3>_0x2d1211?_0x2d1211:Math[_0xc6a24a(0x28f)](_0x2d1211,_0x2f1cd3),_0x2a749d=context[_0xc6a24a(0x240)][_0xc6a24a(0x2bb)](_0x1337ab,_0x4ecbd3);return _0x2a749d['filter'](_0x4256ec=>{const _0x146c72=_0xc6a24a,_0x4c844a=_0x4256ec['is_user']===!![],_0x53be1f=_0x4256ec[_0x146c72(0x241)]===![];if(!_0x4256ec[_0x146c72(0x28a)]||!_0x4256ec[_0x146c72(0x28a)][_0x146c72(0x299)]())return![];return _0x37acd5[_0x146c72(0x2ed)]&&_0x4c844a||_0x37acd5['ai']&&_0x53be1f;});}async function processCondensation(_0x26cb28,_0x7da777=()=>{},_0x543742=null,_0x270d61=null){const _0x51f32a=_0x1f6706;if(!_0x26cb28||_0x26cb28[_0x51f32a(0x21f)]===0x0)return{'success':![],'error':_0x51f32a(0x213)};try{let _0x3643a5,_0x3b24c0;const _0x28899e=getCharacterName()||_0x51f32a(0x2cf);if(_0x270d61)_0x3643a5=_0x270d61;else{if(_0x543742){const _0x7dbb66=_0x543742[_0x51f32a(0x249)]??'?',_0x168145=_0x543742[_0x51f32a(0x2dd)]===0x0?'末':_0x543742[_0x51f32a(0x2dd)]??'?';_0x3643a5=_0x28899e+':\x20'+_0x7dbb66+'楼-'+_0x168145+'楼';}else{const _0x4ed69c=new Date()['toLocaleString']('zh-CN',{'hour12':![]});_0x3643a5=_0x51f32a(0x1f4)+_0x4ed69c;}}const _0x20245c=Object[_0x51f32a(0x2e4)](getLocalKnowledgeBases()),_0x546567=_0x20245c[_0x51f32a(0x2be)](_0xc2cf44=>_0xc2cf44[_0x51f32a(0x275)]===_0x3643a5);if(_0x546567)_0x3b24c0=_0x546567['id'],_0x7da777('[翰林院-核心]\x20检测到同名知识库\x20\x22'+_0x3643a5+_0x51f32a(0x2d6),'info');else{_0x7da777('[翰林院-核心]\x20准备为任务\x20\x22'+_0x3643a5+_0x51f32a(0x279),_0x51f32a(0x2ad));const _0xc3a91d=addKnowledgeBase(_0x3643a5,'chat_history');_0x3b24c0=_0xc3a91d['id'];}const _0x34a142=getCharacterStableId(),_0x11f271=_0x34a142+'_'+_0x3b24c0;_0x7da777(_0x51f32a(0x262)+_0x3643a5+'\x20(集合ID:\x20'+_0x11f271+')',_0x51f32a(0x1f1));const _0x43ddef=[],_0x11c11e=context[_0x51f32a(0x240)];for(const _0x23da25 of _0x26cb28){const _0x51a699=(_0x23da25[_0x51f32a(0x28a)]||'')['replace'](/<[^>]*>/g,'')[_0x51f32a(0x299)]();if(_0x51a699[_0x51f32a(0x21f)]===0x0)continue;let _0x4dc5a5;if(_0x23da25[_0x51f32a(0x31b)]!==undefined&&_0x23da25[_0x51f32a(0x31b)]!==null)_0x4dc5a5=_0x23da25[_0x51f32a(0x31b)];else{const _0x594c56=_0x11c11e[_0x51f32a(0x26d)](_0x2c6f76=>_0x2c6f76===_0x23da25);_0x4dc5a5=_0x594c56!==-0x1?_0x594c56+0x1:-0x1;}const _0x1f5f90=new Date(_0x23da25[_0x51f32a(0x27e)]),_0x180e3f=isNaN(_0x1f5f90['getTime']())?new Date()['toISOString']():_0x1f5f90[_0x51f32a(0x297)](),_0x2f3966=splitIntoChunks(_0x51a699,'chat_history',{'floor':_0x4dc5a5,'is_user':_0x23da25['is_user'],'timestamp':_0x180e3f});_0x43ddef['push'](..._0x2f3966);}if(_0x43ddef[_0x51f32a(0x21f)]===0x0)return{'success':!![],'count':0x0};_0x7da777('[翰林院-核心]\x20已将\x20'+_0x26cb28[_0x51f32a(0x21f)]+_0x51f32a(0x25e)+_0x43ddef[_0x51f32a(0x21f)]+_0x51f32a(0x23d),_0x51f32a(0x2ad));const _0x2b5f43=settings['retrieval']['batchSize']||0x5;let _0x16cc2c=0x0;for(let _0x4f81b4=0x0;_0x4f81b4<_0x43ddef[_0x51f32a(0x21f)];_0x4f81b4+=_0x2b5f43){const _0x2565f3=_0x43ddef['slice'](_0x4f81b4,_0x4f81b4+_0x2b5f43),_0x553f3b=_0x2565f3['map'](_0x5a8aaa=>_0x5a8aaa['text']),_0xf25a1b=await getEmbeddings(_0x553f3b);if(_0x2565f3[_0x51f32a(0x21f)]!==_0xf25a1b[_0x51f32a(0x21f)])throw new Error(_0x51f32a(0x2e7));const _0x369a59=_0x2565f3['map']((_0x22570c,_0x5c3b0e)=>({..._0x22570c,'vector':_0xf25a1b[_0x5c3b0e]}));await insertVectors(_0x369a59,null,_0x11f271),_0x16cc2c+=_0x2565f3[_0x51f32a(0x21f)];}if(_0x543742){const _0x1da32e=_0x543742[_0x51f32a(0x2dd)]===0x0?context[_0x51f32a(0x240)]['length']:_0x543742['end'],_0x23285a=getCharacterStableId();!settings[_0x51f32a(0x32a)][_0x23285a]&&(settings[_0x51f32a(0x32a)][_0x23285a]={}),settings[_0x51f32a(0x32a)][_0x23285a][_0x11f271]={'start':_0x543742['start'],'end':_0x1da32e,'timestamp':new Date()['toISOString']()},saveSettings(),_0x7da777(_0x51f32a(0x303)+_0x11f271+_0x51f32a(0x2f9)+_0x543742['start']+'-'+_0x1da32e,_0x51f32a(0x2ad));}_0x7da777(_0x51f32a(0x20a)+_0x16cc2c+_0x51f32a(0x1f2),_0x51f32a(0x1f1));const _0x4ea196=_0x26cb28[_0x51f32a(0x238)](_0x57e000=>{const _0x149534=_0x51f32a,_0x2739f4=_0x11c11e[_0x149534(0x26d)](_0x35454a=>_0x35454a===_0x57e000),_0x3690fe=_0x2739f4!==-0x1?_0x2739f4+0x1:-0x1,_0x27be40=_0x57e000[_0x149534(0x241)]?'用户':getCharacterName()||'AI';return'['+_0x27be40+_0x149534(0x212)+_0x3690fe+']\x20的消息已成功凝识。';});return{'success':!![],'count':_0x16cc2c,'messages':_0x4ea196};}catch(_0x507fea){return console['error'](_0x51f32a(0x285),_0x507fea),_0x7da777('[翰林院-核心]\x20聊天记录凝识失败:\x20'+_0x507fea[_0x51f32a(0x30d)],'error'),{'success':![],'error':_0x507fea[_0x51f32a(0x30d)]};}}async function handleAutoCondensation(){const _0x167fb1=_0x1f6706;if(!settings||!settings['condensation']||!settings['condensation']['enabled']||!settings[_0x167fb1(0x31d)][_0x167fb1(0x2f7)])return;setTimeout(async()=>{const _0x233965=_0x167fb1;try{const _0x2e2baa=settings[_0x233965(0x31d)][_0x233965(0x2b0)]||0x0,_0x3bfb18=context[_0x233965(0x240)][_0x233965(0x21f)],_0x64779c=getChatId();if(!_0x64779c){console['warn']('[翰林院-自动凝识]\x20无法获取聊天ID,跳过。');return;}!settings[_0x233965(0x31d)][_0x233965(0x325)]&&(settings[_0x233965(0x31d)][_0x233965(0x325)]={});const _0x1dc9bc=settings[_0x233965(0x31d)][_0x233965(0x325)][_0x64779c]||0x0,_0x3026f2=_0x1dc9bc+0x1,_0x30816a=_0x3bfb18-_0x2e2baa;if(_0x3026f2>_0x30816a)return;const _0x3ddbdd=_0x3026f2-0x1,_0xb871ec=_0x30816a,_0x1a0825=context['chat'][_0x233965(0x2bb)](_0x3ddbdd,_0xb871ec);if(_0x1a0825[_0x233965(0x21f)]===0x0)return;console[_0x233965(0x309)](_0x233965(0x2ce)+_0x3026f2+'\x20-\x20'+_0x30816a+_0x233965(0x2ff)+_0x64779c+')');const _0x30688a=0x64;let _0x167fde=_0x3026f2;while(_0x167fde<=_0x30816a){const _0x5be6d9=Math[_0x233965(0x31b)]((_0x167fde-0x1)/_0x30688a),_0x2a4b13=_0x5be6d9*_0x30688a+0x1,_0x368316=(_0x5be6d9+0x1)*_0x30688a,_0x5f442a=Math[_0x233965(0x28f)](_0x30816a,_0x368316),_0xafd1ea=_0x167fde-_0x3026f2,_0x5144c1=_0x5f442a-_0x3026f2+0x1,_0xb52c5b=_0x1a0825[_0x233965(0x2bb)](_0xafd1ea,_0x5144c1);if(_0xb52c5b[_0x233965(0x21f)]>0x0){const _0x11cc23={'start':_0x167fde,'end':_0x5f442a},_0xbd34fb=getCharacterName()+_0x233965(0x2ba)+_0x2a4b13+'-'+_0x368316+')';console[_0x233965(0x309)](_0x233965(0x23a)+_0x167fde+'-'+_0x5f442a+_0x233965(0x273)+_0xbd34fb);const _0x58f779=await processCondensation(_0xb52c5b,(_0x32f30e,_0x1c9b4e)=>{const _0x30088c=_0x233965;if(_0x1c9b4e===_0x30088c(0x28e))console[_0x30088c(0x28e)](_0x32f30e);else console[_0x30088c(0x309)](_0x32f30e);},_0x11cc23,_0xbd34fb);if(_0x58f779['success'])settings['condensation'][_0x233965(0x325)][_0x64779c]=_0x5f442a,saveSettings();else{console[_0x233965(0x28e)](_0x233965(0x25c)+_0xbd34fb+_0x233965(0x1f6));break;}}_0x167fde=_0x5f442a+0x1;}}catch(_0x929685){console[_0x233965(0x28e)](_0x233965(0x32f),_0x929685);}},0x7d0);}function preprocessQueryText(_0x21d921){const _0x11a96a=_0x1f6706;if(!settings[_0x11a96a(0x234)]['enabled'])return _0x21d921;let _0x582709=_0x21d921;const {tagExtractionEnabled:_0x5f4d5c,tags:_0x50441e,exclusionRules:_0x30eb6f}=settings[_0x11a96a(0x234)];if(_0x5f4d5c&&_0x50441e){const _0x3ebeee=_0x50441e[_0x11a96a(0x331)](',')['map'](_0x3db516=>_0x3db516[_0x11a96a(0x299)]())['filter'](Boolean);if(_0x3ebeee['length']>0x0){const _0x183805=extractBlocksByTags(_0x582709,_0x3ebeee);_0x582709=_0x183805[_0x11a96a(0x324)]('\x0a\x0a');}}_0x30eb6f&&_0x30eb6f[_0x11a96a(0x21f)]>0x0&&(_0x582709=applyExclusionRules(_0x582709,_0x30eb6f));const _0x51e9d2=_0x582709[_0x11a96a(0x299)]();return _0x21d921!==_0x51e9d2&&(console[_0x11a96a(0x309)](_0x11a96a(0x308)+_0x21d921+'\x22'),console['log'](_0x11a96a(0x220)+_0x51e9d2+'\x22')),_0x51e9d2;}async function rerankResults(_0x5d7a31,_0x1cac65,_0x3b25f0){const _0xb2990f=_0x1f6706;let _0x20e582=_0x5d7a31,_0x5f1759=![];if(_0x3b25f0['rerank'][_0xb2990f(0x2a4)]&&_0x5d7a31[_0xb2990f(0x21f)]>0x0){console['log'](_0xb2990f(0x253));try{const _0x36c604=_0x5d7a31[_0xb2990f(0x238)](_0x2825a9=>_0x2825a9[_0xb2990f(0x211)]),_0x3fb514=await executeRerank(_0x1cac65,_0x36c604,_0x3b25f0['rerank']),_0xbf456=_0x5d7a31[_0xb2990f(0x238)]((_0x43ec35,_0x1574c1)=>({..._0x43ec35,'original_index':_0x1574c1}));_0x20e582=_0xbf456[_0xb2990f(0x238)](_0x5e4f52=>{const _0x5122fe=_0xb2990f,_0x1f599a=_0x3fb514['results'][_0x5122fe(0x2be)](_0x5ea4aa=>_0x5ea4aa[_0x5122fe(0x301)]===_0x5e4f52[_0x5122fe(0x214)]),_0x5f2bbd=_0x1f599a?_0x1f599a['relevance_score']:0x0;return{..._0x5e4f52,'rerank_score':_0x5f2bbd};}),_0x5f1759=!![];}catch(_0x171c43){console[_0xb2990f(0x28e)](_0xb2990f(0x333),_0x171c43);if(_0x3b25f0['rerank'][_0xb2990f(0x2bf)])showNotification(_0xb2990f(0x21b)+_0x171c43[_0xb2990f(0x30d)],_0xb2990f(0x28e));_0x20e582['forEach'](_0x2af6f7=>_0x2af6f7['rerank_score']=0x0);}}else _0x20e582[_0xb2990f(0x2af)](_0x29c7e6=>_0x29c7e6[_0xb2990f(0x204)]=0x0);console['log'](_0xb2990f(0x229));const _0x499671=context[_0xb2990f(0x240)][_0xb2990f(0x21f)],_0x40d49d=_0x3b25f0[_0xb2990f(0x235)][_0xb2990f(0x2da)],_0x5d37e9=_0x20e582[_0xb2990f(0x238)](_0x3a374a=>{const _0x7aa59e=_0xb2990f;let _0x19ccbc=0x1;const _0x58bb3b=_0x3a374a[_0x7aa59e(0x281)]||{};switch(_0x58bb3b[_0x7aa59e(0x2f2)]){case _0x7aa59e(0x310):_0x19ccbc*=1.2;break;case'manual':_0x19ccbc*=1.1;break;case'chat_history':if(_0x58bb3b[_0x7aa59e(0x31b)]&&_0x499671>0x0){const _0x2d3218=_0x58bb3b[_0x7aa59e(0x31b)]/_0x499671;_0x19ccbc*=0x1+_0x2d3218;}break;}const _0x175d1c=_0x3a374a[_0x7aa59e(0x204)]*_0x40d49d+(_0x3a374a['score']||0x0)*(0x1-_0x40d49d),_0x3f87f7=_0x175d1c*_0x19ccbc;return{'text':_0x3a374a[_0x7aa59e(0x211)],'score':_0x3a374a[_0x7aa59e(0x300)],'rerank_score':_0x3a374a[_0x7aa59e(0x204)],'final_score':_0x3f87f7,'metadata':_0x3a374a[_0x7aa59e(0x281)]};});_0x5d37e9[_0xb2990f(0x2fb)]((_0x3fde2b,_0x47806c)=>(_0x47806c[_0xb2990f(0x32e)]||0x0)-(_0x3fde2b[_0xb2990f(0x32e)]||0x0)),console[_0xb2990f(0x309)](_0xb2990f(0x28d));let _0x11f3bc=_0x5d37e9;return _0x3b25f0[_0xb2990f(0x235)][_0xb2990f(0x283)]&&(_0x11f3bc=superSort(_0x5d37e9)),{'results':_0x11f3bc['slice'](0x0,_0x3b25f0[_0xb2990f(0x235)][_0xb2990f(0x2ae)]),'reranked':_0x5f1759};}async function rearrangeChat(_0x3e3bac,_0x2c8100,_0x10ad24,_0x4d6c3a){const _0xa7d5a0=_0x1f6706,_0x469b26={'novel':_0xa7d5a0(0x2f4),'chat_history':_0xa7d5a0(0x20c),'lorebook':_0xa7d5a0(0x265),'manual':_0xa7d5a0(0x339),'graph':_0xa7d5a0(0x289)};Object['values'](_0x469b26)[_0xa7d5a0(0x2af)](_0x20b619=>setExtensionPrompt(_0x20b619,'',0x0,0x0,![],0x0));if(_0x4d6c3a==='quiet'||!settings['retrieval'][_0xa7d5a0(0x2a4)])return;const _0x1bb1e8=_0x3e3bac[_0xa7d5a0(0x2bb)](-settings['advanced'][_0xa7d5a0(0x32d)]);if(_0x1bb1e8[_0xa7d5a0(0x21f)]===0x0)return;const _0x333038=settings[_0xa7d5a0(0x234)];let _0x5902f3='';const _0x118fde=[];for(const _0x1cf346 of _0x1bb1e8){if(_0x1cf346[_0xa7d5a0(0x241)]){_0x118fde['push'](_0x1cf346[_0xa7d5a0(0x28a)]);continue;}if(_0x333038[_0xa7d5a0(0x2a4)]&&_0x333038[_0xa7d5a0(0x2ab)]){const _0x13ac9c=(_0x333038[_0xa7d5a0(0x2fd)]||'')[_0xa7d5a0(0x331)](',')[_0xa7d5a0(0x238)](_0x41d3bc=>_0x41d3bc[_0xa7d5a0(0x299)]())['filter'](Boolean);if(_0x13ac9c[_0xa7d5a0(0x21f)]>0x0){const _0x2ba6e4=extractBlocksByTags(_0x1cf346[_0xa7d5a0(0x28a)],_0x13ac9c);if(_0x2ba6e4[_0xa7d5a0(0x21f)]>0x0){const _0x3d59d7=_0x2ba6e4[_0xa7d5a0(0x238)](_0x42b025=>{const _0x2ff4cf=_0x42b025['match'](/<[^>]+>([\s\S]*?)<\/[^>]+>/);return _0x2ff4cf?_0x2ff4cf[0x1]['trim']():'';});_0x118fde[_0xa7d5a0(0x2db)](_0x3d59d7['filter'](Boolean)[_0xa7d5a0(0x324)]('\x0a\x0a'));}}else _0x118fde['push'](_0x1cf346[_0xa7d5a0(0x28a)]);}else _0x118fde[_0xa7d5a0(0x2db)](_0x1cf346['mes']);}_0x5902f3=_0x118fde[_0xa7d5a0(0x29e)](Boolean)[_0xa7d5a0(0x324)]('\x0a\x0a');_0x333038['enabled']&&(_0x5902f3=applyExclusionRules(_0x5902f3,_0x333038[_0xa7d5a0(0x263)]));_0x5902f3=_0x5902f3['trim']();if(!_0x5902f3){console[_0xa7d5a0(0x309)](_0xa7d5a0(0x2bc));return;}const _0x52f754=_0x5902f3[_0xa7d5a0(0x24c)](/(M\d+)/g);if(_0x52f754){const _0x24f4b9=[...new Set(_0x52f754)],_0x5b5c86=_0x24f4b9[_0xa7d5a0(0x238)](_0x12fa5b=>_0xa7d5a0(0x266)+_0x12fa5b+']')[_0xa7d5a0(0x324)]('\x20');_0x5902f3+='\x0a\x0a'+_0x5b5c86,console[_0xa7d5a0(0x309)](_0xa7d5a0(0x33b)+_0x5b5c86);}console[_0xa7d5a0(0x309)](_0xa7d5a0(0x2fe)+_0x5902f3+'\x22');try{const _0x1fda1b=await executeGraphRetrieval(_0x5902f3);_0x1fda1b&&(console[_0xa7d5a0(0x309)]('[翰林院]\x20成功获取关系图谱上下文,准备注入。'),setExtensionPrompt(_0x469b26['graph'],_0x1fda1b,settings[_0xa7d5a0(0x2e8)]?settings['injection_lorebook'][_0xa7d5a0(0x2cd)]:0x0,settings[_0xa7d5a0(0x2e8)]?settings[_0xa7d5a0(0x2e8)]['depth']:0x4,![],0x0));const _0x439688=0x2,_0x33b3c0=settings[_0xa7d5a0(0x27b)]||0x1;let _0x520168=![];if(_0x33b3c0<_0x439688){console[_0xa7d5a0(0x309)](_0xa7d5a0(0x245)+_0x33b3c0+_0xa7d5a0(0x24f)),toastr['info'](_0xa7d5a0(0x338),_0xa7d5a0(0x29d));const _0x1a6a69=getKnowledgeBases();for(const _0x289a2d of Object[_0xa7d5a0(0x2e4)](_0x1a6a69)){const _0x573622=_0x289a2d[_0xa7d5a0(0x275)],_0x15df7d=_0x289a2d['source'];if(_0x573622[_0xa7d5a0(0x280)](_0xa7d5a0(0x319)))_0x289a2d[_0xa7d5a0(0x2f2)]=_0xa7d5a0(0x318);else{if(_0x573622[_0xa7d5a0(0x280)](_0xa7d5a0(0x2e6)))_0x289a2d[_0xa7d5a0(0x2f2)]=_0xa7d5a0(0x2e3);else _0x573622['includes']('楼-')&&_0x573622[_0xa7d5a0(0x27f)]('楼')&&_0x573622['includes'](':')?_0x289a2d['source']=_0xa7d5a0(0x2a6):_0x289a2d['source']=_0xa7d5a0(0x310);}_0x15df7d!==_0x289a2d[_0xa7d5a0(0x2f2)]&&console['log']('[翰林院-户口普查]\x20知识库\x20\x22'+_0x573622+_0xa7d5a0(0x2f5)+(_0x15df7d||'无')+_0xa7d5a0(0x22b)+_0x289a2d[_0xa7d5a0(0x2f2)]+']');}settings[_0xa7d5a0(0x27b)]=_0x439688,_0x520168=!![];}_0x520168&&(console[_0xa7d5a0(0x309)](_0xa7d5a0(0x1f9)),saveSettings());let _0x2357d8=[];const _0x347c7b=settings[_0xa7d5a0(0x235)][_0xa7d5a0(0x23f)];if(_0x347c7b[_0xa7d5a0(0x2a4)]){console[_0xa7d5a0(0x309)]('[翰林院]\x20进入多路并行独立检索流程...');const _0x2b0663=Object[_0xa7d5a0(0x2e4)](getKnowledgeBases())[_0xa7d5a0(0x29e)](_0x323dfa=>_0x323dfa[_0xa7d5a0(0x2a4)]),_0x2671f5=Object[_0xa7d5a0(0x330)](_0x347c7b[_0xa7d5a0(0x2d3)])[_0xa7d5a0(0x29e)](_0x32fb81=>_0x347c7b[_0xa7d5a0(0x2d3)][_0x32fb81]&&_0x347c7b[_0xa7d5a0(0x2d3)][_0x32fb81][_0xa7d5a0(0x2a4)]),_0x1b21b1=[];let _0x37f1b1=[..._0x2b0663];for(const _0x3b927e of _0x2671f5){const _0x9a10fc=_0x347c7b[_0xa7d5a0(0x2d3)][_0x3b927e],_0x546b3f=_0x37f1b1[_0xa7d5a0(0x29e)](_0x322c0c=>_0x322c0c['source']===_0x3b927e);_0x37f1b1=_0x37f1b1[_0xa7d5a0(0x29e)](_0xd43d8d=>!_0x546b3f[_0xa7d5a0(0x27f)](_0xd43d8d));if(_0x546b3f['length']>0x0){console[_0xa7d5a0(0x309)](_0xa7d5a0(0x227)+_0x3b927e+'\x20('+_0x546b3f[_0xa7d5a0(0x21f)]+_0xa7d5a0(0x2ec));const _0x35c884=queryVectors(_0x5902f3,{'includeBases':_0x546b3f})[_0xa7d5a0(0x2b2)](_0x408022=>{const _0x572e47=_0xa7d5a0;console[_0x572e47(0x309)](_0x572e47(0x288)+_0x3b927e+_0x572e47(0x23e)+_0x408022[_0x572e47(0x21f)]+_0x572e47(0x298));let _0x39e6cf=_0x408022[_0x572e47(0x29e)](_0x4e214e=>_0x4e214e[_0x572e47(0x281)]?.[_0x572e47(0x2f2)]===_0x3b927e);return _0x39e6cf=_0x39e6cf[_0x572e47(0x2bb)](0x0,_0x9a10fc[_0x572e47(0x2c1)]),console[_0x572e47(0x309)](_0x572e47(0x294)+_0x3b927e+_0x572e47(0x237)+_0x39e6cf[_0x572e47(0x21f)]+_0x572e47(0x298)),settings[_0x572e47(0x235)]['superSortEnabled']&&(_0x39e6cf=superSort(_0x39e6cf)),_0x39e6cf;});_0x1b21b1[_0xa7d5a0(0x2db)](_0x35c884);}}const _0x453cf2=_0x37f1b1;if(_0x453cf2[_0xa7d5a0(0x21f)]>0x0){console[_0xa7d5a0(0x309)]('[翰林院]\x20创建常规查询组\x20('+_0x453cf2[_0xa7d5a0(0x21f)]+_0xa7d5a0(0x2ec));const _0x5e8f1d=queryVectors(_0x5902f3,{'includeBases':_0x453cf2})[_0xa7d5a0(0x2b2)](async _0x5e9a8d=>{const _0x363bd9=_0xa7d5a0;console[_0x363bd9(0x309)](_0x363bd9(0x2d0)+_0x5e9a8d[_0x363bd9(0x21f)]+'\x20条结果。'),console['log'](_0x363bd9(0x2d7));const _0x59b62e=await rerankResults(_0x5e9a8d,_0x5902f3,settings),_0x2709ad=_0x59b62e[_0x363bd9(0x216)];return console[_0x363bd9(0x309)](_0x363bd9(0x274)+(_0x2709ad||[])[_0x363bd9(0x21f)]+_0x363bd9(0x298)),_0x59b62e[_0x363bd9(0x244)]&&settings['rerank'][_0x363bd9(0x2bf)]&&showNotification(_0x363bd9(0x23b),_0x363bd9(0x1f1)),_0x2709ad;});_0x1b21b1[_0xa7d5a0(0x2db)](_0x5e8f1d);}const _0xc486cc=await Promise[_0xa7d5a0(0x256)](_0x1b21b1);_0x2357d8=_0xc486cc[_0xa7d5a0(0x2c0)]();}else{console[_0xa7d5a0(0x309)](_0xa7d5a0(0x264));const _0x43abb9=await queryVectors(_0x5902f3),_0x13aa70=await rerankResults(_0x43abb9,_0x5902f3,settings);_0x2357d8=_0x13aa70[_0xa7d5a0(0x216)],_0x13aa70[_0xa7d5a0(0x244)]&&settings['rerank']['notify']&&showNotification('外部Rerank完成',_0xa7d5a0(0x1f1));}if(!_0x2357d8||_0x2357d8['length']===0x0){console[_0xa7d5a0(0x309)]('[翰林院]\x20最终无可用结果,注入中止。');return;}console['log'](_0xa7d5a0(0x31e)+_0x2357d8['length']+'\x20条结果。');const _0x32a8ea={'novel':[],'chat_history':[],'lorebook':[],'manual':[]};_0x2357d8['forEach'](_0x797c24=>{const _0x236f7e=_0xa7d5a0,_0x21ebcb=_0x797c24['metadata']?.[_0x236f7e(0x2f2)];_0x21ebcb&&_0x32a8ea['hasOwnProperty'](_0x21ebcb)&&_0x32a8ea[_0x21ebcb][_0x236f7e(0x2db)](_0x797c24);});for(const _0x417a77 in _0x32a8ea){const _0x216e60=_0x32a8ea[_0x417a77];if(_0x216e60[_0xa7d5a0(0x21f)]===0x0)continue;const _0x4ed9bb=settings[_0xa7d5a0(0x2c8)+_0x417a77[_0xa7d5a0(0x2c4)](_0xa7d5a0(0x317),'')];if(!_0x4ed9bb){console['warn'](_0xa7d5a0(0x2ea)+_0x417a77+_0xa7d5a0(0x315));continue;}const _0x419586=_0x216e60[_0xa7d5a0(0x238)](_0x2786e=>_0x2786e['text'])['join']('\x0a\x0a'),_0x173f0f='{{'+_0x417a77[_0xa7d5a0(0x2c4)](_0xa7d5a0(0x317),'')+_0xa7d5a0(0x223);let _0x5d1541=_0x4ed9bb['template'][_0xa7d5a0(0x2c4)](_0x173f0f,_0x419586);_0x5d1541['trim']()&&(_0x5d1541='%%'+_0x469b26[_0x417a77]+'%%'+_0x5d1541),setExtensionPrompt(_0x469b26[_0x417a77],_0x5d1541,_0x4ed9bb[_0xa7d5a0(0x2cd)],_0x4ed9bb['depth'],![],_0x4ed9bb['depth_role']),console[_0xa7d5a0(0x309)](_0xa7d5a0(0x2a2)+_0x417a77+_0xa7d5a0(0x205)+_0x216e60[_0xa7d5a0(0x21f)]+_0xa7d5a0(0x248));}}catch(_0x434c27){console[_0xa7d5a0(0x28e)](_0xa7d5a0(0x210),_0x434c27);if(settings[_0xa7d5a0(0x1f8)]['notify'])showNotification('忆识检索失败:\x20'+_0x434c27[_0xa7d5a0(0x30d)],'error');}}async function moveKnowledgeBase(_0x58fab5,_0xe73892){const _0x37d536=_0x1f6706,_0x3c1c9f=_0xe73892==='global'?_0x37d536(0x277):_0x37d536(0x28b),_0xd8f2dc=getCharacterStableId();if(!_0xd8f2dc&&_0x3c1c9f===_0x37d536(0x277)){toastr[_0x37d536(0x28e)](_0x37d536(0x217));return;}const _0x9e934b=_0xe73892==='global'?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x2efaf7=_0x3c1c9f==='global'?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x196163=_0x9e934b[_0x58fab5];if(!_0x196163){const _0x50a997=_0x37d536(0x290)+_0xe73892+_0x37d536(0x33a)+_0x58fab5+_0x37d536(0x271);console['error'](_0x37d536(0x2b1)+_0x50a997),toastr['error']('移动失败:未找到源条目。');return;}_0xe73892===_0x37d536(0x277)&&_0x3c1c9f===_0x37d536(0x28b)&&!_0x196163[_0x37d536(0x22a)]&&(console[_0x37d536(0x309)](_0x37d536(0x2f1)+_0x58fab5+'\x20补充所有者ID:\x20'+_0xd8f2dc),_0x196163[_0x37d536(0x22a)]=_0xd8f2dc);delete _0x9e934b[_0x58fab5],_0x2efaf7[_0x58fab5]=_0x196163,saveSettings();const _0xd9929a=_0x37d536(0x22f)+_0x196163['name']+_0x37d536(0x252)+(_0x3c1c9f===_0x37d536(0x28b)?'全局':'局部')+'。';console[_0x37d536(0x309)](_0x37d536(0x2b1)+_0xd9929a);}function renameKnowledgeBase(_0x38370a,_0x2f30da,_0x6ee401){const _0x383ae3=_0x1f6706;if(!_0x2f30da||!_0x2f30da[_0x383ae3(0x299)]()){toastr['error'](_0x383ae3(0x30e));throw new Error(_0x383ae3(0x329));}const _0x438174=_0x6ee401==='global'?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x57563a=_0x438174[_0x38370a];if(!_0x57563a){const _0x2410a6=_0x383ae3(0x323)+_0x6ee401+'\x27\x20中未找到ID为\x20'+_0x38370a+'\x20的知识库。';console['error']('[翰林院-配置]\x20'+_0x2410a6),toastr[_0x383ae3(0x28e)]('重命名失败:未找到知识库条目。');throw new Error(_0x2410a6);}const _0x2f3780=_0x57563a[_0x383ae3(0x275)];_0x57563a[_0x383ae3(0x275)]=_0x2f30da[_0x383ae3(0x299)](),saveSettings();const _0x3e6adf='知识库\x20\x22'+_0x2f3780+'\x22\x20已成功重命名为\x20\x22'+_0x57563a['name']+'\x22。';console[_0x383ae3(0x309)](_0x383ae3(0x2b1)+_0x3e6adf),toastr['success'](_0x3e6adf);}async function getAllVectorsFromCollection(_0x422309){const _0x52b34d=_0x1f6706,_0x545a76='*',_0x46b0f5={'collectionId':_0x422309,'searchText':_0x545a76,'topK':0x2710,'threshold':0x0,'source':_0x52b34d(0x2b7),'embeddings':{}},_0x596ae5=(await getEmbeddings([_0x545a76]))[0x0];_0x46b0f5[_0x52b34d(0x2f6)]={[_0x545a76]:_0x596ae5};const _0x2ab15c=await fetch(_0x52b34d(0x1ff),{'method':'POST','headers':context['getRequestHeaders'](),'body':JSON[_0x52b34d(0x326)](_0x46b0f5)});if(!_0x2ab15c['ok']){if(_0x2ab15c[_0x52b34d(0x2ca)]===0x194)return console[_0x52b34d(0x309)]('[翰林院-迁移]\x20集合\x20'+_0x422309+_0x52b34d(0x1fb)),[];const _0x1c3ab7=await _0x2ab15c[_0x52b34d(0x211)]();throw new Error(_0x52b34d(0x270)+_0x422309+'\x20失败:\x20'+_0x1c3ab7);}const _0x102bbb=await _0x2ab15c[_0x52b34d(0x25d)]();return _0x102bbb[_0x52b34d(0x281)]||_0x102bbb[_0x52b34d(0x216)]||_0x102bbb['data']||[];}
|