diff --git a/core/rag-processor.js b/core/rag-processor.js index 507deb5..1954c64 100644 --- a/core/rag-processor.js +++ b/core/rag-processor.js @@ -1 +1 @@ -'use strict';const _0x31e176=_0x2fe0;(function(_0x44c9c9,_0x2afb28){const _0x1c96cb=_0x2fe0,_0x4f7919=_0x44c9c9();while(!![]){try{const _0x5f12c1=parseInt(_0x1c96cb(0x215))/0x1*(parseInt(_0x1c96cb(0x213))/0x2)+-parseInt(_0x1c96cb(0x1e5))/0x3+-parseInt(_0x1c96cb(0x225))/0x4+parseInt(_0x1c96cb(0x21e))/0x5*(parseInt(_0x1c96cb(0x260))/0x6)+parseInt(_0x1c96cb(0x264))/0x7*(-parseInt(_0x1c96cb(0x239))/0x8)+-parseInt(_0x1c96cb(0x201))/0x9+parseInt(_0x1c96cb(0x221))/0xa*(parseInt(_0x1c96cb(0x1ee))/0xb);if(_0x5f12c1===_0x2afb28)break;else _0x4f7919['push'](_0x4f7919['shift']());}catch(_0x40a4db){_0x4f7919['push'](_0x4f7919['shift']());}}}(_0x4a15,0xdd078));import{extension_prompt_roles,setExtensionPrompt}from'/script.js';import*as _0x1763b7 from'./utils/context-utils.js';import{getCollectionIdInfo,getCharacterId,getCharacterStableId}from'./utils/context-utils.js';import{defaultSettings as _0x1e160b}from'./rag-settings.js';import*as _0x16db44 from'./ingestion-manager.js';import{getEmbeddings,fetchEmbeddingModels as _0x128292,fetchRerankModels as _0x8ed07f,executeRerank,testApiConnection as _0x244eee}from'./rag-api.js';const MODULE_NAME='hanlinyuan-rag-core',OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME='vectors_rearrangeChat',GLOBAL_SCOPE_ID=_0x31e176(0x216);let context=null,settings=null,lockedCollectionId=null;export{initialize,getSettings,saveSettings,resetSettings,_0x244eee as testApiConnection,_0x128292 as fetchEmbeddingModels,_0x8ed07f as fetchRerankModels,getVectorCount,purgeStorage,getMessagesForCondensation,processCondensation,ingestTextToHanlinyuan,getCollectionId,toggleSessionLock,isSessionLocked,getLockedSessionInfo,addKnowledgeBase,removeKnowledgeBase,getLocalKnowledgeBases,getGlobalKnowledgeBases,toggleKnowledgeBase,moveKnowledgeBase};function initialize(){const _0x3af5bd=_0x31e176;context=SillyTavern[_0x3af5bd(0x1f4)]();if(!context){console['error'](_0x3af5bd(0x1f9));return;}settings=getSettings(),!window['hanlinyuanRagProcessor']&&(window[_0x3af5bd(0x1d4)]={}),window[_0x3af5bd(0x1d4)][_0x3af5bd(0x1c1)]=rearrangeChat,window[_0x3af5bd(0x1d4)][_0x3af5bd(0x1fd)]=!![],console[_0x3af5bd(0x25d)](_0x3af5bd(0x1aa));}async function ingestTextToHanlinyuan(_0x53c37a,_0x3f24af=_0x31e176(0x23e),_0x2f450d={},_0x2f22ab=()=>{},_0xb051ce=null,_0x111edd=()=>{},_0x1bf921=()=>{},_0x100cb3=null,_0x270a2a=0x0){const _0x436f6a=_0x31e176;if(!_0x53c37a||!_0x53c37a[_0x436f6a(0x231)]())return{'success':![],'error':'输入文本为空'};if(!settings)return{'success':![],'error':'核心未初始化'};try{const _0x1c1187=getCollectionIdInfo(),_0x4aa5a9=await _0x5487d3();if(_0x1c1187['oldId']&&_0x1c1187[_0x436f6a(0x1be)]===_0x4aa5a9&&_0x1c1187[_0x436f6a(0x1be)]!==_0x1c1187[_0x436f6a(0x1b5)]){const _0x189670=confirm(_0x436f6a(0x277));if(_0x189670)_0x111edd(_0x436f6a(0x1c4)+_0x1c1187[_0x436f6a(0x1be)],_0x436f6a(0x282)),await purgeStorage(_0x1c1187[_0x436f6a(0x1be)]),_0x111edd(_0x436f6a(0x1a9),_0x436f6a(0x19b));else return _0x111edd(_0x436f6a(0x21c),_0x436f6a(0x210)),toastr[_0x436f6a(0x210)](_0x436f6a(0x21b)),{'success':![],'error':_0x436f6a(0x24a)};}let _0x4c2098,_0x5d6016;const _0xa81d06=new Date()[_0x436f6a(0x1a6)](_0x436f6a(0x23b),{'hour12':![]}),_0x4a1ae5=getCharacterName()||'未知角色';switch(_0x3f24af){case _0x436f6a(0x263):const _0x40135=_0x2f450d[_0x436f6a(0x20f)]||{},_0x51d60f=_0x40135['start']??'?',_0x219f56=_0x40135['end']===0x0?'末':_0x40135[_0x436f6a(0x288)]??'?';_0x4c2098=_0x4a1ae5+':\x20'+_0x51d60f+'楼-'+_0x219f56+'楼';break;case _0x436f6a(0x19e):const _0x4bbb27=_0x2f450d[_0x436f6a(0x1b6)]||_0x436f6a(0x211),_0x3bddcb=_0x2f450d[_0x436f6a(0x1d6)]||_0x436f6a(0x25f);_0x4c2098=_0x4bbb27+':\x20'+_0x3bddcb;break;case'novel':_0x4c2098=_0x436f6a(0x1db)+(_0x2f450d['sourceName']||_0x436f6a(0x1a0));break;case _0x436f6a(0x23e):default:_0x4c2098=_0x436f6a(0x256)+_0xa81d06;break;}const _0x3c2910=Object[_0x436f6a(0x1f8)](getKnowledgeBases()),_0x17f043=_0x3c2910[_0x436f6a(0x22a)](_0x417e8b=>_0x417e8b['name']===_0x4c2098);if(_0x17f043)_0x5d6016=_0x17f043['id'],_0x111edd(_0x436f6a(0x1a5)+_0x4c2098+_0x436f6a(0x248),_0x436f6a(0x210));else{_0x111edd(_0x436f6a(0x26d)+_0x4c2098+_0x436f6a(0x205),'info');const _0x49e185=addKnowledgeBase(_0x4c2098);_0x5d6016=_0x49e185['id'];}const _0x3a079d=getCharacterStableId(),_0x4b0705=_0x3a079d+'_'+_0x5d6016;_0x111edd(_0x436f6a(0x1b2)+_0x4c2098+'\x20(集合ID:\x20'+_0x4b0705+')',_0x436f6a(0x19b)),_0x111edd(_0x436f6a(0x249)+_0x4b0705,_0x436f6a(0x210)),_0x2f22ab({'message':_0x436f6a(0x1ad),'processed':0x0,'total':0x1});const _0x4bc2db=splitIntoChunks(_0x53c37a,_0x3f24af,_0x2f450d),_0x283897=_0x4bc2db['length'];if(_0xb051ce?.[_0x436f6a(0x227)])throw new Error(_0x436f6a(0x280));_0x111edd(_0x436f6a(0x1eb)+_0x4c2098+_0x436f6a(0x233)+_0x283897+'\x20个块。',_0x436f6a(0x210));if(_0x283897===0x0)return{'success':!![],'count':0x0};const _0x4fee51=settings['retrieval'][_0x436f6a(0x223)]||0x5;let _0x5b8610=_0x270a2a;for(let _0x138a35=_0x270a2a;_0x138a35<_0x283897;_0x138a35+=_0x4fee51){if(_0xb051ce?.[_0x436f6a(0x227)])throw new Error(_0x436f6a(0x280));const _0x3567f1=_0x4bc2db['slice'](_0x138a35,_0x138a35+_0x4fee51);_0x2f22ab({'message':_0x436f6a(0x19d)+(_0x138a35+0x1)+'-'+(_0x138a35+_0x3567f1[_0x436f6a(0x25a)])+'\x20块','processed':_0x138a35,'total':_0x283897});const _0xbb6d3=_0x3567f1[_0x436f6a(0x206)](_0x5264a5=>_0x5264a5[_0x436f6a(0x278)]),_0x44ba61=await getEmbeddings(_0xbb6d3,_0xb051ce);if(_0xb051ce?.[_0x436f6a(0x227)])throw new Error(_0x436f6a(0x280));if(_0x3567f1[_0x436f6a(0x25a)]!==_0x44ba61[_0x436f6a(0x25a)])throw new Error(_0x436f6a(0x1f5));const _0x37f32c=_0x3567f1[_0x436f6a(0x206)]((_0x4b1ffc,_0x3baabd)=>({..._0x4b1ffc,'vector':_0x44ba61[_0x3baabd]}));await insertVectors(_0x37f32c,_0xb051ce,_0x4b0705),_0x5b8610+=_0x3567f1[_0x436f6a(0x25a)],_0x100cb3&&_0x16db44['saveProgress'](_0x100cb3,_0x5b8610,_0x283897),await _0x1bf921();}return _0x100cb3&&_0x16db44[_0x436f6a(0x1ba)](_0x100cb3),_0x111edd(_0x436f6a(0x220)+_0x5b8610+_0x436f6a(0x275),_0x436f6a(0x19b)),{'success':!![],'count':_0x5b8610};}catch(_0x7ec1f3){if(_0x7ec1f3[_0x436f6a(0x19a)]==='AbortError'){_0x111edd(_0x436f6a(0x1f0),'warn');throw _0x7ec1f3;}return console[_0x436f6a(0x1b8)](_0x436f6a(0x1ef),_0x7ec1f3),_0x111edd(_0x436f6a(0x27b)+_0x7ec1f3[_0x436f6a(0x246)],'error'),{'success':![],'error':_0x7ec1f3[_0x436f6a(0x246)]};}}function getSettings(){const _0x311b41=_0x31e176;if(!context||!context[_0x311b41(0x1a3)])return structuredClone(_0x1e160b);let _0x579736=context[_0x311b41(0x1a3)][MODULE_NAME];!_0x579736&&(_0x579736={},context[_0x311b41(0x1a3)][MODULE_NAME]=_0x579736);_0x579736[_0x311b41(0x1f6)]===undefined&&(_0x579736['condensationHistory']={});_0x579736[_0x311b41(0x27c)]===undefined&&(_0x579736[_0x311b41(0x27c)]={});for(const _0x3112fc in _0x1e160b){if(_0x579736[_0x3112fc]===undefined)_0x579736[_0x3112fc]=structuredClone(_0x1e160b[_0x3112fc]);else{if(typeof _0x1e160b[_0x3112fc]==='object'&&!Array[_0x311b41(0x262)](_0x1e160b[_0x3112fc])&&_0x1e160b[_0x3112fc]!==null)for(const _0x3bd544 in _0x1e160b[_0x3112fc]){_0x579736[_0x3112fc][_0x3bd544]===undefined&&(_0x579736[_0x3112fc][_0x3bd544]=_0x1e160b[_0x3112fc][_0x3bd544]);}}}return _0x579736;}function saveSettings(){const _0x1785d8=_0x31e176;if(context)context[_0x1785d8(0x214)]();}function resetSettings(){const _0x16760f=_0x31e176;context&&(context[_0x16760f(0x1a3)][MODULE_NAME]=structuredClone(_0x1e160b),saveSettings());}function showNotification(_0x5aeead,_0x54914d=_0x31e176(0x210)){toastr[_0x54914d](_0x5aeead);}function getTagForSource(_0x4a7560){const _0x3c8577=_0x31e176;switch(_0x4a7560){case _0x3c8577(0x263):return _0x3c8577(0x20b);case'lorebook':return _0x3c8577(0x204);case'manual':return _0x3c8577(0x1a8);case _0x3c8577(0x1c7):return'小说录入';default:return'资料';}}function _0x2fe0(_0x2d4b8e,_0xe9367d){const _0x4a15e0=_0x4a15();return _0x2fe0=function(_0x2fe0ba,_0x339845){_0x2fe0ba=_0x2fe0ba-0x19a;let _0x5a0ffe=_0x4a15e0[_0x2fe0ba];return _0x5a0ffe;},_0x2fe0(_0x2d4b8e,_0xe9367d);}function splitIntoChunks(_0x2c45ee,_0x2a1450,_0x238040={}){const _0x2b6354=_0x31e176;switch(_0x2a1450){case _0x2b6354(0x1c7):return _chunkForNovel(_0x2c45ee,_0x238040);case _0x2b6354(0x263):return _chunkForChatHistory(_0x2c45ee,_0x238040);case _0x2b6354(0x19e):return _chunkForLorebook(_0x2c45ee,_0x238040);case'manual':return _chunkForManual(_0x2c45ee,_0x238040);default:console['warn'](_0x2b6354(0x283)+_0x2a1450+_0x2b6354(0x25e));return _chunkForManual(_0x2c45ee,{..._0x238040,'sourceName':_0x238040[_0x2b6354(0x24b)]||_0x2b6354(0x23f)});}}function _0x4a15(){const _0x5e7b30=['start','getRequestHeaders','[翰林院-核心]\x20processCondensation\x20失败:','[来源:\x20世界书,\x20条目:\x20','reduce','[翰林院-Rerank]\x20开始外部API重排序...','[翰林院-Rerank]\x20开始元数据加权最终排序...','toString','metadata','2001351Qgmcwx','】已成功移动到','查询集合\x20',',\x20向量化录入时间:\x20','condensation','vector','[翰林院-核心]\x20将来源\x27','[翰林院-日志]\x20获取集合\x20','[翰林院-核心]\x20聊天记录凝识完成,成功插入\x20','319yScoPj','[翰林院-核心]\x20ingestTextToHanlinyuan\x20失败:','[翰林院-核心]\x20文本录入任务被用户中止。','scope','\x20失败:\x20',',将清空集合:\x20','getContext','文本块和向量数量不匹配','condensationHistory','floor','values','[翰林院]\x20未能获取SillyTavern上下文,初始化失败。','score','No\x20messages\x20to\x20process.','[翰林院]\x20检索或注入时发生错误:','initialized','hybrid_alpha','legacy','[翰林院-日志]\x20查询知识库\x20','9120654cbKUju','mes','owner','世界书','\x22\x20创建专属知识库...','map','无法确定要清空的目标宝库。','...)','[翰林院-核心]\x20聊天记录凝识失败:\x20','[翰林院-日志]\x20去重后剩余\x20','聊天记录','[翰林院-日志]\x20清空宝库API错误:','depth_role','[翰林院-计数]\x20在作用域\x20\x27','range','info','未分类世界书','部分]','9458VpBlnq','saveSettingsDebounced','163uMrkRn','_global','charCodeAt','maxResults','notify','stringify','操作已取消。','[翰林院-迁移]\x20用户取消了迁移操作。','toISOString','792695oMFAHV','知识库\x20\x22','[翰林院-核心]\x20成功插入\x20','1090170GqpMjs',',\x20第','batchSize','retrieval','6650764fiDlMr','[翰林院-日志]\x20发送到\x20/api/vector/purge\x20的请求体:','aborted','rerank','\x20添加新知识库:\x20','find','enabled','\x20-\x20楼层\x20#','[翰林院-日志]\x20/api/vector/purge\x20响应状态:\x20','injection','webllm','slice','trim','[翰林院-核心]\x20尝试删除一个不存在的知识库:\x20','\x27的文本分割成\x20','rerank_score','position','send_date','join','\x20(ID:\x20','440tNXjqi','未知角色','zh-CN','世界书条目','\x20失败:','manual','未知来源','top_n','[来源:\x20','min','\x20返回\x20','[翰林院-核心]\x20已为角色\x20','has','message','[翰林院-日志]\x20忆识存入API错误:','\x22,将数据合并入库。','[翰林院-核心]\x20已锁定忆识宝库ID:\x20','用户取消了迁移操作','sourceName','配置更新','HANLINYUAN_RAG','advanced','[翰林院-迁移]\x20集合\x20','POST','quiet','\x0a0x0){const _0xa4e53a={'source':_0x152369(0x1c7),'sourceName':sourceName,'timestamp':new Date()[_0x152369(0x21d)](),'globalIndex':_0x4bb2be++,'volume':_0x5714a4,'chapter':_0x14f7c2,'section':_0x584ae7},_0x4183e7=getTagForSource('novel'),_0x435d27=_0x152369(0x241)+sourceName+',\x20'+_0x5714a4+',\x20'+_0x14f7c2+_0x152369(0x222)+_0x584ae7+'节]',_0x26b4d2='<'+_0x4183e7+'>\x0a'+_0x435d27+'\x0a'+_0x400add+'\x0a';_0x881074['push']({'text':_0x26b4d2,'metadata':_0xa4e53a}),_0x584ae7++;}_0x617a8d+=_0x4bb76e-_0x324415;if(_0x617a8d>=_0x54a604[_0x152369(0x25a)])break;}_0x49fa87=[];}for(const _0x32c8c0 of _0x40aac7){const _0xf1443f=_0x32c8c0['trim']();if(_0x5c9724[_0x177acb(0x285)](_0xf1443f))_0x36f7b9(),_0x5714a4=_0xf1443f,_0x14f7c2=_0x177acb(0x1c0);else _0xf45fe2['test'](_0xf1443f)?(_0x36f7b9(),_0x14f7c2=_0xf1443f):_0x49fa87[_0x177acb(0x1b1)](_0x32c8c0);}_0x36f7b9();if(_0x881074[_0x177acb(0x25a)]===0x0&&_0x16de32[_0x177acb(0x25a)]>0x0){let _0x3436a7=0x0,_0x3de6e6=0x1;while(_0x3436a7<_0x16de32['length']){const _0x16a8da=Math['min'](_0x3436a7+_0x4bb76e,_0x16de32[_0x177acb(0x25a)]),_0x1ae557=_0x16de32[_0x177acb(0x25b)](_0x3436a7,_0x16a8da),_0x35538d={'source':_0x177acb(0x1c7),'sourceName':sourceName,'timestamp':new Date()[_0x177acb(0x21d)](),'globalIndex':_0x881074['length'],'volume':_0x177acb(0x1ce),'chapter':_0x177acb(0x1c0),'section':_0x3de6e6},_0x12e40a=getTagForSource(_0x177acb(0x1c7)),_0x41929b='[来源:\x20'+sourceName+_0x177acb(0x1ca)+_0x3de6e6+'节]',_0x4a5f35='<'+_0x12e40a+'>\x0a'+_0x41929b+'\x0a'+_0x1ae557+_0x177acb(0x252)+_0x12e40a+'>';_0x881074[_0x177acb(0x1b1)]({'text':_0x4a5f35,'metadata':_0x35538d}),_0x3de6e6++,_0x3436a7+=_0x4bb76e-_0x324415;}}return _0x881074;}function _chunkForChatHistory(_0x4b3f92,_0x4fca6f){const _0x5c1feb=_0x31e176,{chunkSize:_0x5bd3eb,overlap:_0x3fdace}=settings[_0x5c1feb(0x24e)],{floor:_0x41b5bf,is_user:_0x2d709d,timestamp:_0x4bc29f}=_0x4fca6f,_0x537118=[];if(!_0x4b3f92||_0x5bd3eb<=0x0)return _0x537118;let _0x3ec202=0x1,_0x48bf96=0x0;while(_0x48bf96<_0x4b3f92[_0x5c1feb(0x25a)]){const _0x11b0a2=Math[_0x5c1feb(0x242)](_0x48bf96+_0x5bd3eb,_0x4b3f92[_0x5c1feb(0x25a)]),_0x1ded2f=_0x4b3f92[_0x5c1feb(0x25b)](_0x48bf96,_0x11b0a2),_0x56ed39=_0x5c1feb(0x1ac)+_0x41b5bf+_0x5c1feb(0x222)+_0x3ec202+_0x5c1feb(0x212),_0x493443=getTagForSource(_0x5c1feb(0x263)),_0x305862='<'+_0x493443+'>\x0a'+_0x56ed39+'\x0a'+_0x1ded2f+'\x0a';_0x537118[_0x5c1feb(0x1b1)]({'text':_0x305862,'metadata':{'source':_0x5c1feb(0x263),'sourceName':_0x5c1feb(0x27e)+_0x41b5bf,'floor':_0x41b5bf,'part':_0x3ec202,'is_user':_0x2d709d,'timestamp':_0x4bc29f}}),_0x3ec202++,_0x48bf96+=_0x5bd3eb-_0x3fdace;if(_0x48bf96>=_0x4b3f92[_0x5c1feb(0x25a)])break;}return _0x537118;}function _chunkForLorebook(_0x254e82,_0x5966f9){const _0x4b698b=_0x31e176,{chunkSize:_0x5ecee8,overlap:_0x14a769}=settings[_0x4b698b(0x24e)],{sourceName:sourceName=_0x4b698b(0x23c)}=_0x5966f9,_0x2a226d=[];if(!_0x254e82||_0x5ecee8<=0x0)return _0x2a226d;let _0x5bab7b=0x1,_0x38697a=0x0;while(_0x38697a<_0x254e82[_0x4b698b(0x25a)]){const _0x2e14d4=Math[_0x4b698b(0x242)](_0x38697a+_0x5ecee8,_0x254e82['length']),_0x583683=_0x254e82[_0x4b698b(0x25b)](_0x38697a,_0x2e14d4),_0x4a9731=_0x4b698b(0x1df)+sourceName+_0x4b698b(0x222)+_0x5bab7b+_0x4b698b(0x212),_0x1297f0=getTagForSource(_0x4b698b(0x19e)),_0x4feb22='<'+_0x1297f0+'>\x0a'+_0x4a9731+'\x0a'+_0x583683+_0x4b698b(0x252)+_0x1297f0+'>';_0x2a226d[_0x4b698b(0x1b1)]({'text':_0x4feb22,'metadata':{'source':'lorebook','sourceName':sourceName,'part':_0x5bab7b,'timestamp':new Date()['toISOString']()}}),_0x5bab7b++,_0x38697a+=_0x5ecee8-_0x14a769;if(_0x38697a>=_0x254e82[_0x4b698b(0x25a)])break;}return _0x2a226d;}function _chunkForManual(_0x2a003c,_0x14c22f){const _0x4887d1=_0x31e176,{chunkSize:_0x3ed84c,overlap:_0x144709}=settings[_0x4887d1(0x24e)],{sourceName:sourceName='手动录入'}=_0x14c22f,_0x3fdd6c=[];if(!_0x2a003c||_0x3ed84c<=0x0)return _0x3fdd6c;const _0x51efe6=new Date(),_0x3caf6d=_0x51efe6['toLocaleString'](_0x4887d1(0x23b));let _0x562272=0x1,_0x1a9b4f=0x0;while(_0x1a9b4f<_0x2a003c[_0x4887d1(0x25a)]){const _0x422921=Math[_0x4887d1(0x242)](_0x1a9b4f+_0x3ed84c,_0x2a003c[_0x4887d1(0x25a)]),_0x5540c0=_0x2a003c[_0x4887d1(0x25b)](_0x1a9b4f,_0x422921),_0x37c729=_0x4887d1(0x241)+sourceName+_0x4887d1(0x1e8)+_0x3caf6d+_0x4887d1(0x222)+_0x562272+_0x4887d1(0x212),_0x2fd7eb=getTagForSource(_0x4887d1(0x23e)),_0x181c1f='<'+_0x2fd7eb+'>\x0a'+_0x37c729+'\x0a'+_0x5540c0+_0x4887d1(0x252)+_0x2fd7eb+'>';_0x3fdd6c[_0x4887d1(0x1b1)]({'text':_0x181c1f,'metadata':{'source':'manual','sourceName':sourceName,'part':_0x562272,'timestamp':_0x51efe6[_0x4887d1(0x21d)]()}}),_0x562272++,_0x1a9b4f+=_0x3ed84c-_0x144709;if(_0x1a9b4f>=_0x2a003c['length'])break;}return _0x3fdd6c;}import{getCollectionId as _0x5487d3,getCharacterName}from'./utils/context-utils.js';async function getCollectionId(){return lockedCollectionId||await _0x5487d3();}async function toggleSessionLock(){return lockedCollectionId?(lockedCollectionId=null,![]):(lockedCollectionId=await _0x5487d3(),!![]);}function isSessionLocked(){return lockedCollectionId!==null;}function getLockedSessionInfo(){const _0x2c8e99=_0x31e176;if(!lockedCollectionId)return null;return{'id':lockedCollectionId,'name':'(已锁定:\x20'+lockedCollectionId[_0x2c8e99(0x25b)](0x0,0x8)+_0x2c8e99(0x208)};}function getLocalKnowledgeBases(){const _0x1e249b=_0x31e176,_0xf76499=getCharacterStableId();return!settings[_0x1e249b(0x27c)][_0xf76499]&&(settings[_0x1e249b(0x27c)][_0xf76499]={}),settings[_0x1e249b(0x27c)][_0xf76499];}function getGlobalKnowledgeBases(){const _0x830841=_0x31e176;return!settings[_0x830841(0x27c)][GLOBAL_SCOPE_ID]&&(settings[_0x830841(0x27c)][GLOBAL_SCOPE_ID]={}),settings[_0x830841(0x27c)][GLOBAL_SCOPE_ID];}function addKnowledgeBase(_0x23a794){const _0x14b346=_0x31e176;if(!_0x23a794||!_0x23a794['trim']())throw new Error(_0x14b346(0x1d2));const _0x420a12=getCharacterStableId(),_0x3243e6=getLocalKnowledgeBases(),_0x19454a='task_'+Date[_0x14b346(0x1d8)]()+'_'+Math[_0x14b346(0x268)]()[_0x14b346(0x1e3)](0x24)['substring'](0x2,0x9),_0x16415f={'id':_0x19454a,'name':_0x23a794[_0x14b346(0x231)](),'enabled':!![],'createdAt':new Date()['toISOString'](),'owner':_0x420a12};return _0x3243e6[_0x19454a]=_0x16415f,saveSettings(),console[_0x14b346(0x25d)](_0x14b346(0x244)+_0x420a12+_0x14b346(0x229)+_0x23a794+'\x20(ID:\x20'+_0x19454a+')'),_0x16415f;}async function removeKnowledgeBase(_0x46b484,_0x343d48){const _0x2c9a4d=_0x31e176,_0x23d174=getCharacterStableId(),_0x1c3cb8=_0x343d48==='global'?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x17319a=_0x1c3cb8[_0x46b484],_0x1c48d1=_0x17319a?.[_0x2c9a4d(0x19a)]||_0x46b484;if(!_0x17319a){console[_0x2c9a4d(0x282)](_0x2c9a4d(0x232)+_0x46b484+_0x2c9a4d(0x1bd)+_0x343d48+')');return;}const _0x111357=_0x343d48===_0x2c9a4d(0x19c)?_0x17319a['owner']||GLOBAL_SCOPE_ID:_0x23d174,_0x17c6de=_0x111357+'_'+_0x46b484;console[_0x2c9a4d(0x25d)](_0x2c9a4d(0x286)+_0x46b484+_0x2c9a4d(0x1f3)+_0x17c6de);const _0x14b141=await purgeStorage(_0x17c6de);_0x14b141?(delete _0x1c3cb8[_0x46b484],saveSettings(),console[_0x2c9a4d(0x25d)](_0x2c9a4d(0x1cd)+_0x46b484+'\x20及其向量数据。'),toastr[_0x2c9a4d(0x19b)](_0x2c9a4d(0x21f)+_0x1c48d1+_0x2c9a4d(0x279))):(console[_0x2c9a4d(0x1b8)]('[翰林院-核心]\x20清空向量集合\x20'+_0x17c6de+_0x2c9a4d(0x1bf)),toastr[_0x2c9a4d(0x1b8)](_0x2c9a4d(0x26b)));}function toggleKnowledgeBase(_0xf6cdbb,_0x5b02b3){const _0x21d828=_0x31e176,_0x34b09f=_0x5b02b3===_0x21d828(0x19c)?getGlobalKnowledgeBases():getLocalKnowledgeBases();_0x34b09f[_0xf6cdbb]&&(_0x34b09f[_0xf6cdbb][_0x21d828(0x22b)]=!_0x34b09f[_0xf6cdbb][_0x21d828(0x22b)],saveSettings(),console[_0x21d828(0x25d)]('[翰林院-核心]\x20知识库\x20'+_0xf6cdbb+_0x21d828(0x1bd)+_0x5b02b3+')\x20的状态已切换为:\x20'+(_0x34b09f[_0xf6cdbb]['enabled']?'启用':'禁用')));}function generateHash(_0x57300c){const _0x185bcd=_0x31e176;let _0x3f5968=0x0;for(let _0x2dbcfb=0x0;_0x2dbcfb<_0x57300c[_0x185bcd(0x25a)];_0x2dbcfb++){const _0x5ae25b=_0x57300c[_0x185bcd(0x217)](_0x2dbcfb);_0x3f5968=(_0x3f5968<<0x5)-_0x3f5968+_0x5ae25b,_0x3f5968=_0x3f5968&_0x3f5968;}return Math['abs'](_0x3f5968)[_0x185bcd(0x1e3)](0x24);}async function queryVectors(_0x44a421){const _0xd8fc8d=_0x31e176;console['log'](_0xd8fc8d(0x1d0));const _0x489ffa=getCharacterStableId(),_0x502311=getLocalKnowledgeBases(),_0x3700e9=getGlobalKnowledgeBases(),_0x2685b6=Object[_0xd8fc8d(0x1f8)](_0x502311)[_0xd8fc8d(0x289)](_0x4b889f=>_0x4b889f[_0xd8fc8d(0x22b)]),_0x3333aa=Object[_0xd8fc8d(0x1f8)](_0x3700e9)[_0xd8fc8d(0x289)](_0x57700e=>_0x57700e[_0xd8fc8d(0x22b)]),_0x5b121f=[..._0x2685b6[_0xd8fc8d(0x206)](_0x48d3fb=>({..._0x48d3fb,'scope':_0xd8fc8d(0x272)})),..._0x3333aa[_0xd8fc8d(0x206)](_0x2e0612=>({..._0x2e0612,'scope':_0xd8fc8d(0x19c)}))];if(_0x5b121f['length']===0x0){console[_0xd8fc8d(0x25d)]('[翰林院-日志]\x20没有启用的新知识库,尝试查询旧版单体宝库...');const _0x2d4996=await _0x5487d3();if(!_0x2d4996)return[];_0x5b121f['push']({'id':null,'name':_0xd8fc8d(0x257),'scope':_0xd8fc8d(0x1ff)});}const _0x563741=(await getEmbeddings([_0x44a421]))[0x0];let _0x40b2d1=[];const _0x29a9b8=_0x5b121f[_0xd8fc8d(0x206)](_0x265e2b=>{const _0x4ff6ef=_0xd8fc8d;let _0x46a7b3;if(_0x265e2b[_0x4ff6ef(0x1f1)]==='legacy')_0x46a7b3=_0x5487d3();else{const _0x46e65c=_0x265e2b[_0x4ff6ef(0x1f1)]===_0x4ff6ef(0x19c)?_0x265e2b[_0x4ff6ef(0x203)]||GLOBAL_SCOPE_ID:_0x489ffa;_0x46a7b3=Promise[_0x4ff6ef(0x1b7)](_0x46e65c+'_'+_0x265e2b['id']);}return _0x46a7b3['then'](_0x233eb7=>{const _0x3d91c5=_0x4ff6ef;if(!_0x233eb7)return[];console[_0x3d91c5(0x25d)](_0x3d91c5(0x27a)+_0x265e2b[_0x3d91c5(0x19a)]+_0x3d91c5(0x238)+_0x233eb7+')');const _0x5563f7={'collectionId':_0x233eb7,'searchText':_0x44a421,'topK':settings[_0x3d91c5(0x24e)][_0x3d91c5(0x218)],'threshold':settings[_0x3d91c5(0x24e)][_0x3d91c5(0x1c8)],'source':_0x3d91c5(0x22f),'embeddings':{[_0x44a421]:_0x563741}};return fetch(_0x3d91c5(0x1bc),{'method':_0x3d91c5(0x250),'headers':context[_0x3d91c5(0x1dd)](),'body':JSON['stringify'](_0x5563f7)})['then'](async _0x247291=>{const _0x315bec=_0x3d91c5;if(!_0x247291['ok']){const _0x3c5846=await _0x247291[_0x315bec(0x278)]();return console[_0x315bec(0x1b8)](_0x315bec(0x200)+_0x233eb7+_0x315bec(0x23d),_0x3c5846),[];}const _0x3333d1=await _0x247291[_0x315bec(0x1c9)](),_0x333ba6=_0x3333d1['metadata']||_0x3333d1[_0x315bec(0x1af)]||_0x3333d1[_0x315bec(0x1c5)]||[];return console[_0x315bec(0x25d)](_0x315bec(0x1d1)+_0x265e2b[_0x315bec(0x19a)]+_0x315bec(0x243)+_0x333ba6['length']+'\x20条结果。'),_0x333ba6;})[_0x3d91c5(0x1cb)](_0x298349=>{const _0xf177b6=_0x3d91c5;return console[_0xf177b6(0x1b8)](_0xf177b6(0x200)+_0x233eb7+_0xf177b6(0x1b0),_0x298349),[];});});}),_0x2b9083=await Promise[_0xd8fc8d(0x26c)](_0x29a9b8);_0x40b2d1=_0x2b9083[_0xd8fc8d(0x1cc)](),console[_0xd8fc8d(0x25d)](_0xd8fc8d(0x1b4)+_0x40b2d1[_0xd8fc8d(0x25a)]+_0xd8fc8d(0x1bb));const _0x1ffa33=[],_0x3d5483=new Set();for(const _0x2cc625 of _0x40b2d1){_0x2cc625&&_0x2cc625[_0xd8fc8d(0x278)]&&!_0x3d5483[_0xd8fc8d(0x245)](_0x2cc625[_0xd8fc8d(0x278)])&&(_0x3d5483[_0xd8fc8d(0x1ae)](_0x2cc625[_0xd8fc8d(0x278)]),_0x1ffa33[_0xd8fc8d(0x1b1)](_0x2cc625));}return console[_0xd8fc8d(0x25d)](_0xd8fc8d(0x20a)+_0x1ffa33[_0xd8fc8d(0x25a)]+_0xd8fc8d(0x1b3)),_0x1ffa33[_0xd8fc8d(0x1c3)]((_0x3552f8,_0x292919)=>(_0x292919['score']||0x0)-(_0x3552f8[_0xd8fc8d(0x1fa)]||0x0)),_0x1ffa33;}async function insertVectors(_0x261d96,_0x20e709=null,_0x21ded5){const _0x2be9ae=_0x31e176;if(!_0x21ded5)throw new Error(_0x2be9ae(0x1da));if(_0x261d96[_0x2be9ae(0x25a)]===0x0)return{'success':!![],'count':0x0};const _0x1e8cca=_0x261d96[_0x2be9ae(0x206)]((_0x578c8c,_0x294afb)=>({'hash':generateHash(_0x578c8c[_0x2be9ae(0x278)]+Date[_0x2be9ae(0x1d8)]()+_0x294afb),'text':_0x578c8c[_0x2be9ae(0x278)],'metadata':_0x578c8c['metadata']||{'source':_0x2be9ae(0x19f),'timestamp':new Date()['toISOString']()}})),_0x53deff=_0x1e8cca[_0x2be9ae(0x1e0)]((_0x59306c,_0x6c102,_0x39d15b)=>{const _0x4cf42c=_0x2be9ae;return _0x59306c[_0x6c102['text']]=_0x261d96[_0x39d15b][_0x4cf42c(0x1ea)],_0x59306c;},{}),_0x17eeef={'collectionId':_0x21ded5,'items':_0x1e8cca,'source':_0x2be9ae(0x22f),'embeddings':_0x53deff},_0x398ad5=await fetch(_0x2be9ae(0x254),{'method':_0x2be9ae(0x250),'headers':context[_0x2be9ae(0x1dd)](),'body':JSON[_0x2be9ae(0x21a)](_0x17eeef),'signal':_0x20e709});if(!_0x398ad5['ok']){const _0x38ea59=await _0x398ad5[_0x2be9ae(0x278)]();console[_0x2be9ae(0x1b8)](_0x2be9ae(0x247),_0x38ea59);throw new Error(_0x2be9ae(0x253)+_0x398ad5[_0x2be9ae(0x1a7)]+':\x20'+_0x38ea59);}return{'success':!![],'count':_0x1e8cca['length']};}async function getVectorCount(_0x518acb=null,_0x8c88f1=_0x31e176(0x272)){const _0x3878d3=_0x31e176,_0x3aeaa9=getCharacterStableId();if(_0x518acb){const _0x59c6be=_0x8c88f1===_0x3878d3(0x19c)?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x5a6843=_0x59c6be[_0x518acb];if(!_0x5a6843)return console['warn'](_0x3878d3(0x20e)+_0x8c88f1+'\x27\x20中未找到ID为\x20'+_0x518acb+'\x20的知识库。'),0x0;const _0x5eac8b=_0x8c88f1===_0x3878d3(0x19c)?_0x5a6843['owner']||GLOBAL_SCOPE_ID:_0x3aeaa9,_0x16d8b9=_0x5eac8b+'_'+_0x518acb;return await countVectorsInCollection(_0x16d8b9);}else{console[_0x3878d3(0x25d)](_0x3878d3(0x1c6));const _0x3fd94a=Object[_0x3878d3(0x1f8)](getLocalKnowledgeBases()),_0x3aa585=Object[_0x3878d3(0x1f8)](getGlobalKnowledgeBases()),_0x478720=[];_0x3fd94a[_0x3878d3(0x1b9)](_0x5ef002=>{const _0x1097f4=_0x3878d3,_0xbf1ea1=_0x3aeaa9+'_'+_0x5ef002['id'];_0x478720[_0x1097f4(0x1b1)](countVectorsInCollection(_0xbf1ea1));}),_0x3aa585['forEach'](_0x51ddc1=>{const _0x5188c5=_0x3878d3,_0x3e597a=_0x51ddc1['owner']||GLOBAL_SCOPE_ID,_0x378701=_0x3e597a+'_'+_0x51ddc1['id'];_0x478720[_0x5188c5(0x1b1)](countVectorsInCollection(_0x378701));});const _0x2da2df=await _0x5487d3();_0x478720[_0x3878d3(0x1b1)](countVectorsInCollection(_0x2da2df));const _0x4c4f9=await Promise['all'](_0x478720),_0xae2838=_0x4c4f9[_0x3878d3(0x1e0)]((_0x1a3106,_0x3b9554)=>_0x1a3106+_0x3b9554,0x0);return console[_0x3878d3(0x25d)]('[翰林院-日志]\x20所有知识库统计完成,总向量数:\x20'+_0xae2838),_0xae2838;}}async function countVectorsInCollection(_0x588036){const _0x3b3677=_0x31e176;if(!_0x588036)return 0x0;console['log']('[翰林院-日志]\x20统计目标集合ID:\x20'+_0x588036);const _0x2c17c0={'collectionId':_0x588036,'source':'webllm','embeddings':{}};try{const _0x2c83f2=await fetch(_0x3b3677(0x1c2),{'method':'POST','headers':context[_0x3b3677(0x1dd)](),'body':JSON[_0x3b3677(0x21a)](_0x2c17c0)});if(!_0x2c83f2['ok']){if(_0x2c83f2[_0x3b3677(0x1a7)]===0x194)console[_0x3b3677(0x25d)]('[翰林院-日志]\x20集合\x20'+_0x588036+'\x20不存在,计为\x200。');else{const _0x4b1ed9=await _0x2c83f2['text']();console['warn'](_0x3b3677(0x1ec)+_0x588036+_0x3b3677(0x1ab)+_0x2c83f2[_0x3b3677(0x1a7)]+'):',_0x4b1ed9);}return 0x0;}const _0x35b403=await _0x2c83f2[_0x3b3677(0x1c9)]();let _0x5dfc68=0x0;if(Array[_0x3b3677(0x262)](_0x35b403))_0x5dfc68=_0x35b403['length'];else _0x35b403&&_0x35b403[_0x3b3677(0x27f)]&&(_0x5dfc68=_0x35b403[_0x3b3677(0x27f)]['length']);return _0x5dfc68;}catch(_0x4d29c7){return console[_0x3b3677(0x1b8)](_0x3b3677(0x267)+_0x588036+_0x3b3677(0x1b0),_0x4d29c7),0x0;}}async function purgeStorage(_0x5d76a5=null){const _0x590e13=_0x31e176;console[_0x590e13(0x25d)](_0x590e13(0x269));const _0xeb0f63=_0x5d76a5||await getCollectionId();if(!_0xeb0f63)return console[_0x590e13(0x1b8)](_0x590e13(0x276)),toastr['error'](_0x590e13(0x207)),![];console[_0x590e13(0x25d)]('[翰林院-日志]\x20清空目标集合ID:\x20'+_0xeb0f63);const _0x41d4f6={'collectionId':_0xeb0f63};console['log'](_0x590e13(0x226),JSON['stringify'](_0x41d4f6,null,0x2));const _0x459aed=await fetch('/api/vector/purge',{'method':_0x590e13(0x250),'headers':context[_0x590e13(0x1dd)](),'body':JSON[_0x590e13(0x21a)](_0x41d4f6)});console[_0x590e13(0x25d)](_0x590e13(0x22d)+_0x459aed[_0x590e13(0x1a7)]);if(!_0x459aed['ok']){const _0x28aa52=await _0x459aed[_0x590e13(0x278)]();console[_0x590e13(0x1b8)](_0x590e13(0x20c),_0x28aa52);}else console[_0x590e13(0x25d)](_0x590e13(0x28a));return _0x459aed['ok'];}function getMessagesForCondensation(_0x592102=null){const _0xa30585=_0x31e176;if(!settings[_0xa30585(0x1e9)][_0xa30585(0x22b)])return showNotification('凝识之权未开启',_0xa30585(0x284)),[];const {layerStart:_0x524b84,layerEnd:_0x5a7b81}=settings[_0xa30585(0x1e9)],_0x15c0b5=_0x592102||settings[_0xa30585(0x1e9)]['messageTypes'],_0x4e13dd=context[_0xa30585(0x1d7)][_0xa30585(0x25a)],_0x1c5d4e=Math['max'](0x0,_0x524b84-0x1),_0x3665ea=_0x5a7b81===0x0||_0x5a7b81>_0x4e13dd?_0x4e13dd:Math[_0xa30585(0x242)](_0x4e13dd,_0x5a7b81),_0x4b36ff=context['chat'][_0xa30585(0x230)](_0x1c5d4e,_0x3665ea);return _0x4b36ff[_0xa30585(0x289)](_0x2f3a90=>{const _0xf038ce=_0xa30585,_0x340d79=_0x2f3a90[_0xf038ce(0x26a)]===!![],_0xd56239=_0x2f3a90['is_user']===![];if(!_0x2f3a90[_0xf038ce(0x202)]||!_0x2f3a90[_0xf038ce(0x202)][_0xf038ce(0x231)]())return![];return _0x15c0b5[_0xf038ce(0x281)]&&_0x340d79||_0x15c0b5['ai']&&_0xd56239;});}async function processCondensation(_0xb1ebc0,_0x36c5f9=()=>{},_0x2d7dc2=null){const _0x3a07cf=_0x31e176;if(!_0xb1ebc0||_0xb1ebc0['length']===0x0)return{'success':![],'error':_0x3a07cf(0x1fb)};try{let _0x27b88a,_0x1602d2;const _0x4420aa=getCharacterName()||_0x3a07cf(0x23a);if(_0x2d7dc2){const _0x5a27ff=_0x2d7dc2[_0x3a07cf(0x1dc)]??'?',_0x32f438=_0x2d7dc2[_0x3a07cf(0x288)]===0x0?'末':_0x2d7dc2[_0x3a07cf(0x288)]??'?';_0x27b88a=_0x4420aa+':\x20'+_0x5a27ff+'楼-'+_0x32f438+'楼';}else{const _0x9e7529=new Date()[_0x3a07cf(0x1a6)](_0x3a07cf(0x23b),{'hour12':![]});_0x27b88a=_0x3a07cf(0x255)+_0x9e7529;}const _0x391861=Object[_0x3a07cf(0x1f8)](getLocalKnowledgeBases()),_0x5eba16=_0x391861[_0x3a07cf(0x22a)](_0x519f8d=>_0x519f8d[_0x3a07cf(0x19a)]===_0x27b88a);if(_0x5eba16)_0x1602d2=_0x5eba16['id'],_0x36c5f9('[翰林院-核心]\x20检测到同名知识库\x20\x22'+_0x27b88a+'\x22,将数据合并入库。',_0x3a07cf(0x210));else{_0x36c5f9(_0x3a07cf(0x26d)+_0x27b88a+_0x3a07cf(0x205),_0x3a07cf(0x210));const _0x4c498e=addKnowledgeBase(_0x27b88a);_0x1602d2=_0x4c498e['id'];}const _0x3af387=getCharacterStableId(),_0x55d492=_0x3af387+'_'+_0x1602d2;_0x36c5f9(_0x3a07cf(0x27d)+_0x27b88a+'\x20(集合ID:\x20'+_0x55d492+')',_0x3a07cf(0x19b));const _0xbe97ab=[],_0x556c8c=context[_0x3a07cf(0x1d7)];for(const _0x12d19e of _0xb1ebc0){const _0x59da76=(_0x12d19e[_0x3a07cf(0x202)]||'')[_0x3a07cf(0x258)](/<[^>]*>/g,'')[_0x3a07cf(0x231)]();if(_0x59da76['length']===0x0)continue;let _0x321168;if(_0x12d19e[_0x3a07cf(0x1f7)]!==undefined&&_0x12d19e[_0x3a07cf(0x1f7)]!==null)_0x321168=_0x12d19e[_0x3a07cf(0x1f7)];else{const _0x30b8ef=_0x556c8c['findIndex'](_0x1b9b84=>_0x1b9b84===_0x12d19e);_0x321168=_0x30b8ef!==-0x1?_0x30b8ef+0x1:-0x1;}const _0x2e5c3d=new Date(_0x12d19e[_0x3a07cf(0x236)]),_0x148c0c=isNaN(_0x2e5c3d['getTime']())?new Date()['toISOString']():_0x2e5c3d[_0x3a07cf(0x21d)](),_0x355bcd=splitIntoChunks(_0x59da76,_0x3a07cf(0x263),{'floor':_0x321168,'is_user':_0x12d19e[_0x3a07cf(0x26a)],'timestamp':_0x148c0c});_0xbe97ab[_0x3a07cf(0x1b1)](..._0x355bcd);}if(_0xbe97ab[_0x3a07cf(0x25a)]===0x0)return{'success':!![],'count':0x0};_0x36c5f9(_0x3a07cf(0x261)+_0xb1ebc0[_0x3a07cf(0x25a)]+_0x3a07cf(0x26f)+_0xbe97ab['length']+'\x20个知识块,准备入库。','info');const _0x340ac4=settings[_0x3a07cf(0x224)][_0x3a07cf(0x223)]||0x5;let _0x16653c=0x0;for(let _0x521bc9=0x0;_0x521bc9<_0xbe97ab['length'];_0x521bc9+=_0x340ac4){const _0x1d4986=_0xbe97ab[_0x3a07cf(0x230)](_0x521bc9,_0x521bc9+_0x340ac4),_0x5e777f=_0x1d4986['map'](_0x3e2a75=>_0x3e2a75[_0x3a07cf(0x278)]),_0x649a0d=await getEmbeddings(_0x5e777f);if(_0x1d4986[_0x3a07cf(0x25a)]!==_0x649a0d[_0x3a07cf(0x25a)])throw new Error(_0x3a07cf(0x1f5));const _0x495b3c=_0x1d4986[_0x3a07cf(0x206)]((_0x2fb803,_0x4118fd)=>({..._0x2fb803,'vector':_0x649a0d[_0x4118fd]}));await insertVectors(_0x495b3c,null,_0x55d492),_0x16653c+=_0x1d4986[_0x3a07cf(0x25a)];}if(_0x2d7dc2){const _0x3fc38e=_0x2d7dc2[_0x3a07cf(0x288)]===0x0?context[_0x3a07cf(0x1d7)][_0x3a07cf(0x25a)]:_0x2d7dc2[_0x3a07cf(0x288)],_0x3558e0=getCharacterStableId();!settings[_0x3a07cf(0x1f6)][_0x3558e0]&&(settings[_0x3a07cf(0x1f6)][_0x3558e0]={}),settings[_0x3a07cf(0x1f6)][_0x3558e0][_0x55d492]={'start':_0x2d7dc2['start'],'end':_0x3fc38e,'timestamp':new Date()[_0x3a07cf(0x21d)]()},saveSettings(),_0x36c5f9('[翰林院-核心]\x20已为宝库\x20'+_0x55d492+_0x3a07cf(0x273)+_0x2d7dc2[_0x3a07cf(0x1dc)]+'-'+_0x3fc38e,'info');}_0x36c5f9(_0x3a07cf(0x1ed)+_0x16653c+'\x20个条目。','success');const _0x537b1d=_0xb1ebc0[_0x3a07cf(0x206)](_0x305796=>{const _0x43c41c=_0x3a07cf,_0x48b217=_0x556c8c[_0x43c41c(0x1a2)](_0x11341a=>_0x11341a===_0x305796),_0x50c8ee=_0x48b217!==-0x1?_0x48b217+0x1:-0x1,_0xef9b48=_0x305796[_0x43c41c(0x26a)]?'用户':getCharacterName()||'AI';return'['+_0xef9b48+_0x43c41c(0x22c)+_0x50c8ee+_0x43c41c(0x274);});return{'success':!![],'count':_0x16653c,'messages':_0x537b1d};}catch(_0x5e6874){return console[_0x3a07cf(0x1b8)](_0x3a07cf(0x1de),_0x5e6874),_0x36c5f9(_0x3a07cf(0x209)+_0x5e6874[_0x3a07cf(0x246)],'error'),{'success':![],'error':_0x5e6874['message']};}}async function rerankResults(_0x2c93eb,_0x5b0d55,_0x4409e6){const _0x2aa064=_0x31e176;let _0x342bd2=_0x2c93eb;if(_0x4409e6[_0x2aa064(0x228)][_0x2aa064(0x22b)]&&_0x2c93eb[_0x2aa064(0x25a)]>0x0){console['log'](_0x2aa064(0x1e1));try{const _0x5c64a9=_0x2c93eb[_0x2aa064(0x206)](_0x5c4952=>_0x5c4952[_0x2aa064(0x278)]),_0x1cb7f3=await executeRerank(_0x5b0d55,_0x5c64a9,_0x4409e6['rerank']),_0x5867cf=_0x2c93eb[_0x2aa064(0x206)]((_0x54f02d,_0x5f2c06)=>({..._0x54f02d,'original_index':_0x5f2c06}));_0x342bd2=_0x5867cf[_0x2aa064(0x206)](_0x5b7777=>{const _0x1818b4=_0x2aa064,_0xdb25a1=_0x1cb7f3['results']['find'](_0x1c8a47=>_0x1c8a47[_0x1818b4(0x1a4)]===_0x5b7777[_0x1818b4(0x1d5)]),_0x707efd=_0xdb25a1?_0xdb25a1['relevance_score']:0x0;return{..._0x5b7777,'rerank_score':_0x707efd};});if(_0x4409e6['rerank'][_0x2aa064(0x219)])showNotification('外部Rerank完成','success');}catch(_0x1335d1){console[_0x2aa064(0x1b8)](_0x2aa064(0x1d3),_0x1335d1);if(_0x4409e6[_0x2aa064(0x228)][_0x2aa064(0x219)])showNotification('Rerank失败:\x20'+_0x1335d1[_0x2aa064(0x246)],'error');_0x342bd2[_0x2aa064(0x1b9)](_0x169398=>_0x169398['rerank_score']=0x0);}}else _0x342bd2[_0x2aa064(0x1b9)](_0x32cb00=>_0x32cb00['rerank_score']=0x0);console['log'](_0x2aa064(0x1e2));const _0x4f6c91=context[_0x2aa064(0x1d7)][_0x2aa064(0x25a)],_0x47d3ab=_0x4409e6[_0x2aa064(0x228)][_0x2aa064(0x1fe)],_0x135a13=_0x342bd2[_0x2aa064(0x206)](_0x2de94d=>{const _0x3920ca=_0x2aa064;let _0x28cf6b=0x1;const _0x6c7de=_0x2de94d[_0x3920ca(0x1e4)]||{};switch(_0x6c7de[_0x3920ca(0x259)]){case _0x3920ca(0x19e):_0x28cf6b*=1.2;break;case'manual':_0x28cf6b*=1.1;break;case _0x3920ca(0x263):if(_0x6c7de[_0x3920ca(0x1f7)]&&_0x4f6c91>0x0){const _0x3cf9cb=_0x6c7de[_0x3920ca(0x1f7)]/_0x4f6c91;_0x28cf6b*=0x1+_0x3cf9cb;}break;}const _0x1530f0=_0x2de94d[_0x3920ca(0x234)]*_0x47d3ab+(_0x2de94d[_0x3920ca(0x1fa)]||0x0)*(0x1-_0x47d3ab),_0x353470=_0x1530f0*_0x28cf6b;return{..._0x2de94d,'final_score':_0x353470};});return _0x135a13['sort']((_0xce0487,_0xe9d35b)=>(_0xe9d35b['final_score']||0x0)-(_0xce0487[_0x2aa064(0x266)]||0x0)),console[_0x2aa064(0x25d)]('[翰林院-Rerank]\x20元数据加权排序完成。'),_0x135a13[_0x2aa064(0x230)](0x0,_0x4409e6[_0x2aa064(0x228)][_0x2aa064(0x240)]);}async function rearrangeChat(_0x4e8a71,_0x18b97c,_0x2e64ed,_0x312ed5){const _0xe38585=_0x31e176;setExtensionPrompt(_0xe38585(0x24d),'',settings[_0xe38585(0x22e)][_0xe38585(0x235)],settings[_0xe38585(0x22e)][_0xe38585(0x26e)],![],settings['injection'][_0xe38585(0x20d)]);if(_0x312ed5===_0xe38585(0x251)||!settings[_0xe38585(0x224)][_0xe38585(0x22b)])return;const _0x135bb1=_0x4e8a71['slice'](-settings[_0xe38585(0x24e)][_0xe38585(0x271)]);if(_0x135bb1[_0xe38585(0x25a)]===0x0)return;const _0x520506=_0x135bb1[_0xe38585(0x206)](_0x1e12c4=>_0x1e12c4[_0xe38585(0x202)])[_0xe38585(0x237)]('\x20')[_0xe38585(0x258)](/<[^>]*>/g,'')['trim']();if(!_0x520506)return;try{const _0x54dec2=await queryVectors(_0x520506);if(_0x54dec2['length']===0x0)return;const _0x28e1f8=await rerankResults(_0x54dec2,_0x520506,settings);if(_0x28e1f8[_0xe38585(0x25a)]===0x0)return;const _0x91f5a9=_0x28e1f8[_0xe38585(0x206)](_0x35272f=>_0x35272f[_0xe38585(0x278)])['join']('\x0a\x0a');let _0x3d15eb=settings['injection'][_0xe38585(0x270)][_0xe38585(0x258)]('{{text}}',_0x91f5a9);_0x3d15eb[_0xe38585(0x231)]()&&(_0x3d15eb='%%HANLINYUAN_RAG_INJECTION%%'+_0x3d15eb),setExtensionPrompt('HANLINYUAN_RAG',_0x3d15eb,settings[_0xe38585(0x22e)][_0xe38585(0x235)],settings[_0xe38585(0x22e)]['depth'],![],settings[_0xe38585(0x22e)][_0xe38585(0x20d)]);}catch(_0x1e1cc8){console[_0xe38585(0x1b8)](_0xe38585(0x1fc),_0x1e1cc8);if(settings[_0xe38585(0x224)][_0xe38585(0x219)])showNotification('忆识检索失败:\x20'+_0x1e1cc8[_0xe38585(0x246)],'error');}}async function moveKnowledgeBase(_0x574ce1,_0x40c488){const _0x3600a8=_0x31e176,_0x1f6338=_0x40c488===_0x3600a8(0x19c)?'local':_0x3600a8(0x19c),_0x6a3461=getCharacterStableId();if(!_0x6a3461&&_0x1f6338===_0x3600a8(0x272)){toastr[_0x3600a8(0x1b8)](_0x3600a8(0x1d9));return;}const _0x4b84aa=_0x40c488===_0x3600a8(0x19c)?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x20abd2=_0x1f6338===_0x3600a8(0x19c)?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x5928df=_0x4b84aa[_0x574ce1];if(!_0x5928df){const _0x450a3f=_0x3600a8(0x25c)+_0x40c488+'\x27\x20中未找到ID为\x20'+_0x574ce1+_0x3600a8(0x1cf);console[_0x3600a8(0x1b8)]('[翰林院-配置]\x20'+_0x450a3f),toastr[_0x3600a8(0x1b8)]('移动失败:未找到源条目。');return;}_0x40c488===_0x3600a8(0x272)&&_0x1f6338===_0x3600a8(0x19c)&&!_0x5928df[_0x3600a8(0x203)]&&(console[_0x3600a8(0x25d)]('[翰林院-配置]\x20为旧版知识库\x20'+_0x574ce1+_0x3600a8(0x1a1)+_0x6a3461),_0x5928df[_0x3600a8(0x203)]=_0x6a3461);delete _0x4b84aa[_0x574ce1],_0x20abd2[_0x574ce1]=_0x5928df,saveSettings();const _0x370a4c=_0x3600a8(0x265)+_0x5928df[_0x3600a8(0x19a)]+_0x3600a8(0x1e6)+(_0x1f6338===_0x3600a8(0x19c)?'全局':'局部')+'。';console[_0x3600a8(0x25d)]('[翰林院-配置]\x20'+_0x370a4c),toastr[_0x3600a8(0x19b)](_0x370a4c,_0x3600a8(0x24c));}async function getAllVectorsFromCollection(_0x4559c6){const _0x36ea1d=_0x31e176,_0x3aa0f5='*',_0x382f55={'collectionId':_0x4559c6,'searchText':_0x3aa0f5,'topK':0x2710,'threshold':0x0,'source':_0x36ea1d(0x22f),'embeddings':{}},_0x3b6856=(await getEmbeddings([_0x3aa0f5]))[0x0];_0x382f55['embeddings']={[_0x3aa0f5]:_0x3b6856};const _0x52e48a=await fetch(_0x36ea1d(0x1bc),{'method':_0x36ea1d(0x250),'headers':context[_0x36ea1d(0x1dd)](),'body':JSON[_0x36ea1d(0x21a)](_0x382f55)});if(!_0x52e48a['ok']){if(_0x52e48a['status']===0x194)return console['log'](_0x36ea1d(0x24f)+_0x4559c6+'\x20不存在,返回空数组。'),[];const _0x1f9c7f=await _0x52e48a[_0x36ea1d(0x278)]();throw new Error(_0x36ea1d(0x1e7)+_0x4559c6+_0x36ea1d(0x1f2)+_0x1f9c7f);}const _0x414042=await _0x52e48a[_0x36ea1d(0x1c9)]();return _0x414042[_0x36ea1d(0x1e4)]||_0x414042[_0x36ea1d(0x1af)]||_0x414042[_0x36ea1d(0x1c5)]||[];} +'use strict';const _0x42f4ac=_0x472d;(function(_0x4aac69,_0x185089){const _0x38e923=_0x472d,_0x58ea1a=_0x4aac69();while(!![]){try{const _0x237b70=parseInt(_0x38e923(0x194))/0x1+-parseInt(_0x38e923(0x210))/0x2*(parseInt(_0x38e923(0x1a2))/0x3)+parseInt(_0x38e923(0x173))/0x4+parseInt(_0x38e923(0x185))/0x5*(-parseInt(_0x38e923(0x1ca))/0x6)+parseInt(_0x38e923(0x152))/0x7+parseInt(_0x38e923(0x22a))/0x8+-parseInt(_0x38e923(0x170))/0x9;if(_0x237b70===_0x185089)break;else _0x58ea1a['push'](_0x58ea1a['shift']());}catch(_0x2c4a30){_0x58ea1a['push'](_0x58ea1a['shift']());}}}(_0x3c6b,0x62b1a));import{extension_prompt_roles,setExtensionPrompt}from'/script.js';import*as _0x321f31 from'./utils/context-utils.js';import{getCollectionIdInfo,getCharacterId,getCharacterStableId}from'./utils/context-utils.js';import{defaultSettings as _0xe1b12b}from'./rag-settings.js';import*as _0x43bee7 from'./ingestion-manager.js';import{getEmbeddings,fetchEmbeddingModels as _0x3358c5,fetchRerankModels as _0x31666d,executeRerank,testApiConnection as _0x1c56f3}from'./rag-api.js';function _0x3c6b(){const _0x2412ed=['[翰林院-日志]\x20集合\x20','filter','mes','114CvZUwT','[翰林院-日志]\x20知识库\x20','trim','substring','condensationHistory','[翰林院-日志]\x20所有知识库统计完成,总向量数:\x20','getContext','max','find','flat','[翰林院-核心]\x20将来源\x27','[翰林院-日志]\x20查询知识库\x20','json','is_user','\x27\x20中未找到ID为\x20','length','top_n','status','values','部分]','batchSize','reduce','未知来源','abs','AbortError','webllm','entryName','世界书条目','warning','original_index','join','[翰林院-配置]\x20为旧版知识库\x20','忆识存入API错误\x20','toLocaleString','\x20时发生网络错误:','insertVectors\x20必须接收一个有效的\x20collectionId\x20参数。','hanlinyuan-rag-core','Rerank失败:\x20','输入文本为空','[翰林院-日志]\x20没有启用的新知识库,尝试查询旧版单体宝库...','maxResults','advanced','删除知识库失败,未能清空后端数据。','操作已取消。','/api/vector/list','[翰林院-日志]\x20清空宝库API调用成功。','[翰林院-核心]\x20成功删除知识库\x20','getRequestHeaders','手动录入:\x20','[翰林院-核心]\x20文本录入失败:\x20','score',',将清空集合:\x20','\x27的文本分割成\x20','[来源:\x20聊天记录,\x20楼层:\x20#','legacy','第1章','extensionSettings','\x20失败:','info','local','min','\x20不存在,返回空数组。','enabled','查询集合\x20','移动失败:没有当前角色,无法移入局部知识库。','】已成功移动到','\x0a{},_0x2991a0=null,_0xb1c6de=()=>{},_0x3f4d9d=()=>{},_0x1126eb=null,_0x51460c=0x0){const _0x208928=_0x42f4ac;if(!_0x2377a5||!_0x2377a5[_0x208928(0x1cc)]())return{'success':![],'error':_0x208928(0x1f0)};if(!settings)return{'success':![],'error':_0x208928(0x214)};try{const _0x7d6ed2=getCollectionIdInfo(),_0x46cd12=await _0x445401();if(_0x7d6ed2[_0x208928(0x171)]&&_0x7d6ed2[_0x208928(0x171)]===_0x46cd12&&_0x7d6ed2[_0x208928(0x171)]!==_0x7d6ed2['newId']){const _0x2d69b1=confirm(_0x208928(0x1be));if(_0x2d69b1)_0xb1c6de(_0x208928(0x21b)+_0x7d6ed2['oldId'],_0x208928(0x211)),await purgeStorage(_0x7d6ed2[_0x208928(0x171)]),_0xb1c6de(_0x208928(0x236),_0x208928(0x187));else return _0xb1c6de(_0x208928(0x164),_0x208928(0x204)),toastr[_0x208928(0x204)](_0x208928(0x1f5)),{'success':![],'error':'用户取消了迁移操作'};}let _0x4bcb42,_0x2c9b2b;const _0x1ae426=new Date()[_0x208928(0x1eb)](_0x208928(0x224),{'hour12':![]}),_0x4f9b88=getCharacterName()||_0x208928(0x172);switch(_0x33acbb){case _0x208928(0x18f):const _0x170efb=_0x187b3c[_0x208928(0x167)]||{},_0x2f744f=_0x170efb[_0x208928(0x181)]??'?',_0x25b51a=_0x170efb[_0x208928(0x1b9)]===0x0?'末':_0x170efb[_0x208928(0x1b9)]??'?';_0x4bcb42=_0x4f9b88+':\x20'+_0x2f744f+'楼-'+_0x25b51a+'楼';break;case'lorebook':const _0x4ee35e=_0x187b3c['bookName']||_0x208928(0x225),_0x22065b=_0x187b3c[_0x208928(0x1e4)]||_0x208928(0x21a);_0x4bcb42=_0x4ee35e+':\x20'+_0x22065b;break;case _0x208928(0x15c):_0x4bcb42=_0x208928(0x19f)+(_0x187b3c[_0x208928(0x1bd)]||'未知小说');break;case _0x208928(0x197):default:_0x4bcb42=_0x208928(0x1fa)+_0x1ae426;break;}const _0x4c37eb=Object['values'](getKnowledgeBases()),_0x3505d2=_0x4c37eb[_0x208928(0x1d2)](_0x44ce73=>_0x44ce73[_0x208928(0x1a1)]===_0x4bcb42);if(_0x3505d2)_0x2c9b2b=_0x3505d2['id'],_0xb1c6de('[翰林院-核心]\x20检测到同名知识库\x20\x22'+_0x4bcb42+'\x22,将数据合并入库。',_0x208928(0x204));else{_0xb1c6de(_0x208928(0x213)+_0x4bcb42+_0x208928(0x21f),'info');const _0x19df7e=addKnowledgeBase(_0x4bcb42);_0x2c9b2b=_0x19df7e['id'];}const _0x4e508d=getCharacterStableId(),_0x74a20b=_0x4e508d+'_'+_0x2c9b2b;_0xb1c6de('[翰林院-核心]\x20已创建并锁定知识库:\x20'+_0x4bcb42+_0x208928(0x22c)+_0x74a20b+')',_0x208928(0x187)),_0xb1c6de('[翰林院-核心]\x20已锁定忆识宝库ID:\x20'+_0x74a20b,_0x208928(0x204)),_0x1239a3({'message':_0x208928(0x17e),'processed':0x0,'total':0x1});const _0x14feb7=splitIntoChunks(_0x2377a5,_0x33acbb,_0x187b3c),_0x123808=_0x14feb7[_0x208928(0x1d9)];if(_0x2991a0?.['aborted'])throw new Error('AbortError');_0xb1c6de(_0x208928(0x1d4)+_0x4bcb42+_0x208928(0x1fe)+_0x123808+_0x208928(0x189),_0x208928(0x204));if(_0x123808===0x0)return{'success':!![],'count':0x0};const _0x5c730a=settings['retrieval'][_0x208928(0x1de)]||0x5;let _0x1da336=_0x51460c;for(let _0xf1908d=_0x51460c;_0xf1908d<_0x123808;_0xf1908d+=_0x5c730a){if(_0x2991a0?.['aborted'])throw new Error(_0x208928(0x1e2));const _0x519cea=_0x14feb7['slice'](_0xf1908d,_0xf1908d+_0x5c730a);_0x1239a3({'message':'正在处理\x20'+(_0xf1908d+0x1)+'-'+(_0xf1908d+_0x519cea[_0x208928(0x1d9)])+'\x20块','processed':_0xf1908d,'total':_0x123808});const _0xed9806=_0x519cea['map'](_0x4b3715=>_0x4b3715['text']),_0x44e6b7=await getEmbeddings(_0xed9806,_0x2991a0);if(_0x2991a0?.[_0x208928(0x1aa)])throw new Error(_0x208928(0x1e2));if(_0x519cea[_0x208928(0x1d9)]!==_0x44e6b7['length'])throw new Error(_0x208928(0x21d));const _0xfd8625=_0x519cea[_0x208928(0x23b)]((_0x23a140,_0x5f0d9e)=>({..._0x23a140,'vector':_0x44e6b7[_0x5f0d9e]}));await insertVectors(_0xfd8625,_0x2991a0,_0x74a20b),_0x1da336+=_0x519cea['length'],_0x1126eb&&_0x43bee7[_0x208928(0x175)](_0x1126eb,_0x1da336,_0x123808),await _0x3f4d9d();}return _0x1126eb&&_0x43bee7['clearJob'](_0x1126eb),_0xb1c6de(_0x208928(0x235)+_0x1da336+_0x208928(0x195),_0x208928(0x187)),{'success':!![],'count':_0x1da336};}catch(_0x38888d){if(_0x38888d['name']==='AbortError'){_0xb1c6de('[翰林院-核心]\x20文本录入任务被用户中止。',_0x208928(0x211));throw _0x38888d;}return console['error'](_0x208928(0x14d),_0x38888d),_0xb1c6de(_0x208928(0x1fb)+_0x38888d[_0x208928(0x14e)],'error'),{'success':![],'error':_0x38888d[_0x208928(0x14e)]};}}function getSettings(){const _0x8e897e=_0x42f4ac;if(!context||!context[_0x8e897e(0x202)])return structuredClone(_0xe1b12b);let _0x30f9a4=context[_0x8e897e(0x202)][MODULE_NAME];!_0x30f9a4&&(_0x30f9a4={},context[_0x8e897e(0x202)][MODULE_NAME]=_0x30f9a4);_0x30f9a4['condensationHistory']===undefined&&(_0x30f9a4['condensationHistory']={});_0x30f9a4['knowledgeBases']===undefined&&(_0x30f9a4[_0x8e897e(0x1b4)]={});for(const _0x5ea2a8 in _0xe1b12b){if(_0x30f9a4[_0x5ea2a8]===undefined)_0x30f9a4[_0x5ea2a8]=structuredClone(_0xe1b12b[_0x5ea2a8]);else{if(typeof _0xe1b12b[_0x5ea2a8]===_0x8e897e(0x222)&&!Array[_0x8e897e(0x1a6)](_0xe1b12b[_0x5ea2a8])&&_0xe1b12b[_0x5ea2a8]!==null)for(const _0x3083d1 in _0xe1b12b[_0x5ea2a8]){_0x30f9a4[_0x5ea2a8][_0x3083d1]===undefined&&(_0x30f9a4[_0x5ea2a8][_0x3083d1]=_0xe1b12b[_0x5ea2a8][_0x3083d1]);}}}return _0x30f9a4;}function saveSettings(){const _0x1c1c66=_0x42f4ac;if(context)context[_0x1c1c66(0x19a)]();}function resetSettings(){const _0x8470f7=_0x42f4ac;context&&(context[_0x8470f7(0x202)][MODULE_NAME]=structuredClone(_0xe1b12b),saveSettings());}function showNotification(_0x41888b,_0x5e9856=_0x42f4ac(0x204)){toastr[_0x5e9856](_0x41888b);}function getTagForSource(_0xb6d6fc){const _0x26717b=_0x42f4ac;switch(_0xb6d6fc){case _0x26717b(0x18f):return _0x26717b(0x1a7);case _0x26717b(0x1bc):return _0x26717b(0x192);case'manual':return _0x26717b(0x169);case'novel':return'小说录入';default:return'资料';}}function splitIntoChunks(_0x4c8cf7,_0xc6a17,_0x448657={}){const _0xf9d6c3=_0x42f4ac;switch(_0xc6a17){case _0xf9d6c3(0x15c):return _chunkForNovel(_0x4c8cf7,_0x448657);case _0xf9d6c3(0x18f):return _chunkForChatHistory(_0x4c8cf7,_0x448657);case _0xf9d6c3(0x1bc):return _chunkForLorebook(_0x4c8cf7,_0x448657);case'manual':return _chunkForManual(_0x4c8cf7,_0x448657);default:console[_0xf9d6c3(0x211)](_0xf9d6c3(0x22e)+_0xc6a17+'\x27,使用通用分块逻辑。');return _chunkForManual(_0x4c8cf7,{..._0x448657,'sourceName':_0x448657['sourceName']||_0xf9d6c3(0x1e0)});}}function _chunkForNovel(_0x703559,_0x80a090){const _0x26e4f9=_0x42f4ac,{chunkSize:_0x25e952,overlap:_0x4a6833}=settings[_0x26e4f9(0x1f3)],{sourceName:sourceName='小说'}=_0x80a090,_0x565ce5=[];if(!_0x703559||_0x25e952<=0x0)return _0x565ce5;const _0xa16b72=/(第\s*[一二三四五六七八九十百千万零\d]+\s*卷)/gim,_0x554883=/(第\s*[一二三四五六七八九十百千万零\d]+\s*[章回节部])|^(Chapter\s+\d+)/gim;let _0xc928a5=0x0;const _0x119e12=_0x703559['split']('\x0a');let _0x3093c2=_0x26e4f9(0x19b),_0x595dda=_0x26e4f9(0x201),_0x1dfa5b=[];function _0x3005db(){const _0x4372ef=_0x26e4f9;if(_0x1dfa5b['length']===0x0)return;const _0x5ef900=_0x1dfa5b[_0x4372ef(0x1e8)]('\x0a');let _0x986f27=0x0,_0x53ffd1=0x1;while(_0x986f27<_0x5ef900[_0x4372ef(0x1d9)]){const _0x442f11=Math[_0x4372ef(0x206)](_0x986f27+_0x25e952,_0x5ef900[_0x4372ef(0x1d9)]),_0x7296ff=_0x5ef900[_0x4372ef(0x1cd)](_0x986f27,_0x442f11);if(_0x7296ff[_0x4372ef(0x1cc)]()[_0x4372ef(0x1d9)]>0x0){const _0x576bc8={'source':_0x4372ef(0x15c),'sourceName':sourceName,'timestamp':new Date()[_0x4372ef(0x1b5)](),'globalIndex':_0xc928a5++,'volume':_0x3093c2,'chapter':_0x595dda,'section':_0x53ffd1},_0x25c662=getTagForSource(_0x4372ef(0x15c)),_0xeb9c20='[来源:\x20'+sourceName+',\x20'+_0x3093c2+',\x20'+_0x595dda+_0x4372ef(0x14b)+_0x53ffd1+'节]',_0x20f144='<'+_0x25c662+'>\x0a'+_0xeb9c20+'\x0a'+_0x7296ff+_0x4372ef(0x20c)+_0x25c662+'>';_0x565ce5['push']({'text':_0x20f144,'metadata':_0x576bc8}),_0x53ffd1++;}_0x986f27+=_0x25e952-_0x4a6833;if(_0x986f27>=_0x5ef900[_0x4372ef(0x1d9)])break;}_0x1dfa5b=[];}for(const _0x449342 of _0x119e12){const _0x52c7f3=_0x449342['trim']();if(_0xa16b72[_0x26e4f9(0x17c)](_0x52c7f3))_0x3005db(),_0x3093c2=_0x52c7f3,_0x595dda=_0x26e4f9(0x201);else _0x554883['test'](_0x52c7f3)?(_0x3005db(),_0x595dda=_0x52c7f3):_0x1dfa5b[_0x26e4f9(0x216)](_0x449342);}_0x3005db();if(_0x565ce5[_0x26e4f9(0x1d9)]===0x0&&_0x703559[_0x26e4f9(0x1d9)]>0x0){let _0x2851cd=0x0,_0x710dc0=0x1;while(_0x2851cd<_0x703559[_0x26e4f9(0x1d9)]){const _0x4e7688=Math['min'](_0x2851cd+_0x25e952,_0x703559[_0x26e4f9(0x1d9)]),_0x9cc828=_0x703559[_0x26e4f9(0x1cd)](_0x2851cd,_0x4e7688),_0x59346f={'source':_0x26e4f9(0x15c),'sourceName':sourceName,'timestamp':new Date()[_0x26e4f9(0x1b5)](),'globalIndex':_0x565ce5['length'],'volume':_0x26e4f9(0x19b),'chapter':_0x26e4f9(0x201),'section':_0x710dc0},_0x359c4e=getTagForSource(_0x26e4f9(0x15c)),_0x3ded68=_0x26e4f9(0x18a)+sourceName+',\x20第1卷,\x20第1章,\x20第'+_0x710dc0+'节]',_0x15367a='<'+_0x359c4e+'>\x0a'+_0x3ded68+'\x0a'+_0x9cc828+'\x0a';_0x565ce5['push']({'text':_0x15367a,'metadata':_0x59346f}),_0x710dc0++,_0x2851cd+=_0x25e952-_0x4a6833;}}return _0x565ce5;}function _chunkForChatHistory(_0x6534d3,_0xbeb303){const _0x4cab2c=_0x42f4ac,{chunkSize:_0x1a0166,overlap:_0x2fc9cd}=settings[_0x4cab2c(0x1f3)],{floor:_0x62338a,is_user:_0x26cf1b,timestamp:_0x3153eb}=_0xbeb303,_0x564626=[];if(!_0x6534d3||_0x1a0166<=0x0)return _0x564626;let _0x32ce18=0x1,_0x52f2dc=0x0;while(_0x52f2dc<_0x6534d3[_0x4cab2c(0x1d9)]){const _0x39a281=Math[_0x4cab2c(0x206)](_0x52f2dc+_0x1a0166,_0x6534d3[_0x4cab2c(0x1d9)]),_0x5eac67=_0x6534d3[_0x4cab2c(0x1cd)](_0x52f2dc,_0x39a281),_0x129e79=_0x4cab2c(0x1ff)+_0x62338a+_0x4cab2c(0x14b)+_0x32ce18+_0x4cab2c(0x1dd),_0x188357=getTagForSource(_0x4cab2c(0x18f)),_0x38aa79='<'+_0x188357+'>\x0a'+_0x129e79+'\x0a'+_0x5eac67+_0x4cab2c(0x20c)+_0x188357+'>';_0x564626['push']({'text':_0x38aa79,'metadata':{'source':_0x4cab2c(0x18f),'sourceName':'聊天记录\x20#'+_0x62338a,'floor':_0x62338a,'part':_0x32ce18,'is_user':_0x26cf1b,'timestamp':_0x3153eb}}),_0x32ce18++,_0x52f2dc+=_0x1a0166-_0x2fc9cd;if(_0x52f2dc>=_0x6534d3[_0x4cab2c(0x1d9)])break;}return _0x564626;}function _chunkForLorebook(_0x364d12,_0x511a43){const _0x1927c9=_0x42f4ac,{chunkSize:_0x2bd93b,overlap:_0xb5c54f}=settings['advanced'],{sourceName:sourceName=_0x1927c9(0x1e5)}=_0x511a43,_0x26d9e6=[];if(!_0x364d12||_0x2bd93b<=0x0)return _0x26d9e6;let _0xb9a3f3=0x1,_0xf734ac=0x0;while(_0xf734ac<_0x364d12[_0x1927c9(0x1d9)]){const _0x5c5078=Math[_0x1927c9(0x206)](_0xf734ac+_0x2bd93b,_0x364d12['length']),_0x5e26e1=_0x364d12[_0x1927c9(0x1cd)](_0xf734ac,_0x5c5078),_0x269734=_0x1927c9(0x23a)+sourceName+_0x1927c9(0x14b)+_0xb9a3f3+_0x1927c9(0x1dd),_0x188282=getTagForSource('lorebook'),_0x5e446b='<'+_0x188282+'>\x0a'+_0x269734+'\x0a'+_0x5e26e1+_0x1927c9(0x20c)+_0x188282+'>';_0x26d9e6[_0x1927c9(0x216)]({'text':_0x5e446b,'metadata':{'source':_0x1927c9(0x1bc),'sourceName':sourceName,'part':_0xb9a3f3,'timestamp':new Date()[_0x1927c9(0x1b5)]()}}),_0xb9a3f3++,_0xf734ac+=_0x2bd93b-_0xb5c54f;if(_0xf734ac>=_0x364d12[_0x1927c9(0x1d9)])break;}return _0x26d9e6;}function _chunkForManual(_0x3ce81f,_0xc7f40b){const _0x5883ef=_0x42f4ac,{chunkSize:_0x530e70,overlap:_0x492f1c}=settings[_0x5883ef(0x1f3)],{sourceName:sourceName='手动录入'}=_0xc7f40b,_0xd03c45=[];if(!_0x3ce81f||_0x530e70<=0x0)return _0xd03c45;const _0x2f2e04=new Date(),_0x402179=_0x2f2e04[_0x5883ef(0x1eb)](_0x5883ef(0x224));let _0x38d9ce=0x1,_0x1705b8=0x0;while(_0x1705b8<_0x3ce81f[_0x5883ef(0x1d9)]){const _0x939882=Math[_0x5883ef(0x206)](_0x1705b8+_0x530e70,_0x3ce81f[_0x5883ef(0x1d9)]),_0x339659=_0x3ce81f[_0x5883ef(0x1cd)](_0x1705b8,_0x939882),_0x4e417c=_0x5883ef(0x18a)+sourceName+',\x20向量化录入时间:\x20'+_0x402179+_0x5883ef(0x14b)+_0x38d9ce+_0x5883ef(0x1dd),_0x321440=getTagForSource(_0x5883ef(0x197)),_0x2c0c06='<'+_0x321440+'>\x0a'+_0x4e417c+'\x0a'+_0x339659+_0x5883ef(0x20c)+_0x321440+'>';_0xd03c45[_0x5883ef(0x216)]({'text':_0x2c0c06,'metadata':{'source':_0x5883ef(0x197),'sourceName':sourceName,'part':_0x38d9ce,'timestamp':_0x2f2e04[_0x5883ef(0x1b5)]()}}),_0x38d9ce++,_0x1705b8+=_0x530e70-_0x492f1c;if(_0x1705b8>=_0x3ce81f[_0x5883ef(0x1d9)])break;}return _0xd03c45;}import{getCollectionId as _0x445401,getCharacterName}from'./utils/context-utils.js';async function getCollectionId(){return lockedCollectionId||await _0x445401();}async function toggleSessionLock(){return lockedCollectionId?(lockedCollectionId=null,![]):(lockedCollectionId=await _0x445401(),!![]);}function isSessionLocked(){return lockedCollectionId!==null;}function getLockedSessionInfo(){const _0x337dca=_0x42f4ac;if(!lockedCollectionId)return null;return{'id':lockedCollectionId,'name':'(已锁定:\x20'+lockedCollectionId[_0x337dca(0x1cd)](0x0,0x8)+'...)'};}function getLocalKnowledgeBases(){const _0x2d79d9=_0x42f4ac,_0x377f2a=getCharacterStableId();return!settings[_0x2d79d9(0x1b4)][_0x377f2a]&&(settings['knowledgeBases'][_0x377f2a]={}),settings[_0x2d79d9(0x1b4)][_0x377f2a];}function getGlobalKnowledgeBases(){const _0x351e5a=_0x42f4ac;return!settings[_0x351e5a(0x1b4)][GLOBAL_SCOPE_ID]&&(settings[_0x351e5a(0x1b4)][GLOBAL_SCOPE_ID]={}),settings[_0x351e5a(0x1b4)][GLOBAL_SCOPE_ID];}function getKnowledgeBases(){const _0x4dcab9=getLocalKnowledgeBases(),_0x24f671=getGlobalKnowledgeBases();return{..._0x24f671,..._0x4dcab9};}function addKnowledgeBase(_0x94e7a9){const _0x1423e3=_0x42f4ac;if(!_0x94e7a9||!_0x94e7a9[_0x1423e3(0x1cc)]())throw new Error(_0x1423e3(0x1a5));const _0x5153d6=getCharacterStableId(),_0x42ae3d=getLocalKnowledgeBases(),_0x219ee9=_0x1423e3(0x228)+Date[_0x1423e3(0x1c6)]()+'_'+Math['random']()[_0x1423e3(0x1a8)](0x24)[_0x1423e3(0x1cd)](0x2,0x9),_0x328eb5={'id':_0x219ee9,'name':_0x94e7a9[_0x1423e3(0x1cc)](),'enabled':!![],'createdAt':new Date()['toISOString'](),'owner':_0x5153d6};return _0x42ae3d[_0x219ee9]=_0x328eb5,saveSettings(),console[_0x1423e3(0x179)](_0x1423e3(0x1a0)+_0x5153d6+_0x1423e3(0x1a4)+_0x94e7a9+_0x1423e3(0x182)+_0x219ee9+')'),_0x328eb5;}async function removeKnowledgeBase(_0x103cc2,_0x280501){const _0x43dd3a=_0x42f4ac,_0x361b2e=getCharacterStableId(),_0x5df73c=_0x280501==='global'?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x2c0705=_0x5df73c[_0x103cc2],_0x20e1d3=_0x2c0705?.['name']||_0x103cc2;if(!_0x2c0705){console[_0x43dd3a(0x211)](_0x43dd3a(0x166)+_0x103cc2+_0x43dd3a(0x162)+_0x280501+')');return;}const _0x234954=_0x280501===_0x43dd3a(0x16f)?_0x2c0705[_0x43dd3a(0x17d)]||GLOBAL_SCOPE_ID:_0x361b2e,_0x35822e=_0x234954+'_'+_0x103cc2;console[_0x43dd3a(0x179)](_0x43dd3a(0x19e)+_0x103cc2+_0x43dd3a(0x1fd)+_0x35822e);const _0x463665=await purgeStorage(_0x35822e);_0x463665?(delete _0x5df73c[_0x103cc2],saveSettings(),console[_0x43dd3a(0x179)](_0x43dd3a(0x1f8)+_0x103cc2+'\x20及其向量数据。'),toastr[_0x43dd3a(0x187)](_0x43dd3a(0x1b1)+_0x20e1d3+_0x43dd3a(0x178))):(console[_0x43dd3a(0x238)](_0x43dd3a(0x186)+_0x35822e+_0x43dd3a(0x16d)),toastr['error'](_0x43dd3a(0x1f4)));}function toggleKnowledgeBase(_0x54540b,_0x570482){const _0x4c5547=_0x42f4ac,_0xc08b2a=_0x570482===_0x4c5547(0x16f)?getGlobalKnowledgeBases():getLocalKnowledgeBases();_0xc08b2a[_0x54540b]&&(_0xc08b2a[_0x54540b]['enabled']=!_0xc08b2a[_0x54540b][_0x4c5547(0x208)],saveSettings(),console[_0x4c5547(0x179)](_0x4c5547(0x212)+_0x54540b+_0x4c5547(0x162)+_0x570482+')\x20的状态已切换为:\x20'+(_0xc08b2a[_0x54540b][_0x4c5547(0x208)]?'启用':'禁用')));}function generateHash(_0x275e1b){const _0x297a52=_0x42f4ac;let _0x19c7b=0x0;for(let _0x3276ed=0x0;_0x3276ed<_0x275e1b[_0x297a52(0x1d9)];_0x3276ed++){const _0x533fc5=_0x275e1b['charCodeAt'](_0x3276ed);_0x19c7b=(_0x19c7b<<0x5)-_0x19c7b+_0x533fc5,_0x19c7b=_0x19c7b&_0x19c7b;}return Math[_0x297a52(0x1e1)](_0x19c7b)[_0x297a52(0x1a8)](0x24);}async function queryVectors(_0x5eb1c1){const _0x6ee656=_0x42f4ac;console[_0x6ee656(0x179)](_0x6ee656(0x160));const _0x215a7b=getCharacterStableId(),_0x175aa7=getLocalKnowledgeBases(),_0x51fab7=getGlobalKnowledgeBases(),_0x7b44c9=Object['values'](_0x175aa7)[_0x6ee656(0x1c8)](_0x346888=>_0x346888[_0x6ee656(0x208)]),_0xdce7b8=Object['values'](_0x51fab7)[_0x6ee656(0x1c8)](_0x61a4bb=>_0x61a4bb['enabled']),_0x4edda1=[..._0x7b44c9[_0x6ee656(0x23b)](_0x4c6df6=>({..._0x4c6df6,'scope':_0x6ee656(0x205)})),..._0xdce7b8[_0x6ee656(0x23b)](_0x2823e4=>({..._0x2823e4,'scope':_0x6ee656(0x16f)}))];if(_0x4edda1[_0x6ee656(0x1d9)]===0x0){console[_0x6ee656(0x179)](_0x6ee656(0x1f1));const _0xfc071d=await _0x445401();if(!_0xfc071d)return[];_0x4edda1['push']({'id':null,'name':'旧版宝库\x20(Legacy)','scope':_0x6ee656(0x200)});}const _0x176aeb=(await getEmbeddings([_0x5eb1c1]))[0x0];let _0x4a83a0=[];const _0x548b49=_0x4edda1['map'](_0x310537=>{const _0x4f5ab5=_0x6ee656;let _0x457a3b;if(_0x310537[_0x4f5ab5(0x221)]===_0x4f5ab5(0x200))_0x457a3b=_0x445401();else{const _0x6a5758=_0x310537[_0x4f5ab5(0x221)]===_0x4f5ab5(0x16f)?_0x310537[_0x4f5ab5(0x17d)]||GLOBAL_SCOPE_ID:_0x215a7b;_0x457a3b=Promise['resolve'](_0x6a5758+'_'+_0x310537['id']);}return _0x457a3b[_0x4f5ab5(0x237)](_0x4c8743=>{const _0x529ae8=_0x4f5ab5;if(!_0x4c8743)return[];console[_0x529ae8(0x179)](_0x529ae8(0x153)+_0x310537[_0x529ae8(0x1a1)]+_0x529ae8(0x182)+_0x4c8743+')');const _0x2d32a7={'collectionId':_0x4c8743,'searchText':_0x5eb1c1,'topK':settings['advanced'][_0x529ae8(0x1f2)],'threshold':settings[_0x529ae8(0x1f3)]['matchThreshold'],'source':_0x529ae8(0x1e3),'embeddings':{[_0x5eb1c1]:_0x176aeb}};return fetch('/api/vector/query',{'method':_0x529ae8(0x231),'headers':context[_0x529ae8(0x1f9)](),'body':JSON[_0x529ae8(0x174)](_0x2d32a7)})[_0x529ae8(0x237)](async _0x5a6a1a=>{const _0x5872e6=_0x529ae8;if(!_0x5a6a1a['ok']){const _0x2f1a8c=await _0x5a6a1a[_0x5872e6(0x1b3)]();return console[_0x5872e6(0x238)](_0x5872e6(0x1d5)+_0x4c8743+_0x5872e6(0x203),_0x2f1a8c),[];}const _0x46994b=await _0x5a6a1a[_0x5872e6(0x1d6)](),_0x53d7f9=_0x46994b[_0x5872e6(0x15d)]||_0x46994b[_0x5872e6(0x1c2)]||_0x46994b[_0x5872e6(0x150)]||[];return console[_0x5872e6(0x179)](_0x5872e6(0x1cb)+_0x310537[_0x5872e6(0x1a1)]+_0x5872e6(0x18e)+_0x53d7f9[_0x5872e6(0x1d9)]+'\x20条结果。'),_0x53d7f9;})[_0x529ae8(0x1c4)](_0x461323=>{const _0x7cf9d7=_0x529ae8;return console['error'](_0x7cf9d7(0x1d5)+_0x4c8743+_0x7cf9d7(0x1ec),_0x461323),[];});});}),_0x348bc1=await Promise['all'](_0x548b49);_0x4a83a0=_0x348bc1[_0x6ee656(0x1d3)](),console['log'](_0x6ee656(0x151)+_0x4a83a0[_0x6ee656(0x1d9)]+_0x6ee656(0x1ae));const _0x2b46fa=[],_0x4cf984=new Set();for(const _0x48949a of _0x4a83a0){_0x48949a&&_0x48949a[_0x6ee656(0x1b3)]&&!_0x4cf984[_0x6ee656(0x1c0)](_0x48949a[_0x6ee656(0x1b3)])&&(_0x4cf984['add'](_0x48949a['text']),_0x2b46fa['push'](_0x48949a));}return console[_0x6ee656(0x179)]('[翰林院-日志]\x20去重后剩余\x20'+_0x2b46fa[_0x6ee656(0x1d9)]+_0x6ee656(0x1bb)),_0x2b46fa[_0x6ee656(0x21c)]((_0x3acdf8,_0x27b6ce)=>(_0x27b6ce[_0x6ee656(0x1fc)]||0x0)-(_0x3acdf8[_0x6ee656(0x1fc)]||0x0)),_0x2b46fa;}async function insertVectors(_0x2a3578,_0x441a8b=null,_0x161a34){const _0x28cae4=_0x42f4ac;if(!_0x161a34)throw new Error(_0x28cae4(0x1ed));if(_0x2a3578[_0x28cae4(0x1d9)]===0x0)return{'success':!![],'count':0x0};const _0x5b8d50=_0x2a3578[_0x28cae4(0x23b)]((_0x426110,_0x2a0398)=>({'hash':generateHash(_0x426110['text']+Date[_0x28cae4(0x1c6)]()+_0x2a0398),'text':_0x426110['text'],'metadata':_0x426110[_0x28cae4(0x15d)]||{'source':_0x28cae4(0x1af),'timestamp':new Date()[_0x28cae4(0x1b5)]()}})),_0x19b3a6=_0x5b8d50[_0x28cae4(0x1df)]((_0x2f0fab,_0x3be9af,_0x3d31d8)=>{const _0x45d0e6=_0x28cae4;return _0x2f0fab[_0x3be9af['text']]=_0x2a3578[_0x3d31d8][_0x45d0e6(0x239)],_0x2f0fab;},{}),_0x4b75d2={'collectionId':_0x161a34,'items':_0x5b8d50,'source':_0x28cae4(0x1e3),'embeddings':_0x19b3a6},_0x1c8d83=await fetch('/api/vector/insert',{'method':'POST','headers':context[_0x28cae4(0x1f9)](),'body':JSON[_0x28cae4(0x174)](_0x4b75d2),'signal':_0x441a8b});if(!_0x1c8d83['ok']){const _0x42cc5e=await _0x1c8d83[_0x28cae4(0x1b3)]();console['error'](_0x28cae4(0x158),_0x42cc5e);throw new Error(_0x28cae4(0x1ea)+_0x1c8d83[_0x28cae4(0x1db)]+':\x20'+_0x42cc5e);}return{'success':!![],'count':_0x5b8d50[_0x28cae4(0x1d9)]};}async function getVectorCount(_0x3f0b24=null,_0x43a99f=_0x42f4ac(0x205)){const _0x525f12=_0x42f4ac,_0x1958d0=getCharacterStableId();if(_0x3f0b24){const _0x42700c=_0x43a99f===_0x525f12(0x16f)?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x5aee97=_0x42700c[_0x3f0b24];if(!_0x5aee97)return console[_0x525f12(0x211)](_0x525f12(0x176)+_0x43a99f+'\x27\x20中未找到ID为\x20'+_0x3f0b24+'\x20的知识库。'),0x0;const _0xa02261=_0x43a99f==='global'?_0x5aee97[_0x525f12(0x17d)]||GLOBAL_SCOPE_ID:_0x1958d0,_0x56c8eb=_0xa02261+'_'+_0x3f0b24;return await countVectorsInCollection(_0x56c8eb);}else{console[_0x525f12(0x179)](_0x525f12(0x163));const _0x2cd7fc=Object[_0x525f12(0x1dc)](getLocalKnowledgeBases()),_0x54807c=Object[_0x525f12(0x1dc)](getGlobalKnowledgeBases()),_0x2eb27c=[];_0x2cd7fc[_0x525f12(0x1c3)](_0x1e69ff=>{const _0x3b4556=_0x525f12,_0x3b35f0=_0x1958d0+'_'+_0x1e69ff['id'];_0x2eb27c[_0x3b4556(0x216)](countVectorsInCollection(_0x3b35f0));}),_0x54807c[_0x525f12(0x1c3)](_0xe6aab9=>{const _0x3ad445=_0x525f12,_0x3be96b=_0xe6aab9[_0x3ad445(0x17d)]||GLOBAL_SCOPE_ID,_0x514f0a=_0x3be96b+'_'+_0xe6aab9['id'];_0x2eb27c[_0x3ad445(0x216)](countVectorsInCollection(_0x514f0a));});const _0x1ac6a0=await _0x445401();_0x2eb27c[_0x525f12(0x216)](countVectorsInCollection(_0x1ac6a0));const _0x4b312e=await Promise['all'](_0x2eb27c),_0x44af36=_0x4b312e[_0x525f12(0x1df)]((_0x445458,_0x600451)=>_0x445458+_0x600451,0x0);return console[_0x525f12(0x179)](_0x525f12(0x1cf)+_0x44af36),_0x44af36;}}async function countVectorsInCollection(_0x356d88){const _0x3c09f3=_0x42f4ac;if(!_0x356d88)return 0x0;console['log'](_0x3c09f3(0x1b7)+_0x356d88);const _0x380b05={'collectionId':_0x356d88,'source':_0x3c09f3(0x1e3),'embeddings':{}};try{const _0x57a8bd=await fetch(_0x3c09f3(0x1f6),{'method':_0x3c09f3(0x231),'headers':context[_0x3c09f3(0x1f9)](),'body':JSON[_0x3c09f3(0x174)](_0x380b05)});if(!_0x57a8bd['ok']){if(_0x57a8bd[_0x3c09f3(0x1db)]===0x194)console['log'](_0x3c09f3(0x1c7)+_0x356d88+'\x20不存在,计为\x200。');else{const _0x2d5f39=await _0x57a8bd[_0x3c09f3(0x1b3)]();console[_0x3c09f3(0x211)](_0x3c09f3(0x198)+_0x356d88+_0x3c09f3(0x20e)+_0x57a8bd[_0x3c09f3(0x1db)]+'):',_0x2d5f39);}return 0x0;}const _0x2dd760=await _0x57a8bd[_0x3c09f3(0x1d6)]();let _0x5abf0a=0x0;if(Array[_0x3c09f3(0x1a6)](_0x2dd760))_0x5abf0a=_0x2dd760[_0x3c09f3(0x1d9)];else _0x2dd760&&_0x2dd760[_0x3c09f3(0x17a)]&&(_0x5abf0a=_0x2dd760[_0x3c09f3(0x17a)][_0x3c09f3(0x1d9)]);return _0x5abf0a;}catch(_0x536223){return console[_0x3c09f3(0x238)](_0x3c09f3(0x20d)+_0x356d88+'\x20时发生网络错误:',_0x536223),0x0;}}async function purgeStorage(_0x2a3d75=null){const _0x11817f=_0x42f4ac;console[_0x11817f(0x179)]('[翰林院-日志]\x20开始清空宝库...');const _0x5a5108=_0x2a3d75||await getCollectionId();if(!_0x5a5108)return console[_0x11817f(0x238)](_0x11817f(0x233)),toastr[_0x11817f(0x238)](_0x11817f(0x14f)),![];console['log'](_0x11817f(0x1a9)+_0x5a5108);const _0x2d229b={'collectionId':_0x5a5108};console[_0x11817f(0x179)](_0x11817f(0x165),JSON[_0x11817f(0x174)](_0x2d229b,null,0x2));const _0x573028=await fetch(_0x11817f(0x234),{'method':_0x11817f(0x231),'headers':context['getRequestHeaders'](),'body':JSON[_0x11817f(0x174)](_0x2d229b)});console['log'](_0x11817f(0x20f)+_0x573028[_0x11817f(0x1db)]);if(!_0x573028['ok']){const _0x4c938a=await _0x573028[_0x11817f(0x1b3)]();console[_0x11817f(0x238)](_0x11817f(0x196),_0x4c938a);}else console['log'](_0x11817f(0x1f7));return _0x573028['ok'];}function _0x472d(_0x325186,_0x4b5f39){const _0x3c6beb=_0x3c6b();return _0x472d=function(_0x472d1d,_0x19f0a9){_0x472d1d=_0x472d1d-0x14b;let _0x5a6285=_0x3c6beb[_0x472d1d];return _0x5a6285;},_0x472d(_0x325186,_0x4b5f39);}function getMessagesForCondensation(_0x5c2a93=null){const _0x1d2f4a=_0x42f4ac;if(!settings[_0x1d2f4a(0x219)][_0x1d2f4a(0x208)])return showNotification(_0x1d2f4a(0x19d),_0x1d2f4a(0x1e6)),[];const {layerStart:_0x10148e,layerEnd:_0x582010}=settings[_0x1d2f4a(0x219)],_0x16eb9f=_0x5c2a93||settings[_0x1d2f4a(0x219)][_0x1d2f4a(0x157)],_0x30081b=context[_0x1d2f4a(0x1a3)][_0x1d2f4a(0x1d9)],_0x19c144=Math[_0x1d2f4a(0x1d1)](0x0,_0x10148e-0x1),_0x460a5e=_0x582010===0x0||_0x582010>_0x30081b?_0x30081b:Math[_0x1d2f4a(0x206)](_0x30081b,_0x582010),_0xad890e=context[_0x1d2f4a(0x1a3)][_0x1d2f4a(0x230)](_0x19c144,_0x460a5e);return _0xad890e[_0x1d2f4a(0x1c8)](_0x34125b=>{const _0x3b40d0=_0x1d2f4a,_0x566d0b=_0x34125b[_0x3b40d0(0x1d7)]===!![],_0x5bbb0d=_0x34125b[_0x3b40d0(0x1d7)]===![];if(!_0x34125b[_0x3b40d0(0x1c9)]||!_0x34125b['mes'][_0x3b40d0(0x1cc)]())return![];return _0x16eb9f[_0x3b40d0(0x1ac)]&&_0x566d0b||_0x16eb9f['ai']&&_0x5bbb0d;});}async function processCondensation(_0x57be32,_0x3993d5=()=>{},_0xeaa323=null){const _0x187597=_0x42f4ac;if(!_0x57be32||_0x57be32[_0x187597(0x1d9)]===0x0)return{'success':![],'error':_0x187597(0x16a)};try{let _0x537b9a,_0x5329d6;const _0x992fac=getCharacterName()||'未知角色';if(_0xeaa323){const _0x2d1b4c=_0xeaa323[_0x187597(0x181)]??'?',_0x1b7724=_0xeaa323[_0x187597(0x1b9)]===0x0?'末':_0xeaa323['end']??'?';_0x537b9a=_0x992fac+':\x20'+_0x2d1b4c+'楼-'+_0x1b7724+'楼';}else{const _0x374f67=new Date()[_0x187597(0x1eb)]('zh-CN',{'hour12':![]});_0x537b9a='聊天记录:\x20'+_0x374f67;}const _0x3fdeeb=Object[_0x187597(0x1dc)](getLocalKnowledgeBases()),_0x1c7033=_0x3fdeeb[_0x187597(0x1d2)](_0x15331e=>_0x15331e[_0x187597(0x1a1)]===_0x537b9a);if(_0x1c7033)_0x5329d6=_0x1c7033['id'],_0x3993d5(_0x187597(0x18c)+_0x537b9a+_0x187597(0x193),_0x187597(0x204));else{_0x3993d5(_0x187597(0x213)+_0x537b9a+_0x187597(0x21f),_0x187597(0x204));const _0x22c5ef=addKnowledgeBase(_0x537b9a);_0x5329d6=_0x22c5ef['id'];}const _0x1ed4ee=getCharacterStableId(),_0x59032b=_0x1ed4ee+'_'+_0x5329d6;_0x3993d5(_0x187597(0x1b0)+_0x537b9a+'\x20(集合ID:\x20'+_0x59032b+')',_0x187597(0x187));const _0x4ef83a=[],_0x3b0efa=context[_0x187597(0x1a3)];for(const _0xe4e11b of _0x57be32){const _0x11d7c3=(_0xe4e11b[_0x187597(0x1c9)]||'')[_0x187597(0x227)](/<[^>]*>/g,'')[_0x187597(0x1cc)]();if(_0x11d7c3['length']===0x0)continue;let _0x3fd542;if(_0xe4e11b[_0x187597(0x223)]!==undefined&&_0xe4e11b[_0x187597(0x223)]!==null)_0x3fd542=_0xe4e11b[_0x187597(0x223)];else{const _0x5216c0=_0x3b0efa[_0x187597(0x177)](_0x505bf4=>_0x505bf4===_0xe4e11b);_0x3fd542=_0x5216c0!==-0x1?_0x5216c0+0x1:-0x1;}const _0x5b1fbc=new Date(_0xe4e11b[_0x187597(0x1ad)]),_0x14d5b3=isNaN(_0x5b1fbc[_0x187597(0x22f)]())?new Date()[_0x187597(0x1b5)]():_0x5b1fbc[_0x187597(0x1b5)](),_0x3c518a=splitIntoChunks(_0x11d7c3,_0x187597(0x18f),{'floor':_0x3fd542,'is_user':_0xe4e11b['is_user'],'timestamp':_0x14d5b3});_0x4ef83a[_0x187597(0x216)](..._0x3c518a);}if(_0x4ef83a['length']===0x0)return{'success':!![],'count':0x0};_0x3993d5(_0x187597(0x1ba)+_0x57be32[_0x187597(0x1d9)]+_0x187597(0x168)+_0x4ef83a[_0x187597(0x1d9)]+_0x187597(0x1c1),'info');const _0x36f0cf=settings[_0x187597(0x22b)][_0x187597(0x1de)]||0x5;let _0x51dd22=0x0;for(let _0x4ecce5=0x0;_0x4ecce5<_0x4ef83a[_0x187597(0x1d9)];_0x4ecce5+=_0x36f0cf){const _0x48bec7=_0x4ef83a[_0x187597(0x230)](_0x4ecce5,_0x4ecce5+_0x36f0cf),_0x3814ed=_0x48bec7[_0x187597(0x23b)](_0x376681=>_0x376681[_0x187597(0x1b3)]),_0x35115a=await getEmbeddings(_0x3814ed);if(_0x48bec7['length']!==_0x35115a[_0x187597(0x1d9)])throw new Error(_0x187597(0x21d));const _0x1627c8=_0x48bec7[_0x187597(0x23b)]((_0x36d28d,_0x2471b5)=>({..._0x36d28d,'vector':_0x35115a[_0x2471b5]}));await insertVectors(_0x1627c8,null,_0x59032b),_0x51dd22+=_0x48bec7[_0x187597(0x1d9)];}if(_0xeaa323){const _0x4510d7=_0xeaa323['end']===0x0?context[_0x187597(0x1a3)][_0x187597(0x1d9)]:_0xeaa323[_0x187597(0x1b9)],_0x121252=getCharacterStableId();!settings[_0x187597(0x1ce)][_0x121252]&&(settings[_0x187597(0x1ce)][_0x121252]={}),settings[_0x187597(0x1ce)][_0x121252][_0x59032b]={'start':_0xeaa323[_0x187597(0x181)],'end':_0x4510d7,'timestamp':new Date()[_0x187597(0x1b5)]()},saveSettings(),_0x3993d5(_0x187597(0x17f)+_0x59032b+'\x20记录凝识范围:\x20'+_0xeaa323[_0x187597(0x181)]+'-'+_0x4510d7,_0x187597(0x204));}_0x3993d5('[翰林院-核心]\x20聊天记录凝识完成,成功插入\x20'+_0x51dd22+'\x20个条目。','success');const _0x49a32e=_0x57be32[_0x187597(0x23b)](_0xfb74f8=>{const _0x110dcb=_0x187597,_0x2d08f8=_0x3b0efa[_0x110dcb(0x177)](_0x19d934=>_0x19d934===_0xfb74f8),_0x48b4ab=_0x2d08f8!==-0x1?_0x2d08f8+0x1:-0x1,_0xdfb442=_0xfb74f8['is_user']?'用户':getCharacterName()||'AI';return'['+_0xdfb442+_0x110dcb(0x156)+_0x48b4ab+_0x110dcb(0x199);});return{'success':!![],'count':_0x51dd22,'messages':_0x49a32e};}catch(_0x40bc99){return console['error'](_0x187597(0x161),_0x40bc99),_0x3993d5('[翰林院-核心]\x20聊天记录凝识失败:\x20'+_0x40bc99[_0x187597(0x14e)],'error'),{'success':![],'error':_0x40bc99['message']};}}async function rerankResults(_0x3c1d95,_0x113c92,_0x20cb93){const _0x500ded=_0x42f4ac;let _0x5a4fbc=_0x3c1d95;if(_0x20cb93[_0x500ded(0x183)][_0x500ded(0x208)]&&_0x3c1d95[_0x500ded(0x1d9)]>0x0){console[_0x500ded(0x179)]('[翰林院-Rerank]\x20开始外部API重排序...');try{const _0x1ca0fd=_0x3c1d95['map'](_0x2c8064=>_0x2c8064[_0x500ded(0x1b3)]),_0x2c7358=await executeRerank(_0x113c92,_0x1ca0fd,_0x20cb93[_0x500ded(0x183)]),_0x1757fe=_0x3c1d95[_0x500ded(0x23b)]((_0x40c44c,_0x56bfc5)=>({..._0x40c44c,'original_index':_0x56bfc5}));_0x5a4fbc=_0x1757fe[_0x500ded(0x23b)](_0x166930=>{const _0x26557a=_0x500ded,_0x4c93ce=_0x2c7358[_0x26557a(0x1c2)][_0x26557a(0x1d2)](_0x2905a8=>_0x2905a8[_0x26557a(0x226)]===_0x166930[_0x26557a(0x1e7)]),_0x4c02a2=_0x4c93ce?_0x4c93ce[_0x26557a(0x1c5)]:0x0;return{..._0x166930,'rerank_score':_0x4c02a2};});if(_0x20cb93[_0x500ded(0x183)][_0x500ded(0x22d)])showNotification(_0x500ded(0x191),_0x500ded(0x187));}catch(_0x51e7ae){console[_0x500ded(0x238)](_0x500ded(0x19c),_0x51e7ae);if(_0x20cb93[_0x500ded(0x183)][_0x500ded(0x22d)])showNotification(_0x500ded(0x1ef)+_0x51e7ae[_0x500ded(0x14e)],_0x500ded(0x238));_0x5a4fbc[_0x500ded(0x1c3)](_0x2dceda=>_0x2dceda[_0x500ded(0x1ab)]=0x0);}}else _0x5a4fbc[_0x500ded(0x1c3)](_0xead488=>_0xead488['rerank_score']=0x0);console['log'](_0x500ded(0x15b));const _0x7e8e35=context['chat'][_0x500ded(0x1d9)],_0x16f9d3=_0x20cb93[_0x500ded(0x183)]['hybrid_alpha'],_0x2c1093=_0x5a4fbc[_0x500ded(0x23b)](_0x155c68=>{const _0x319da=_0x500ded;let _0x3b5b77=0x1;const _0x10b322=_0x155c68[_0x319da(0x15d)]||{};switch(_0x10b322[_0x319da(0x15e)]){case _0x319da(0x1bc):_0x3b5b77*=1.2;break;case'manual':_0x3b5b77*=1.1;break;case _0x319da(0x18f):if(_0x10b322[_0x319da(0x223)]&&_0x7e8e35>0x0){const _0x445f5c=_0x10b322[_0x319da(0x223)]/_0x7e8e35;_0x3b5b77*=0x1+_0x445f5c;}break;}const _0x297a24=_0x155c68[_0x319da(0x1ab)]*_0x16f9d3+(_0x155c68['score']||0x0)*(0x1-_0x16f9d3),_0x475841=_0x297a24*_0x3b5b77;return{..._0x155c68,'final_score':_0x475841};});return _0x2c1093[_0x500ded(0x21c)]((_0x22b359,_0x467335)=>(_0x467335[_0x500ded(0x220)]||0x0)-(_0x22b359[_0x500ded(0x220)]||0x0)),console[_0x500ded(0x179)](_0x500ded(0x1b8)),_0x2c1093['slice'](0x0,_0x20cb93[_0x500ded(0x183)][_0x500ded(0x1da)]);}async function rearrangeChat(_0x306200,_0x36b6c7,_0x3465e1,_0x19c92c){const _0x517272=_0x42f4ac;setExtensionPrompt(_0x517272(0x217),'',settings['injection'][_0x517272(0x1bf)],settings[_0x517272(0x16c)]['depth'],![],settings[_0x517272(0x16c)][_0x517272(0x190)]);if(_0x19c92c===_0x517272(0x16e)||!settings['retrieval'][_0x517272(0x208)])return;const _0x5604c4=_0x306200['slice'](-settings[_0x517272(0x1f3)][_0x517272(0x18d)]);if(_0x5604c4[_0x517272(0x1d9)]===0x0)return;const _0xa9879f=_0x5604c4[_0x517272(0x23b)](_0x638be9=>_0x638be9['mes'])['join']('\x20')[_0x517272(0x227)](/<[^>]*>/g,'')[_0x517272(0x1cc)]();if(!_0xa9879f)return;try{const _0x3adcf6=await queryVectors(_0xa9879f);if(_0x3adcf6[_0x517272(0x1d9)]===0x0)return;const _0x562e9c=await rerankResults(_0x3adcf6,_0xa9879f,settings);if(_0x562e9c[_0x517272(0x1d9)]===0x0)return;const _0x12dd60=_0x562e9c[_0x517272(0x23b)](_0x390b23=>_0x390b23[_0x517272(0x1b3)])[_0x517272(0x1e8)]('\x0a\x0a');let _0x17b2ef=settings['injection'][_0x517272(0x218)][_0x517272(0x227)](_0x517272(0x159),_0x12dd60);_0x17b2ef[_0x517272(0x1cc)]()&&(_0x17b2ef=_0x517272(0x1b2)+_0x17b2ef),setExtensionPrompt(_0x517272(0x217),_0x17b2ef,settings[_0x517272(0x16c)][_0x517272(0x1bf)],settings[_0x517272(0x16c)][_0x517272(0x1b6)],![],settings['injection'][_0x517272(0x190)]);}catch(_0x47bf14){console['error'](_0x517272(0x154),_0x47bf14);if(settings[_0x517272(0x22b)][_0x517272(0x22d)])showNotification('忆识检索失败:\x20'+_0x47bf14[_0x517272(0x14e)],'error');}}async function moveKnowledgeBase(_0x463824,_0x3d832b){const _0x2b2268=_0x42f4ac,_0x430e4a=_0x3d832b==='global'?_0x2b2268(0x205):_0x2b2268(0x16f),_0x1d1e0d=getCharacterStableId();if(!_0x1d1e0d&&_0x430e4a===_0x2b2268(0x205)){toastr[_0x2b2268(0x238)](_0x2b2268(0x20a));return;}const _0xab090c=_0x3d832b==='global'?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x21bf5a=_0x430e4a===_0x2b2268(0x16f)?getGlobalKnowledgeBases():getLocalKnowledgeBases(),_0x28d5cf=_0xab090c[_0x463824];if(!_0x28d5cf){const _0x546a70='在源作用域\x20\x27'+_0x3d832b+_0x2b2268(0x1d8)+_0x463824+'\x20的知识库。';console[_0x2b2268(0x238)]('[翰林院-配置]\x20'+_0x546a70),toastr[_0x2b2268(0x238)](_0x2b2268(0x17b));return;}_0x3d832b===_0x2b2268(0x205)&&_0x430e4a===_0x2b2268(0x16f)&&!_0x28d5cf[_0x2b2268(0x17d)]&&(console[_0x2b2268(0x179)](_0x2b2268(0x1e9)+_0x463824+_0x2b2268(0x16b)+_0x1d1e0d),_0x28d5cf['owner']=_0x1d1e0d);delete _0xab090c[_0x463824],_0x21bf5a[_0x463824]=_0x28d5cf,saveSettings();const _0x41e8a5=_0x2b2268(0x15f)+_0x28d5cf[_0x2b2268(0x1a1)]+_0x2b2268(0x20b)+(_0x430e4a===_0x2b2268(0x16f)?'全局':'局部')+'。';console[_0x2b2268(0x179)](_0x2b2268(0x229)+_0x41e8a5),toastr['success'](_0x41e8a5,'配置更新');}async function getAllVectorsFromCollection(_0x53e8aa){const _0x577dd0=_0x42f4ac,_0x567c7b='*',_0x464606={'collectionId':_0x53e8aa,'searchText':_0x567c7b,'topK':0x2710,'threshold':0x0,'source':'webllm','embeddings':{}},_0x3c6179=(await getEmbeddings([_0x567c7b]))[0x0];_0x464606[_0x577dd0(0x188)]={[_0x567c7b]:_0x3c6179};const _0x66c977=await fetch(_0x577dd0(0x184),{'method':_0x577dd0(0x231),'headers':context['getRequestHeaders'](),'body':JSON[_0x577dd0(0x174)](_0x464606)});if(!_0x66c977['ok']){if(_0x66c977[_0x577dd0(0x1db)]===0x194)return console[_0x577dd0(0x179)]('[翰林院-迁移]\x20集合\x20'+_0x53e8aa+_0x577dd0(0x207)),[];const _0x58fe26=await _0x66c977['text']();throw new Error(_0x577dd0(0x209)+_0x53e8aa+_0x577dd0(0x155)+_0x58fe26);}const _0x27f6e9=await _0x66c977[_0x577dd0(0x1d6)]();return _0x27f6e9[_0x577dd0(0x15d)]||_0x27f6e9[_0x577dd0(0x1c2)]||_0x27f6e9[_0x577dd0(0x150)]||[];}