diff --git a/core/rag-processor.js b/core/rag-processor.js index 02b1444..21d61ab 100644 --- a/core/rag-processor.js +++ b/core/rag-processor.js @@ -1 +1 @@ -'use strict';const _0x3ed94e=_0x1dec;(function(_0xf901a8,_0x3e5b54){const _0x25fad9=_0x1dec,_0x4558ab=_0xf901a8();while(!![]){try{const _0x23a24e=parseInt(_0x25fad9(0x205))/0x1+parseInt(_0x25fad9(0x15e))/0x2+-parseInt(_0x25fad9(0x1ff))/0x3*(parseInt(_0x25fad9(0x163))/0x4)+parseInt(_0x25fad9(0x210))/0x5*(-parseInt(_0x25fad9(0x19c))/0x6)+-parseInt(_0x25fad9(0x16b))/0x7*(-parseInt(_0x25fad9(0x1c6))/0x8)+-parseInt(_0x25fad9(0x169))/0x9*(parseInt(_0x25fad9(0x1df))/0xa)+parseInt(_0x25fad9(0x1ae))/0xb;if(_0x23a24e===_0x3e5b54)break;else _0x4558ab['push'](_0x4558ab['shift']());}catch(_0x382f8d){_0x4558ab['push'](_0x4558ab['shift']());}}}(_0x3c54,0xcfc3d));import{extension_prompt_roles,setExtensionPrompt}from'/script.js';import*as _0xeff614 from'./utils/context-utils.js';import{getCollectionIdInfo}from'./utils/context-utils.js';import{defaultSettings as _0x3c173d}from'./rag-settings.js';import*as _0x516397 from'./ingestion-manager.js';const MODULE_NAME=_0x3ed94e(0x176),OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME=_0x3ed94e(0x1d3);let context=null,settings=null,lockedCollectionId=null;export{initialize,getSettings,saveSettings,resetSettings,testApiConnection,fetchEmbeddingModels,fetchRerankModels,getVectorCount,purgeStorage,getMessagesForCondensation,processCondensation,ingestTextToHanlinyuan,getCollectionId,toggleSessionLock,isSessionLocked,getLockedSessionInfo};function initialize(){const _0x2d1099=_0x3ed94e;context=SillyTavern[_0x2d1099(0x184)]();if(!context){console[_0x2d1099(0x1be)](_0x2d1099(0x1b2));return;}settings=getSettings();const _0x29cd09=window[OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME];typeof _0x29cd09===_0x2d1099(0x20a)?(window[OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME]=async function(..._0x11d07c){await rearrangeChat(..._0x11d07c),await _0x29cd09(..._0x11d07c);},console[_0x2d1099(0x22b)]('翰林院忆识核心已启动\x20(V5.1-和平共存版),已代理\x20'+OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME)):(window[OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME]=rearrangeChat,console[_0x2d1099(0x22b)](_0x2d1099(0x212)+OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME));}async function ingestTextToHanlinyuan(_0x515db7,_0x3197a6=_0x3ed94e(0x194),_0x390264='',_0x10f680=()=>{},_0x267d7d=null,_0x5e3e89=()=>{},_0x1a7839=()=>{},_0x2a25e8=null,_0x5dcbf3=0x0,_0x484b68=null){const _0x17767a=_0x3ed94e;if(!_0x515db7||!_0x515db7['trim']())return{'success':![],'error':_0x17767a(0x1f9)};if(!settings)return{'success':![],'error':_0x17767a(0x229)};try{let _0xd00eea=await getCollectionId();const _0x1eb5e8=getCollectionIdInfo();if(_0x1eb5e8[_0x17767a(0x193)]&&_0x1eb5e8[_0x17767a(0x193)]===_0xd00eea&&_0x1eb5e8[_0x17767a(0x193)]!==_0x1eb5e8[_0x17767a(0x215)]){const _0x4fcad1=confirm(_0x17767a(0x171));if(_0x4fcad1)_0x5e3e89(_0x17767a(0x222)+_0x1eb5e8['oldId'],'warn'),await purgeStorage(_0x1eb5e8['oldId']),_0xd00eea=_0x1eb5e8[_0x17767a(0x215)],_0x5e3e89(_0x17767a(0x1b4)+_0xd00eea,'success');else return _0x5e3e89(_0x17767a(0x1a1),_0x17767a(0x188)),toastr[_0x17767a(0x188)]('操作已取消。'),{'success':![],'error':_0x17767a(0x1b8)};}if(!_0xd00eea)throw new Error('无法确定当前忆识宝库的ID,请确认角色已正确加载。');_0x5e3e89(_0x17767a(0x1c9)+_0xd00eea,_0x17767a(0x188)),_0x10f680({'message':_0x17767a(0x177),'processed':0x0,'total':0x1});const _0x4a6ce2=splitIntoChunks(_0x515db7,_0x3197a6,_0x390264),_0x1a9cf3=_0x4a6ce2[_0x17767a(0x1ca)];if(_0x267d7d?.[_0x17767a(0x206)])throw new Error(_0x17767a(0x1f2));_0x5e3e89(_0x17767a(0x170)+(_0x390264||_0x3197a6)+_0x17767a(0x1db)+_0x1a9cf3+_0x17767a(0x225),_0x17767a(0x188));if(_0x1a9cf3===0x0)return{'success':!![],'count':0x0};const _0x1481a5=settings[_0x17767a(0x1c2)][_0x17767a(0x180)]||0x5;let _0x37261c=_0x5dcbf3;for(let _0x28d685=_0x5dcbf3;_0x28d685<_0x1a9cf3;_0x28d685+=_0x1481a5){if(_0x267d7d?.['aborted'])throw new Error(_0x17767a(0x1f2));const _0x886407=_0x4a6ce2[_0x17767a(0x1aa)](_0x28d685,_0x28d685+_0x1481a5);_0x10f680({'message':'正在处理\x20'+(_0x28d685+0x1)+'-'+(_0x28d685+_0x886407[_0x17767a(0x1ca)])+'\x20块','processed':_0x28d685,'total':_0x1a9cf3});const _0x4a0665=_0x886407[_0x17767a(0x227)](_0x41cc36=>_0x41cc36[_0x17767a(0x1bc)]),_0x2b45cb=await getEmbeddings(_0x4a0665,_0x267d7d);if(_0x267d7d?.[_0x17767a(0x206)])throw new Error(_0x17767a(0x1f2));if(_0x886407[_0x17767a(0x1ca)]!==_0x2b45cb[_0x17767a(0x1ca)])throw new Error(_0x17767a(0x219));const _0xbfdc8=_0x886407[_0x17767a(0x227)]((_0x5adca7,_0x2607b2)=>({..._0x5adca7,'vector':_0x2b45cb[_0x2607b2]}));await insertVectors(_0xbfdc8,_0x267d7d,_0xd00eea),_0x37261c+=_0x886407[_0x17767a(0x1ca)],_0x2a25e8&&_0x516397[_0x17767a(0x18e)](_0x2a25e8,_0x37261c,_0x1a9cf3),_0x1a7839();}_0x2a25e8&&_0x516397[_0x17767a(0x1b7)](_0x2a25e8);if(_0x484b68){const _0x127e7d=await getCollectionId(),_0xdc5f7d=_0x484b68['end']===0x0?context[_0x17767a(0x19b)]['length']:_0x484b68[_0x17767a(0x160)];settings['condensationHistory'][_0x127e7d]={'start':_0x484b68[_0x17767a(0x1ec)],'end':_0xdc5f7d,'timestamp':new Date()[_0x17767a(0x1f6)]()},saveSettings(),_0x5e3e89(_0x17767a(0x201)+_0x127e7d+_0x17767a(0x1b0)+_0x484b68[_0x17767a(0x1ec)]+'-'+_0xdc5f7d,_0x17767a(0x188));}return _0x5e3e89(_0x17767a(0x1ef)+_0x37261c+_0x17767a(0x19f),'success'),{'success':!![],'count':_0x37261c};}catch(_0x265ecb){if(_0x265ecb['name']===_0x17767a(0x1f2)){_0x5e3e89(_0x17767a(0x208),_0x17767a(0x1d4));throw _0x265ecb;}return console['error'](_0x17767a(0x214),_0x265ecb),_0x5e3e89(_0x17767a(0x21d)+_0x265ecb['message'],_0x17767a(0x1be)),{'success':![],'error':_0x265ecb[_0x17767a(0x17a)]};}}function getSettings(){const _0x5ee9a6=_0x3ed94e;if(!context||!context[_0x5ee9a6(0x200)])return structuredClone(_0x3c173d);let _0x23154e=context[_0x5ee9a6(0x200)][MODULE_NAME];!_0x23154e&&(_0x23154e={},context['extensionSettings'][MODULE_NAME]=_0x23154e);_0x23154e[_0x5ee9a6(0x1bb)]===undefined&&(_0x23154e['condensationHistory']={});for(const _0x37f432 in _0x3c173d){if(_0x23154e[_0x37f432]===undefined)_0x23154e[_0x37f432]=structuredClone(_0x3c173d[_0x37f432]);else{if(typeof _0x3c173d[_0x37f432]===_0x5ee9a6(0x1fc)&&!Array[_0x5ee9a6(0x1bd)](_0x3c173d[_0x37f432])&&_0x3c173d[_0x37f432]!==null)for(const _0x5c200a in _0x3c173d[_0x37f432]){_0x23154e[_0x37f432][_0x5c200a]===undefined&&(_0x23154e[_0x37f432][_0x5c200a]=_0x3c173d[_0x37f432][_0x5c200a]);}}}return _0x23154e;}function saveSettings(){const _0x53b88c=_0x3ed94e;if(context)context[_0x53b88c(0x1a9)]();}function resetSettings(){context&&(context['extensionSettings'][MODULE_NAME]=structuredClone(_0x3c173d),saveSettings());}function _0x1dec(_0x3b40cb,_0x5bd71f){const _0x3c54ff=_0x3c54();return _0x1dec=function(_0x1dec58,_0x57ec5b){_0x1dec58=_0x1dec58-0x15e;let _0x475eaa=_0x3c54ff[_0x1dec58];return _0x475eaa;},_0x1dec(_0x3b40cb,_0x5bd71f);}function showNotification(_0x56328f,_0x4f88f3=_0x3ed94e(0x188)){toastr[_0x4f88f3](_0x56328f);}function getTagForSource(_0x136b18){const _0x4396c0=_0x3ed94e;switch(_0x136b18){case _0x4396c0(0x1cf):return _0x4396c0(0x1c8);case _0x4396c0(0x1c1):return _0x4396c0(0x185);case _0x4396c0(0x194):return _0x4396c0(0x1d7);case _0x4396c0(0x1af):return _0x4396c0(0x1c7);default:return'资料';}}function splitIntoChunks(_0x5217a1,_0x409941,_0x2197c8){const _0x15f105=_0x3ed94e,{chunkSize:_0x3bfabc,overlap:_0x2a85ec}=settings[_0x15f105(0x223)],_0x58a457=[];if(!_0x5217a1||_0x3bfabc<=0x0)return _0x58a457;const _0x67f6e2=/(第\s*[一二三四五六七八九十百千万零\d]+\s*卷)/gim,_0x43b5e3=/(第\s*[一二三四五六七八九十百千万零\d]+\s*[章回节部])|^(Chapter\s+\d+)/gim;let _0x39e38e=0x0,_0x5e7ec4=0x1,_0x5076de=0x1,_0x31dbd2=![];const _0x44c467=_0x5217a1[_0x15f105(0x186)]('\x0a');let _0x46ca2f='第1卷',_0x3be98c=_0x15f105(0x1f1),_0xab3d1=[];function _0x208db9(){const _0x56369c=_0x15f105;if(_0xab3d1[_0x56369c(0x1ca)]===0x0)return;const _0x201581=_0xab3d1[_0x56369c(0x1a4)]('\x0a');let _0x316f0d=0x0,_0x215080=0x1;while(_0x316f0d<_0x201581['length']){const _0x4a2e28=Math[_0x56369c(0x1cc)](_0x316f0d+_0x3bfabc,_0x201581[_0x56369c(0x1ca)]),_0x42b7b=_0x201581['substring'](_0x316f0d,_0x4a2e28);if(_0x42b7b[_0x56369c(0x1b9)]()['length']>0x0){const _0x1217ac={'source':_0x409941,'sourceName':_0x2197c8,'timestamp':new Date()[_0x56369c(0x1f6)](),'globalIndex':_0x39e38e++,'volume':_0x46ca2f,'chapter':_0x3be98c,'section':_0x215080},_0x4c66e5=getTagForSource(_0x409941),_0x43c5a3=_0x56369c(0x1ba)+_0x2197c8+',\x20'+_0x46ca2f+',\x20'+_0x3be98c+_0x56369c(0x21c)+_0x215080+'节]',_0x1135c6='<'+_0x4c66e5+'>\x0a'+_0x43c5a3+'\x0a'+_0x42b7b+_0x56369c(0x1f4)+_0x4c66e5+'>';_0x58a457[_0x56369c(0x21e)]({'text':_0x1135c6,'metadata':_0x1217ac}),_0x215080++;}_0x316f0d+=_0x3bfabc-_0x2a85ec;if(_0x316f0d>=_0x201581[_0x56369c(0x1ca)])break;}_0xab3d1=[];}for(const _0xb50c46 of _0x44c467){const _0x10f606=_0xb50c46[_0x15f105(0x1b9)]();if(_0x67f6e2[_0x15f105(0x224)](_0x10f606))_0x208db9(),_0x46ca2f=_0x10f606,_0x3be98c=_0x15f105(0x1f1),_0x5e7ec4++,_0x5076de=0x1,_0x31dbd2=!![];else _0x43b5e3['test'](_0x10f606)?(_0x208db9(),_0x3be98c=_0x10f606,_0x5076de++):_0xab3d1[_0x15f105(0x21e)](_0xb50c46);}_0x208db9();if(_0x58a457[_0x15f105(0x1ca)]===0x0&&_0x5217a1[_0x15f105(0x1ca)]>0x0){let _0xe1203d=0x0,_0x45ee3e=0x1;while(_0xe1203d<_0x5217a1['length']){const _0x5dc165=Math[_0x15f105(0x1cc)](_0xe1203d+_0x3bfabc,_0x5217a1[_0x15f105(0x1ca)]),_0x3ecbb5=_0x5217a1[_0x15f105(0x20e)](_0xe1203d,_0x5dc165),_0x88bdc0={'source':_0x409941,'sourceName':_0x2197c8,'timestamp':new Date()['toISOString'](),'globalIndex':_0x58a457[_0x15f105(0x1ca)],'volume':_0x15f105(0x197),'chapter':_0x15f105(0x1f1),'section':_0x45ee3e},_0x1c007a=getTagForSource(_0x409941),_0x35998e=_0x15f105(0x1ba)+_0x2197c8+_0x15f105(0x1ab)+_0x45ee3e+'节]',_0x5cdd95='<'+_0x1c007a+'>\x0a'+_0x35998e+'\x0a'+_0x3ecbb5+_0x15f105(0x1f4)+_0x1c007a+'>';_0x58a457[_0x15f105(0x21e)]({'text':_0x5cdd95,'metadata':_0x88bdc0}),_0x45ee3e++,_0xe1203d+=_0x3bfabc-_0x2a85ec;}}return _0x58a457;}import{getCollectionId as _0x1d1362,getCharacterName}from'./utils/context-utils.js';async function getCollectionId(){return lockedCollectionId||await _0x1d1362();}async function toggleSessionLock(){return lockedCollectionId?(lockedCollectionId=null,![]):(lockedCollectionId=await _0x1d1362(),!![]);}function isSessionLocked(){return lockedCollectionId!==null;}function getLockedSessionInfo(){const _0x222711=_0x3ed94e;if(!lockedCollectionId)return null;return{'id':lockedCollectionId,'name':_0x222711(0x182)+lockedCollectionId['substring'](0x0,0x8)+'...)'};}function generateHash(_0x13e4ac){const _0x2d150c=_0x3ed94e;let _0x4efc70=0x0;for(let _0x8c077d=0x0;_0x8c077d<_0x13e4ac[_0x2d150c(0x1ca)];_0x8c077d++){const _0x2e47d6=_0x13e4ac[_0x2d150c(0x17f)](_0x8c077d);_0x4efc70=(_0x4efc70<<0x5)-_0x4efc70+_0x2e47d6,_0x4efc70=_0x4efc70&_0x4efc70;}return Math[_0x2d150c(0x1d8)](_0x4efc70)[_0x2d150c(0x1ee)](0x24);}function getSanitizedBaseUrl(_0x4549e5){const _0x565916=_0x3ed94e;let _0x2476b6=_0x4549e5[_0x565916(0x1b9)]();return _0x2476b6['endsWith']('/')&&(_0x2476b6=_0x2476b6[_0x565916(0x1aa)](0x0,-0x1)),_0x2476b6[_0x565916(0x178)](_0x565916(0x19d))&&(_0x2476b6=_0x2476b6[_0x565916(0x1aa)](0x0,-0x3)),_0x2476b6[_0x565916(0x178)](_0x565916(0x162))&&(_0x2476b6=_0x2476b6['slice'](0x0,-0xb)),_0x2476b6;}async function fetchEmbeddingModels(){const _0x41fb4e=_0x3ed94e,{apiKey:_0x59deb7}=settings[_0x41fb4e(0x1c2)],_0x2cb8c6=getApiEndpointUrl(!![]);if(!_0x2cb8c6||!_0x59deb7)throw new Error(_0x41fb4e(0x1cb));const _0x4410ab=getSanitizedBaseUrl(_0x2cb8c6),_0x4ae960=_0x4410ab+'/v1/models';console['log'](_0x41fb4e(0x1fe)+_0x4ae960+_0x41fb4e(0x1dd));const _0x3a79d1=await fetch(_0x4ae960,{'method':_0x41fb4e(0x1a2),'headers':getApiHeaders()});if(!_0x3a79d1['ok']){const _0x5035d7=await _0x3a79d1[_0x41fb4e(0x1bc)]();throw new Error(_0x41fb4e(0x192)+_0x3a79d1[_0x41fb4e(0x216)]+_0x41fb4e(0x16f)+_0x5035d7);}const _0x3a04e6=await _0x3a79d1['json']();if(!_0x3a04e6[_0x41fb4e(0x173)]||!Array[_0x41fb4e(0x1bd)](_0x3a04e6[_0x41fb4e(0x173)]))throw new Error(_0x41fb4e(0x1d6));return _0x3a04e6[_0x41fb4e(0x173)][_0x41fb4e(0x227)](_0x1a50e3=>_0x1a50e3['id'])[_0x41fb4e(0x1ad)]();}function _0x3c54(){const _0x1ae7cb=['[翰林院-迁移]\x20用户确认迁移,正在清空旧宝库:\x20','advanced','test','\x20个块。','[翰林院-日志]\x20/api/vector/purge\x20响应状态:\x20','map','unknown','核心未初始化','enabled','log','embedding','injection','vector','\x20-\x20楼层\x20#','1464834vmEUdw','floor','end','操作已取消。','/embeddings','1316dTogZL','\x0a','Rerank\x20API\x20URL\x20或\x20Key\x20未提供。','webllm','url','/rerank','54VWKEeO','[翰林院-日志]\x20发送到\x20/api/vector/query\x20的请求体:','98714slcDMz','[翰林院-核心]\x20insertVectors被调用时未提供collectionId!','model','notify','):\x20','[翰林院-核心]\x20将来源\x27','此操作将清空旧版数据,并开始使用新版数据库。此过程不可逆,是否继续?','[翰林院-Rerank]\x20开始外部API重排序...','data','[翰林院-日志]\x20查询成功,返回\x20','[翰林院-日志]\x20/api/vector/query\x20响应内容:','hanlinyuan-rag-core','正在智能分块...','endsWith','send_date','message','json','聊天记录\x20#','success','忆识检索失败:\x20','charCodeAt','batchSize','depth','(已锁定:\x20','quiet','getContext','世界书','split','now','info','metadata','getRequestHeaders','embeddingModel','无法确定当前忆识宝库的ID,请确认角色已正确加载。','https://api.openai.com','saveProgress','maxResults','\x20个知识块,准备入库。','宝库查询API错误\x20','获取模型列表失败\x20(','oldId','manual','测试连接','hashes','第1卷','sourceName','final_score','/api/vector/insert','chat','54arIBTN','/v1','source','\x20个向量条目。','Bearer\x20','[翰林院-迁移]\x20用户取消了迁移操作。','GET','stringify','join','/api/vector/list','apiKey','condensation','\x20条消息分解为\x20','saveSettingsDebounced','slice',',\x20第1卷,\x20第1章,\x20第','[翰林院-Rerank]\x20元数据加权排序完成。','sort','2492611JgXTPQ','novel','\x20记录凝识范围:\x20','template','[翰林院]\x20未能获取SillyTavern上下文,初始化失败。','/v1/models','[翰林院-迁移]\x20旧宝库已清空,将向新宝库写入数据:\x20','[翰林院-日志]\x20发送到\x20/api/vector/list\x20的请求体:','filter','clearJob','用户取消了迁移操作','trim','[来源:\x20','condensationHistory','text','isArray','error','findIndex','[翰林院-日志]\x20/api/vector/list\x20响应状态:\x20','lorebook','retrieval','application/json','is_user','{{text}}','584WGqXtw','小说录入','聊天记录','[翰林院-核心]\x20已锁定忆识宝库ID:\x20','length','API\x20URL\x20或\x20Key\x20未提供。','min','[翰林院-核心]\x20聊天记录凝识失败:\x20','[翰林院-日志]\x20开始清空宝库...','chat_history','[翰林院-日志]\x20/api/vector/query\x20响应状态:\x20','results','神力获取失败\x20','vectors_rearrangeChat','warn','[翰林院-日志]\x20发送到\x20/api/vector/purge\x20的请求体:','模型API的响应格式无效:\x20未找到\x20\x27data\x27\x20数组。','手动录入','abs','[翰林院-核心]\x20processCondensation\x20失败:','[翰林院-日志]\x20查询目标集合ID:\x20','\x27的文本分割成\x20','/v1/rerank','\x20获取模型列表...','HANLINYUAN_RAG','895930yLqeVX','warning','[翰林院-日志]\x20统计成功,向量总数:\x20','position','rerank_score','[翰林院-日志]\x20清空宝库API调用成功。','top_n','无法确定要清空的目标宝库。','Rerank失败:\x20','Rerank\x20API\x20请求失败\x20(','replace','在insertVectors内部也无法获取collectionId','POST','start',']\x20的消息已成功凝识。','toString','[翰林院-核心]\x20成功插入\x20','外部Rerank完成','第1章','AbortError','score','\x0a\x0a[来源:\x20','1375435wKtQMa','aborted','Authorization','[翰林院-核心]\x20文本录入任务被用户中止。','获取Rerank模型列表失败\x20(','function','[翰林院-日志]\x20宝库查询API错误:','index','[翰林院-日志]\x20忆识存入API错误:','substring','\x20个条目。','645765CcPgPQ','mes','翰林院忆识核心已启动\x20(V5.1-借壳上市版),已注册全局函数:\x20','[翰林院-Rerank]\x20正在从\x20','[翰林院-核心]\x20ingestTextToHanlinyuan\x20失败:','newId','status','/v1/embeddings','rerank','文本块和向量数量不匹配','[翰林院-日志]\x20获取向量列表API错误:','[翰林院-核心]\x20已将\x20',',\x20第','[翰林院-核心]\x20文本录入失败:\x20','push','[翰林院-Rerank]\x20外部Rerank失败,将仅使用内部加权。','/api/vector/query','find'];_0x3c54=function(){return _0x1ae7cb;};return _0x3c54();}function getRerankBaseUrl(_0x1aa18c){const _0xd9aedb=_0x3ed94e;let _0x244dd2=_0x1aa18c[_0xd9aedb(0x1b9)]();return _0x244dd2['endsWith']('/')&&(_0x244dd2=_0x244dd2['slice'](0x0,-0x1)),_0x244dd2[_0xd9aedb(0x178)](_0xd9aedb(0x19d))&&(_0x244dd2=_0x244dd2[_0xd9aedb(0x1aa)](0x0,-0x3)),_0x244dd2[_0xd9aedb(0x178)](_0xd9aedb(0x168))&&(_0x244dd2=_0x244dd2[_0xd9aedb(0x1aa)](0x0,-0x7)),_0x244dd2;}async function fetchRerankModels(){const _0x5efd4b=_0x3ed94e,{url:_0x28d2d3,apiKey:_0x1459ea}=settings['rerank'];if(!_0x28d2d3||!_0x1459ea)throw new Error(_0x5efd4b(0x165));const _0x3acc9f=getRerankBaseUrl(_0x28d2d3),_0x57e178=_0x3acc9f+_0x5efd4b(0x1b3);console[_0x5efd4b(0x22b)](_0x5efd4b(0x213)+_0x57e178+'\x20获取模型列表...');const _0x2c38b4=await fetch(_0x57e178,{'method':'GET','headers':{'Authorization':'Bearer\x20'+_0x1459ea}});if(!_0x2c38b4['ok']){const _0x2bf936=await _0x2c38b4[_0x5efd4b(0x1bc)]();throw new Error(_0x5efd4b(0x209)+_0x2c38b4[_0x5efd4b(0x216)]+_0x5efd4b(0x16f)+_0x2bf936);}const _0x1dc535=await _0x2c38b4[_0x5efd4b(0x17b)]();if(!_0x1dc535[_0x5efd4b(0x173)]||!Array[_0x5efd4b(0x1bd)](_0x1dc535[_0x5efd4b(0x173)]))throw new Error('Rerank模型API的响应格式无效:\x20未找到\x20\x27data\x27\x20数组。');return _0x1dc535[_0x5efd4b(0x173)]['map'](_0x5358b0=>_0x5358b0['id'])[_0x5efd4b(0x1ad)]();}function getApiEndpointUrl(_0x818c42=![]){const _0x159a9e=_0x3ed94e,{apiEndpoint:_0x508ced,customApiUrl:_0x1a9e15}=settings['retrieval'];let _0x267333;switch(_0x508ced){case _0x159a9e(0x1fb):_0x267333=_0x159a9e(0x18d);break;case'azure':case _0x159a9e(0x202):_0x267333=_0x1a9e15;break;default:_0x267333=_0x159a9e(0x18d);break;}if(_0x818c42)return _0x267333;return getSanitizedBaseUrl(_0x267333)+_0x159a9e(0x217);}function getApiHeaders(){const _0x32e445=_0x3ed94e,_0x4efa35={'Content-Type':_0x32e445(0x1c3)},{apiKey:_0x326caa,apiEndpoint:_0x18d348}=settings['retrieval'];switch(_0x18d348){case'openai':case _0x32e445(0x202):_0x4efa35[_0x32e445(0x207)]=_0x32e445(0x1a0)+_0x326caa;break;case'azure':_0x4efa35['api-key']=_0x326caa;break;}return _0x4efa35;}async function getEmbeddings(_0x4859fe,_0x5af437=null){const _0x28772e=_0x3ed94e;if(!settings[_0x28772e(0x1c2)]['apiKey'])throw new Error('请先配置API\x20Key');const _0x4b6dfe=getApiEndpointUrl(),_0x5cfcd6=getApiHeaders(),_0x2d44d8=settings[_0x28772e(0x1c2)][_0x28772e(0x18b)],_0x20de67=settings[_0x28772e(0x1c2)][_0x28772e(0x180)]||0x5,_0x52c9ad=[];for(let _0x2cb5d3=0x0;_0x2cb5d3<_0x4859fe[_0x28772e(0x1ca)];_0x2cb5d3+=_0x20de67){if(_0x5af437?.[_0x28772e(0x206)])throw new Error(_0x28772e(0x1f2));const _0x412a18=_0x4859fe['slice'](_0x2cb5d3,_0x2cb5d3+_0x20de67),_0x597c89=await fetch(_0x4b6dfe,{'method':'POST','headers':_0x5cfcd6,'body':JSON[_0x28772e(0x1a3)]({'input':_0x412a18,'model':_0x2d44d8}),'signal':_0x5af437});if(!_0x597c89['ok']){const _0x143b1c=await _0x597c89['text']();throw new Error(_0x28772e(0x1d2)+_0x597c89['status']+':\x20'+_0x143b1c);}const _0x32bbf1=await _0x597c89[_0x28772e(0x17b)]();_0x52c9ad[_0x28772e(0x21e)](..._0x32bbf1[_0x28772e(0x173)][_0x28772e(0x227)](_0x5e6d58=>_0x5e6d58[_0x28772e(0x22c)])),_0x2cb5d3+_0x20de67<_0x4859fe['length']&&await new Promise(_0x2d8453=>setTimeout(_0x2d8453,0xc8));}return _0x52c9ad;}async function queryVectors(_0x149671){const _0x10afd3=_0x3ed94e;console[_0x10afd3(0x22b)]('[翰林院-日志]\x20开始向量查询\x20(采用最终API交互模式)...');const _0x4ccec5=await getCollectionId();console[_0x10afd3(0x22b)](_0x10afd3(0x1da)+_0x4ccec5);const _0x427f03=(await getEmbeddings([_0x149671]))[0x0],_0x11f9eb={'collectionId':_0x4ccec5,'searchText':_0x149671,'topK':settings[_0x10afd3(0x223)][_0x10afd3(0x18f)],'threshold':settings[_0x10afd3(0x223)][_0x10afd3(0x1fa)],'source':_0x10afd3(0x166),'embeddings':{[_0x149671]:_0x427f03}};console[_0x10afd3(0x22b)](_0x10afd3(0x16a),JSON[_0x10afd3(0x1a3)](_0x11f9eb,null,0x2));const _0x245004=await fetch(_0x10afd3(0x220),{'method':_0x10afd3(0x1eb),'headers':context['getRequestHeaders'](),'body':JSON['stringify'](_0x11f9eb)});console[_0x10afd3(0x22b)](_0x10afd3(0x1d0)+_0x245004[_0x10afd3(0x216)]);if(!_0x245004['ok']){const _0x5e8a2c=await _0x245004[_0x10afd3(0x1bc)]();console['error'](_0x10afd3(0x20b),_0x5e8a2c);throw new Error(_0x10afd3(0x191)+_0x245004[_0x10afd3(0x216)]+':\x20'+_0x5e8a2c);}const _0x488f4f=await _0x245004[_0x10afd3(0x17b)]();console[_0x10afd3(0x22b)](_0x10afd3(0x175),_0x488f4f);const _0x197280=_0x488f4f[_0x10afd3(0x189)]||_0x488f4f['results']||_0x488f4f[_0x10afd3(0x173)]||[];return console['log'](_0x10afd3(0x174)+_0x197280[_0x10afd3(0x1ca)]+_0x10afd3(0x1f7)),_0x197280;}async function insertVectors(_0xbae44f,_0x7ff9ad=null,_0x57072a){const _0xeac383=_0x3ed94e;if(!_0x57072a){console['error'](_0xeac383(0x16c)),_0x57072a=await getCollectionId();if(!_0x57072a)throw new Error(_0xeac383(0x1ea));}if(_0xbae44f[_0xeac383(0x1ca)]===0x0)return{'success':!![],'count':0x0};const _0x54af99=_0xbae44f[_0xeac383(0x227)]((_0x1df100,_0x42add0)=>({'hash':generateHash(_0x1df100[_0xeac383(0x1bc)]+Date[_0xeac383(0x187)]()+_0x42add0),'text':_0x1df100[_0xeac383(0x1bc)],'metadata':_0x1df100[_0xeac383(0x189)]||{'source':_0xeac383(0x228),'timestamp':new Date()[_0xeac383(0x1f6)]()}})),_0x2b5d45=_0x54af99['reduce']((_0x9ed977,_0x45218b,_0x1ff36c)=>{const _0x3a3377=_0xeac383;return _0x9ed977[_0x45218b[_0x3a3377(0x1bc)]]=_0xbae44f[_0x1ff36c][_0x3a3377(0x22e)],_0x9ed977;},{}),_0x21d8fe={'collectionId':_0x57072a,'items':_0x54af99,'source':_0xeac383(0x166),'embeddings':_0x2b5d45},_0x3ca66e=await fetch(_0xeac383(0x19a),{'method':_0xeac383(0x1eb),'headers':context[_0xeac383(0x18a)](),'body':JSON[_0xeac383(0x1a3)](_0x21d8fe),'signal':_0x7ff9ad});if(!_0x3ca66e['ok']){const _0x5537c1=await _0x3ca66e[_0xeac383(0x1bc)]();console[_0xeac383(0x1be)](_0xeac383(0x20d),_0x5537c1);throw new Error('忆识存入API错误\x20'+_0x3ca66e[_0xeac383(0x216)]+':\x20'+_0x5537c1);}return{'success':!![],'count':_0x54af99['length']};}async function testApiConnection(){const _0x47ec94=_0x3ed94e;await getEmbeddings([_0x47ec94(0x195)]);}async function getVectorCount(){const _0x22e980=_0x3ed94e;console[_0x22e980(0x22b)]('[翰林院-日志]\x20开始获取向量总数...');const _0x3bd06d=await getCollectionId();console[_0x22e980(0x22b)]('[翰林院-日志]\x20统计目标集合ID:\x20'+_0x3bd06d);const _0x2445d7={'collectionId':_0x3bd06d,'source':'webllm','embeddings':{}};console[_0x22e980(0x22b)](_0x22e980(0x1b5),JSON['stringify'](_0x2445d7,null,0x2));const _0x47ea99=await fetch(_0x22e980(0x1a5),{'method':_0x22e980(0x1eb),'headers':context[_0x22e980(0x18a)](),'body':JSON['stringify'](_0x2445d7)});console[_0x22e980(0x22b)](_0x22e980(0x1c0)+_0x47ea99['status']);if(!_0x47ea99['ok']){const _0x79b46d=await _0x47ea99['text']();return console[_0x22e980(0x1be)](_0x22e980(0x21a),_0x79b46d),0x0;}const _0x1224e6=await _0x47ea99[_0x22e980(0x17b)]();let _0x29be12=0x0;if(Array['isArray'](_0x1224e6))_0x29be12=_0x1224e6[_0x22e980(0x1ca)];else _0x1224e6&&_0x1224e6['hashes']&&(_0x29be12=_0x1224e6[_0x22e980(0x196)][_0x22e980(0x1ca)]);return console[_0x22e980(0x22b)](_0x22e980(0x1e1)+_0x29be12),_0x29be12;}async function purgeStorage(_0x49bd61=null){const _0x3a0952=_0x3ed94e;console[_0x3a0952(0x22b)](_0x3a0952(0x1ce));const _0x38ec16=_0x49bd61||await getCollectionId();if(!_0x38ec16)return console['error']('[翰林院-日志]\x20无法确定要清空的目标集合ID。'),toastr[_0x3a0952(0x1be)](_0x3a0952(0x1e6)),![];console[_0x3a0952(0x22b)]('[翰林院-日志]\x20清空目标集合ID:\x20'+_0x38ec16);const _0x21babf={'collectionId':_0x38ec16};console[_0x3a0952(0x22b)](_0x3a0952(0x1d5),JSON[_0x3a0952(0x1a3)](_0x21babf,null,0x2));const _0x4eedfb=await fetch('/api/vector/purge',{'method':_0x3a0952(0x1eb),'headers':context['getRequestHeaders'](),'body':JSON[_0x3a0952(0x1a3)](_0x21babf)});console[_0x3a0952(0x22b)](_0x3a0952(0x226)+_0x4eedfb[_0x3a0952(0x216)]);if(!_0x4eedfb['ok']){const _0x54fe45=await _0x4eedfb['text']();console[_0x3a0952(0x1be)]('[翰林院-日志]\x20清空宝库API错误:',_0x54fe45);}else console[_0x3a0952(0x22b)](_0x3a0952(0x1e4));return _0x4eedfb['ok'];}function getMessagesForCondensation(_0x5d4e34=null){const _0x51f772=_0x3ed94e;if(!settings[_0x51f772(0x1a7)]['enabled'])return showNotification(_0x51f772(0x1f5),_0x51f772(0x1e0)),[];const {layerStart:_0x3634e6,layerEnd:_0xf62c70}=settings[_0x51f772(0x1a7)],_0x65d3b1=_0x5d4e34||settings[_0x51f772(0x1a7)]['messageTypes'],_0x85da4=context[_0x51f772(0x19b)][_0x51f772(0x1ca)],_0x111531=Math[_0x51f772(0x203)](0x0,_0x3634e6-0x1),_0x197b9e=_0xf62c70===0x0||_0xf62c70>_0x85da4?_0x85da4:Math[_0x51f772(0x1cc)](_0x85da4,_0xf62c70),_0xcec780=context[_0x51f772(0x19b)][_0x51f772(0x1aa)](_0x111531,_0x197b9e);return _0xcec780[_0x51f772(0x1b6)](_0x1a0ce6=>{const _0x4ec95e=_0x51f772,_0x112568=_0x1a0ce6['is_user']===!![],_0x231d20=_0x1a0ce6[_0x4ec95e(0x1c4)]===![];if(!_0x1a0ce6['mes']||!_0x1a0ce6[_0x4ec95e(0x211)]['trim']())return![];return _0x65d3b1['user']&&_0x112568||_0x65d3b1['ai']&&_0x231d20;});}async function processCondensation(_0x3e45b2,_0x2d5eb5=()=>{},_0x181ba2=null){const _0x33fa31=_0x3ed94e;if(!_0x3e45b2||_0x3e45b2[_0x33fa31(0x1ca)]===0x0)return{'success':![],'error':'No\x20messages\x20to\x20process.'};try{let _0xc65cb1=await getCollectionId();const _0x2956ce=getCollectionIdInfo();if(_0x2956ce['oldId']&&_0x2956ce[_0x33fa31(0x193)]===_0xc65cb1&&_0x2956ce[_0x33fa31(0x193)]!==_0x2956ce[_0x33fa31(0x215)]){const _0x365a7c=confirm(_0x33fa31(0x171));if(_0x365a7c)_0x2d5eb5(_0x33fa31(0x222)+_0x2956ce[_0x33fa31(0x193)],_0x33fa31(0x1d4)),await purgeStorage(_0x2956ce[_0x33fa31(0x193)]),_0xc65cb1=_0x2956ce[_0x33fa31(0x215)],_0x2d5eb5(_0x33fa31(0x1b4)+_0xc65cb1,_0x33fa31(0x17d));else return _0x2d5eb5(_0x33fa31(0x1a1),_0x33fa31(0x188)),toastr['info'](_0x33fa31(0x161)),{'success':![],'error':'用户取消了迁移操作'};}if(!_0xc65cb1)throw new Error(_0x33fa31(0x18c));_0x2d5eb5('[翰林院-核心]\x20凝识任务已锁定忆识宝库ID:\x20'+_0xc65cb1,_0x33fa31(0x188));const _0x3830c5=[],_0x14339e=context[_0x33fa31(0x19b)],{chunkSize:_0xf48cb5,overlap:_0x127f09}=settings[_0x33fa31(0x223)];for(const _0x27a7da of _0x3e45b2){const _0x503852=(_0x27a7da[_0x33fa31(0x211)]||'')[_0x33fa31(0x1e9)](/<[^>]*>/g,'')[_0x33fa31(0x1b9)]();if(_0x503852[_0x33fa31(0x1ca)]===0x0)continue;const _0x4f1dca=_0x14339e[_0x33fa31(0x1bf)](_0x3ad860=>_0x3ad860===_0x27a7da),_0x29a377=_0x4f1dca!==-0x1?_0x4f1dca+0x1:-0x1,_0x2715a5={'source':'chat_history','sourceName':_0x33fa31(0x17c)+_0x29a377,'floor':_0x29a377,'is_user':_0x27a7da[_0x33fa31(0x1c4)],'timestamp':new Date(_0x27a7da[_0x33fa31(0x179)])['toISOString']()};let _0x48ed04=0x0;while(_0x48ed04<_0x503852[_0x33fa31(0x1ca)]){const _0x102290=Math[_0x33fa31(0x1cc)](_0x48ed04+_0xf48cb5,_0x503852[_0x33fa31(0x1ca)]),_0x12e3e8=_0x503852['substring'](_0x48ed04,_0x102290),_0x3364cd=_0x33fa31(0x204)+_0x2715a5[_0x33fa31(0x198)]+']\x0a'+_0x12e3e8+_0x33fa31(0x164);_0x3830c5[_0x33fa31(0x21e)]({'text':_0x3364cd,'metadata':_0x2715a5}),_0x48ed04+=_0xf48cb5-_0x127f09;if(_0x48ed04>=_0x503852['length'])break;}}if(_0x3830c5[_0x33fa31(0x1ca)]===0x0)return{'success':!![],'count':0x0};_0x2d5eb5(_0x33fa31(0x21b)+_0x3e45b2[_0x33fa31(0x1ca)]+_0x33fa31(0x1a8)+_0x3830c5[_0x33fa31(0x1ca)]+_0x33fa31(0x190),_0x33fa31(0x188));const _0x152cc6=settings[_0x33fa31(0x1c2)][_0x33fa31(0x180)]||0x5;let _0xdc4dd=0x0;for(let _0x2dc160=0x0;_0x2dc160<_0x3830c5['length'];_0x2dc160+=_0x152cc6){const _0x4f8d33=_0x3830c5[_0x33fa31(0x1aa)](_0x2dc160,_0x2dc160+_0x152cc6),_0x45780d=_0x4f8d33['map'](_0x1f6a16=>_0x1f6a16['text']),_0x13b742=await getEmbeddings(_0x45780d);if(_0x4f8d33['length']!==_0x13b742[_0x33fa31(0x1ca)])throw new Error(_0x33fa31(0x219));const _0x170141=_0x4f8d33[_0x33fa31(0x227)]((_0x4e89d7,_0x1f59fa)=>({..._0x4e89d7,'vector':_0x13b742[_0x1f59fa]}));await insertVectors(_0x170141,null,_0xc65cb1),_0xdc4dd+=_0x4f8d33[_0x33fa31(0x1ca)];}if(_0x181ba2){const _0x41c943=_0x181ba2[_0x33fa31(0x160)]===0x0?context[_0x33fa31(0x19b)][_0x33fa31(0x1ca)]:_0x181ba2[_0x33fa31(0x160)];settings['condensationHistory'][_0xc65cb1]={'start':_0x181ba2[_0x33fa31(0x1ec)],'end':_0x41c943,'timestamp':new Date()[_0x33fa31(0x1f6)]()},saveSettings(),_0x2d5eb5(_0x33fa31(0x201)+_0xc65cb1+_0x33fa31(0x1b0)+_0x181ba2[_0x33fa31(0x1ec)]+'-'+_0x41c943,'info');}_0x2d5eb5('[翰林院-核心]\x20聊天记录凝识完成,成功插入\x20'+_0xdc4dd+_0x33fa31(0x20f),_0x33fa31(0x17d));const _0x4dcf36=_0x3e45b2[_0x33fa31(0x227)](_0x95965=>{const _0x4f075b=_0x33fa31,_0x4bfb1f=_0x14339e[_0x4f075b(0x1bf)](_0x3197ff=>_0x3197ff===_0x95965),_0x138b98=_0x4bfb1f!==-0x1?_0x4bfb1f+0x1:-0x1,_0x1d40e8=_0x95965[_0x4f075b(0x1c4)]?'用户':getCharacterName()||'AI';return'['+_0x1d40e8+_0x4f075b(0x22f)+_0x138b98+_0x4f075b(0x1ed);});return{'success':!![],'count':_0xdc4dd,'messages':_0x4dcf36};}catch(_0x4da02d){return console[_0x33fa31(0x1be)](_0x33fa31(0x1d9),_0x4da02d),_0x2d5eb5(_0x33fa31(0x1cd)+_0x4da02d['message'],_0x33fa31(0x1be)),{'success':![],'error':_0x4da02d['message']};}}async function rerankResults(_0x53b2cb,_0x4eddd0,_0x584baf){const _0x35536f=_0x3ed94e;let _0x45c30f=_0x53b2cb;if(_0x584baf[_0x35536f(0x218)][_0x35536f(0x22a)]&&_0x53b2cb[_0x35536f(0x1ca)]>0x0){console['log'](_0x35536f(0x172));try{const _0x560db6=_0x53b2cb['map']((_0x47f487,_0x255122)=>({'text':_0x47f487[_0x35536f(0x1bc)],'original_index':_0x255122})),_0x168c2c=getRerankBaseUrl(_0x584baf['rerank'][_0x35536f(0x167)]),_0x51b3ef=_0x168c2c+_0x35536f(0x1dc),_0xc70768=await fetch(_0x51b3ef,{'method':_0x35536f(0x1eb),'headers':{'Content-Type':_0x35536f(0x1c3),'Authorization':_0x35536f(0x1a0)+_0x584baf['rerank'][_0x35536f(0x1a6)]},'body':JSON[_0x35536f(0x1a3)]({'query':_0x4eddd0,'documents':_0x560db6[_0x35536f(0x227)](_0x265e02=>_0x265e02[_0x35536f(0x1bc)]),'model':_0x584baf['rerank'][_0x35536f(0x16d)],'top_n':_0x584baf[_0x35536f(0x218)][_0x35536f(0x1e5)]})});if(!_0xc70768['ok'])throw new Error(_0x35536f(0x1e8)+_0xc70768[_0x35536f(0x216)]+_0x35536f(0x16f)+await _0xc70768[_0x35536f(0x1bc)]());const _0x323bb1=await _0xc70768[_0x35536f(0x17b)](),_0x2a0526=_0x53b2cb[_0x35536f(0x227)]((_0x24a7e7,_0x3cd285)=>({..._0x24a7e7,'original_index':_0x3cd285}));_0x45c30f=_0x2a0526[_0x35536f(0x227)](_0xc46f23=>{const _0x1d31de=_0x35536f,_0x178f2c=_0x323bb1[_0x1d31de(0x1d1)][_0x1d31de(0x221)](_0x5e3507=>_0x5e3507[_0x1d31de(0x20c)]===_0xc46f23['original_index']),_0x42b4b9=_0x178f2c?_0x178f2c['relevance_score']:0x0;return{..._0xc46f23,'rerank_score':_0x42b4b9};});if(_0x584baf[_0x35536f(0x218)]['notify'])showNotification(_0x35536f(0x1f0),_0x35536f(0x17d));}catch(_0x229af7){console[_0x35536f(0x1be)](_0x35536f(0x21f),_0x229af7);if(_0x584baf['rerank'][_0x35536f(0x16e)])showNotification(_0x35536f(0x1e7)+_0x229af7['message'],'error');_0x45c30f['forEach'](_0x3b75ae=>_0x3b75ae['rerank_score']=0x0);}}else _0x45c30f['forEach'](_0xd7f81c=>_0xd7f81c[_0x35536f(0x1e3)]=0x0);console[_0x35536f(0x22b)]('[翰林院-Rerank]\x20开始元数据加权最终排序...');const _0xfed83f=context[_0x35536f(0x19b)]['length'],_0x218630=_0x584baf[_0x35536f(0x218)]['hybrid_alpha'],_0x17d636=_0x45c30f[_0x35536f(0x227)](_0x3b5df2=>{const _0x2d5acf=_0x35536f;let _0x10b7e5=0x1;const _0x5ac42f=_0x3b5df2[_0x2d5acf(0x189)]||{};switch(_0x5ac42f[_0x2d5acf(0x19e)]){case'lorebook':_0x10b7e5*=1.2;break;case _0x2d5acf(0x194):_0x10b7e5*=1.1;break;case _0x2d5acf(0x1cf):if(_0x5ac42f[_0x2d5acf(0x15f)]&&_0xfed83f>0x0){const _0x5b6c19=_0x5ac42f['floor']/_0xfed83f;_0x10b7e5*=0x1+_0x5b6c19;}break;}const _0x1fd074=_0x3b5df2['rerank_score']*_0x218630+(_0x3b5df2[_0x2d5acf(0x1f3)]||0x0)*(0x1-_0x218630),_0x40fee6=_0x1fd074*_0x10b7e5;return{..._0x3b5df2,'final_score':_0x40fee6};});return _0x17d636['sort']((_0x565ca6,_0x233956)=>(_0x233956['final_score']||0x0)-(_0x565ca6[_0x35536f(0x199)]||0x0)),console[_0x35536f(0x22b)](_0x35536f(0x1ac)),_0x17d636['slice'](0x0,_0x584baf[_0x35536f(0x218)][_0x35536f(0x1e5)]);}async function rearrangeChat(_0x378499,_0x5c228b,_0x46e209,_0x48ed55){const _0x2e8756=_0x3ed94e;setExtensionPrompt('HANLINYUAN_RAG','',settings['injection'][_0x2e8756(0x1e2)],settings[_0x2e8756(0x22d)][_0x2e8756(0x181)],![],settings['injection'][_0x2e8756(0x1fd)]);if(_0x48ed55===_0x2e8756(0x183)||!settings[_0x2e8756(0x1c2)][_0x2e8756(0x22a)])return;const _0x5b1f46=_0x378499[_0x2e8756(0x1aa)](-settings[_0x2e8756(0x223)]['queryMessageCount']);if(_0x5b1f46['length']===0x0)return;const _0x18257c=_0x5b1f46[_0x2e8756(0x227)](_0x4de8d1=>_0x4de8d1['mes'])['join']('\x20')[_0x2e8756(0x1e9)](/<[^>]*>/g,'')[_0x2e8756(0x1b9)]();if(!_0x18257c)return;try{const _0x34c3b9=await queryVectors(_0x18257c);if(_0x34c3b9[_0x2e8756(0x1ca)]===0x0)return;const _0x41a6c2=await rerankResults(_0x34c3b9,_0x18257c,settings);if(_0x41a6c2['length']===0x0)return;const _0x15b7d8=_0x41a6c2[_0x2e8756(0x227)](_0x5e3f08=>_0x5e3f08[_0x2e8756(0x1bc)])[_0x2e8756(0x1a4)]('\x0a\x0a'),_0xc15a54=settings[_0x2e8756(0x22d)][_0x2e8756(0x1b1)]['replace'](_0x2e8756(0x1c5),_0x15b7d8);setExtensionPrompt(_0x2e8756(0x1de),_0xc15a54,settings[_0x2e8756(0x22d)]['position'],settings['injection'][_0x2e8756(0x181)],![],settings['injection'][_0x2e8756(0x1fd)]);}catch(_0x35977c){console[_0x2e8756(0x1be)](_0x2e8756(0x1f8),_0x35977c);if(settings[_0x2e8756(0x1c2)]['notify'])showNotification(_0x2e8756(0x17e)+_0x35977c[_0x2e8756(0x17a)],_0x2e8756(0x1be));}} +'use strict';const _0x15e62c=_0x34fe;(function(_0x53f245,_0x17ffe5){const _0x64772=_0x34fe,_0x2a8240=_0x53f245();while(!![]){try{const _0x1b4257=-parseInt(_0x64772(0x1f3))/0x1+parseInt(_0x64772(0x24a))/0x2*(-parseInt(_0x64772(0x287))/0x3)+parseInt(_0x64772(0x215))/0x4+parseInt(_0x64772(0x256))/0x5+parseInt(_0x64772(0x21a))/0x6*(parseInt(_0x64772(0x289))/0x7)+parseInt(_0x64772(0x23a))/0x8+parseInt(_0x64772(0x206))/0x9*(parseInt(_0x64772(0x247))/0xa);if(_0x1b4257===_0x17ffe5)break;else _0x2a8240['push'](_0x2a8240['shift']());}catch(_0x2bfe5d){_0x2a8240['push'](_0x2a8240['shift']());}}}(_0x54fb,0xddd86));function _0x34fe(_0x2ba62a,_0x2182de){const _0x54fb88=_0x54fb();return _0x34fe=function(_0x34fe84,_0x22a28a){_0x34fe84=_0x34fe84-0x1c8;let _0x55718c=_0x54fb88[_0x34fe84];return _0x55718c;},_0x34fe(_0x2ba62a,_0x2182de);}import{extension_prompt_roles,setExtensionPrompt}from'/script.js';import*as _0x9e3022 from'./utils/context-utils.js';import{getCollectionIdInfo}from'./utils/context-utils.js';import{defaultSettings as _0x3bdfc7}from'./rag-settings.js';import*as _0xd6a0a7 from'./ingestion-manager.js';const MODULE_NAME=_0x15e62c(0x246),OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME='vectors_rearrangeChat';let context=null,settings=null,lockedCollectionId=null;export{initialize,getSettings,saveSettings,resetSettings,testApiConnection,fetchEmbeddingModels,fetchRerankModels,getVectorCount,purgeStorage,getMessagesForCondensation,processCondensation,ingestTextToHanlinyuan,getCollectionId,toggleSessionLock,isSessionLocked,getLockedSessionInfo};function initialize(){const _0x2ee6a0=_0x15e62c;context=SillyTavern['getContext']();if(!context){console[_0x2ee6a0(0x1db)](_0x2ee6a0(0x20d));return;}settings=getSettings();const _0x186fb3=window[OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME];typeof _0x186fb3==='function'?(window[OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME]=async function(..._0x373527){await rearrangeChat(..._0x373527),await _0x186fb3(..._0x373527);},console[_0x2ee6a0(0x1fb)](_0x2ee6a0(0x1d1)+OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME)):(window[OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME]=rearrangeChat,console[_0x2ee6a0(0x1fb)](_0x2ee6a0(0x26e)+OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME));}async function ingestTextToHanlinyuan(_0x1e2a9e,_0x2e6f35='manual',_0x3936ce='',_0x789001=()=>{},_0x288dff=null,_0x122101=()=>{},_0x141d48=()=>{},_0x108b51=null,_0x3ae753=0x0,_0x3c6299=null){const _0x2cf0fc=_0x15e62c;if(!_0x1e2a9e||!_0x1e2a9e[_0x2cf0fc(0x255)]())return{'success':![],'error':_0x2cf0fc(0x1e1)};if(!settings)return{'success':![],'error':'核心未初始化'};try{let _0x104ff8=await getCollectionId();const _0x42ecf4=getCollectionIdInfo();if(_0x42ecf4[_0x2cf0fc(0x234)]&&_0x42ecf4[_0x2cf0fc(0x234)]===_0x104ff8&&_0x42ecf4[_0x2cf0fc(0x234)]!==_0x42ecf4[_0x2cf0fc(0x1f5)]){const _0x38d735=confirm(_0x2cf0fc(0x23e));if(_0x38d735)_0x122101(_0x2cf0fc(0x261)+_0x42ecf4['oldId'],_0x2cf0fc(0x245)),await purgeStorage(_0x42ecf4[_0x2cf0fc(0x234)]),_0x104ff8=_0x42ecf4[_0x2cf0fc(0x1f5)],_0x122101('[翰林院-迁移]\x20旧宝库已清空,将向新宝库写入数据:\x20'+_0x104ff8,_0x2cf0fc(0x241));else return _0x122101(_0x2cf0fc(0x1e3),_0x2cf0fc(0x27a)),toastr[_0x2cf0fc(0x27a)](_0x2cf0fc(0x214)),{'success':![],'error':_0x2cf0fc(0x263)};}if(!_0x104ff8)throw new Error(_0x2cf0fc(0x231));_0x122101(_0x2cf0fc(0x290)+_0x104ff8,_0x2cf0fc(0x27a)),_0x789001({'message':'正在智能分块...','processed':0x0,'total':0x1});const _0x356e07=splitIntoChunks(_0x1e2a9e,_0x2e6f35,{'sourceName':_0x3936ce}),_0x5643c2=_0x356e07[_0x2cf0fc(0x294)];if(_0x288dff?.[_0x2cf0fc(0x26a)])throw new Error(_0x2cf0fc(0x207));_0x122101(_0x2cf0fc(0x1eb)+(_0x3936ce||_0x2e6f35)+_0x2cf0fc(0x20a)+_0x5643c2+_0x2cf0fc(0x216),'info');if(_0x5643c2===0x0)return{'success':!![],'count':0x0};const _0x381bc9=settings[_0x2cf0fc(0x27e)][_0x2cf0fc(0x251)]||0x5;let _0x202ed3=_0x3ae753;for(let _0x443ddc=_0x3ae753;_0x443ddc<_0x5643c2;_0x443ddc+=_0x381bc9){if(_0x288dff?.['aborted'])throw new Error('AbortError');const _0x2b61e8=_0x356e07[_0x2cf0fc(0x1ed)](_0x443ddc,_0x443ddc+_0x381bc9);_0x789001({'message':_0x2cf0fc(0x267)+(_0x443ddc+0x1)+'-'+(_0x443ddc+_0x2b61e8[_0x2cf0fc(0x294)])+'\x20块','processed':_0x443ddc,'total':_0x5643c2});const _0x57cb6e=_0x2b61e8[_0x2cf0fc(0x1f2)](_0x5e9dd9=>_0x5e9dd9[_0x2cf0fc(0x24b)]),_0x5ac3d9=await getEmbeddings(_0x57cb6e,_0x288dff);if(_0x288dff?.[_0x2cf0fc(0x26a)])throw new Error(_0x2cf0fc(0x207));if(_0x2b61e8[_0x2cf0fc(0x294)]!==_0x5ac3d9[_0x2cf0fc(0x294)])throw new Error(_0x2cf0fc(0x1e4));const _0x3d6e11=_0x2b61e8['map']((_0x325d88,_0x3da300)=>({..._0x325d88,'vector':_0x5ac3d9[_0x3da300]}));await insertVectors(_0x3d6e11,_0x288dff,_0x104ff8),_0x202ed3+=_0x2b61e8[_0x2cf0fc(0x294)],_0x108b51&&_0xd6a0a7[_0x2cf0fc(0x1e9)](_0x108b51,_0x202ed3,_0x5643c2),_0x141d48();}_0x108b51&&_0xd6a0a7[_0x2cf0fc(0x25a)](_0x108b51);if(_0x3c6299){const _0x3712b6=await getCollectionId(),_0x2489c6=_0x3c6299[_0x2cf0fc(0x1d4)]===0x0?context['chat']['length']:_0x3c6299[_0x2cf0fc(0x1d4)];settings[_0x2cf0fc(0x213)][_0x3712b6]={'start':_0x3c6299[_0x2cf0fc(0x260)],'end':_0x2489c6,'timestamp':new Date()[_0x2cf0fc(0x1ef)]()},saveSettings(),_0x122101(_0x2cf0fc(0x22f)+_0x3712b6+_0x2cf0fc(0x273)+_0x3c6299[_0x2cf0fc(0x260)]+'-'+_0x2489c6,'info');}return _0x122101(_0x2cf0fc(0x26c)+_0x202ed3+'\x20个向量条目。',_0x2cf0fc(0x241)),{'success':!![],'count':_0x202ed3};}catch(_0x6fed71){if(_0x6fed71['name']===_0x2cf0fc(0x207)){_0x122101(_0x2cf0fc(0x26f),_0x2cf0fc(0x245));throw _0x6fed71;}return console['error'](_0x2cf0fc(0x24d),_0x6fed71),_0x122101(_0x2cf0fc(0x258)+_0x6fed71['message'],_0x2cf0fc(0x1db)),{'success':![],'error':_0x6fed71[_0x2cf0fc(0x1da)]};}}function getSettings(){const _0x59823d=_0x15e62c;if(!context||!context['extensionSettings'])return structuredClone(_0x3bdfc7);let _0x568ae7=context[_0x59823d(0x1e8)][MODULE_NAME];!_0x568ae7&&(_0x568ae7={},context['extensionSettings'][MODULE_NAME]=_0x568ae7);_0x568ae7[_0x59823d(0x213)]===undefined&&(_0x568ae7['condensationHistory']={});for(const _0x154027 in _0x3bdfc7){if(_0x568ae7[_0x154027]===undefined)_0x568ae7[_0x154027]=structuredClone(_0x3bdfc7[_0x154027]);else{if(typeof _0x3bdfc7[_0x154027]===_0x59823d(0x271)&&!Array[_0x59823d(0x1e6)](_0x3bdfc7[_0x154027])&&_0x3bdfc7[_0x154027]!==null)for(const _0x3e2475 in _0x3bdfc7[_0x154027]){_0x568ae7[_0x154027][_0x3e2475]===undefined&&(_0x568ae7[_0x154027][_0x3e2475]=_0x3bdfc7[_0x154027][_0x3e2475]);}}}return _0x568ae7;}function saveSettings(){const _0x59c09a=_0x15e62c;if(context)context[_0x59c09a(0x25e)]();}function resetSettings(){const _0x4a550e=_0x15e62c;context&&(context[_0x4a550e(0x1e8)][MODULE_NAME]=structuredClone(_0x3bdfc7),saveSettings());}function showNotification(_0xe4c44e,_0x4d3a8a=_0x15e62c(0x27a)){toastr[_0x4d3a8a](_0xe4c44e);}function getTagForSource(_0x506730){const _0x3531d7=_0x15e62c;switch(_0x506730){case _0x3531d7(0x27d):return'聊天记录';case _0x3531d7(0x21c):return _0x3531d7(0x281);case _0x3531d7(0x1f0):return _0x3531d7(0x25c);case'novel':return'小说录入';default:return'资料';}}function splitIntoChunks(_0x3b0d22,_0xd4abc3,_0x2f2acd={}){const _0x4a6b88=_0x15e62c;switch(_0xd4abc3){case _0x4a6b88(0x242):return _chunkForNovel(_0x3b0d22,_0x2f2acd);case _0x4a6b88(0x27d):return _chunkForChatHistory(_0x3b0d22,_0x2f2acd);case _0x4a6b88(0x21c):return _chunkForLorebook(_0x3b0d22,_0x2f2acd);case _0x4a6b88(0x1f0):return _chunkForManual(_0x3b0d22,_0x2f2acd);default:console[_0x4a6b88(0x245)](_0x4a6b88(0x1d6)+_0xd4abc3+'\x27,使用通用分块逻辑。');return _chunkForManual(_0x3b0d22,{..._0x2f2acd,'sourceName':_0x2f2acd[_0x4a6b88(0x288)]||_0x4a6b88(0x278)});}}function _chunkForNovel(_0x4f49d6,_0x418831){const _0x551641=_0x15e62c,{chunkSize:_0xe6bc3b,overlap:_0x544d94}=settings[_0x551641(0x269)],{sourceName:sourceName='小说'}=_0x418831,_0x1ec14c=[];if(!_0x4f49d6||_0xe6bc3b<=0x0)return _0x1ec14c;const _0x1b4c38=/(第\s*[一二三四五六七八九十百千万零\d]+\s*卷)/gim,_0x39716e=/(第\s*[一二三四五六七八九十百千万零\d]+\s*[章回节部])|^(Chapter\s+\d+)/gim;let _0x5110a9=0x0;const _0x1df4d7=_0x4f49d6[_0x551641(0x262)]('\x0a');let _0x2f62f4=_0x551641(0x1f1),_0x5191d9=_0x551641(0x274),_0x4672e7=[];function _0x20ad86(){const _0x484600=_0x551641;if(_0x4672e7['length']===0x0)return;const _0x21e839=_0x4672e7[_0x484600(0x275)]('\x0a');let _0x2ff49d=0x0,_0x47a873=0x1;while(_0x2ff49d<_0x21e839[_0x484600(0x294)]){const _0x2258ef=Math[_0x484600(0x202)](_0x2ff49d+_0xe6bc3b,_0x21e839[_0x484600(0x294)]),_0x596344=_0x21e839[_0x484600(0x264)](_0x2ff49d,_0x2258ef);if(_0x596344['trim']()[_0x484600(0x294)]>0x0){const _0x1f6c1a={'source':_0x484600(0x242),'sourceName':sourceName,'timestamp':new Date()[_0x484600(0x1ef)](),'globalIndex':_0x5110a9++,'volume':_0x2f62f4,'chapter':_0x5191d9,'section':_0x47a873},_0x39135f=getTagForSource(_0x484600(0x242)),_0x19e3f0=_0x484600(0x20e)+sourceName+',\x20'+_0x2f62f4+',\x20'+_0x5191d9+_0x484600(0x224)+_0x47a873+'节]',_0x47df27='<'+_0x39135f+'>\x0a'+_0x19e3f0+'\x0a'+_0x596344+_0x484600(0x257)+_0x39135f+'>';_0x1ec14c[_0x484600(0x210)]({'text':_0x47df27,'metadata':_0x1f6c1a}),_0x47a873++;}_0x2ff49d+=_0xe6bc3b-_0x544d94;if(_0x2ff49d>=_0x21e839[_0x484600(0x294)])break;}_0x4672e7=[];}for(const _0x5734f1 of _0x1df4d7){const _0x2eb958=_0x5734f1['trim']();if(_0x1b4c38[_0x551641(0x1dc)](_0x2eb958))_0x20ad86(),_0x2f62f4=_0x2eb958,_0x5191d9='第1章';else _0x39716e[_0x551641(0x1dc)](_0x2eb958)?(_0x20ad86(),_0x5191d9=_0x2eb958):_0x4672e7[_0x551641(0x210)](_0x5734f1);}_0x20ad86();if(_0x1ec14c[_0x551641(0x294)]===0x0&&_0x4f49d6[_0x551641(0x294)]>0x0){let _0x19f8a1=0x0,_0x11f28c=0x1;while(_0x19f8a1<_0x4f49d6['length']){const _0x56b1b1=Math[_0x551641(0x202)](_0x19f8a1+_0xe6bc3b,_0x4f49d6[_0x551641(0x294)]),_0x2e8158=_0x4f49d6['substring'](_0x19f8a1,_0x56b1b1),_0x4dbfd7={'source':'novel','sourceName':sourceName,'timestamp':new Date()[_0x551641(0x1ef)](),'globalIndex':_0x1ec14c['length'],'volume':_0x551641(0x1f1),'chapter':_0x551641(0x274),'section':_0x11f28c},_0x5960b1=getTagForSource('novel'),_0x43cdda=_0x551641(0x20e)+sourceName+_0x551641(0x208)+_0x11f28c+'节]',_0x230a9a='<'+_0x5960b1+'>\x0a'+_0x43cdda+'\x0a'+_0x2e8158+_0x551641(0x257)+_0x5960b1+'>';_0x1ec14c['push']({'text':_0x230a9a,'metadata':_0x4dbfd7}),_0x11f28c++,_0x19f8a1+=_0xe6bc3b-_0x544d94;}}return _0x1ec14c;}function _chunkForChatHistory(_0x394318,_0x119e58){const _0x14169e=_0x15e62c,{chunkSize:_0x2e7f00,overlap:_0x55219d}=settings[_0x14169e(0x269)],{floor:_0x51910e,is_user:_0x4b6b8e,timestamp:_0x3f0e54}=_0x119e58,_0x32f286=[];if(!_0x394318||_0x2e7f00<=0x0)return _0x32f286;let _0x10e476=0x1,_0x3725b9=0x0;while(_0x3725b9<_0x394318[_0x14169e(0x294)]){const _0x2f43fc=Math[_0x14169e(0x202)](_0x3725b9+_0x2e7f00,_0x394318['length']),_0x2af09d=_0x394318[_0x14169e(0x264)](_0x3725b9,_0x2f43fc),_0x13323d=_0x14169e(0x25d)+_0x51910e+',\x20第'+_0x10e476+_0x14169e(0x23b),_0x239a4e=getTagForSource(_0x14169e(0x27d)),_0x47f274='<'+_0x239a4e+'>\x0a'+_0x13323d+'\x0a'+_0x2af09d+_0x14169e(0x257)+_0x239a4e+'>';_0x32f286[_0x14169e(0x210)]({'text':_0x47f274,'metadata':{'source':_0x14169e(0x27d),'sourceName':_0x14169e(0x1d3)+_0x51910e,'floor':_0x51910e,'part':_0x10e476,'is_user':_0x4b6b8e,'timestamp':_0x3f0e54}}),_0x10e476++,_0x3725b9+=_0x2e7f00-_0x55219d;if(_0x3725b9>=_0x394318[_0x14169e(0x294)])break;}return _0x32f286;}function _chunkForLorebook(_0x4bc8a7,_0x15b01a){const _0x1b917c=_0x15e62c,{chunkSize:_0x3863ce,overlap:_0x2de683}=settings[_0x1b917c(0x269)],{sourceName:sourceName=_0x1b917c(0x222)}=_0x15b01a,_0x2d988a=[];if(!_0x4bc8a7||_0x3863ce<=0x0)return _0x2d988a;let _0x3643cb=0x1,_0x381b98=0x0;while(_0x381b98<_0x4bc8a7[_0x1b917c(0x294)]){const _0x4aed32=Math[_0x1b917c(0x202)](_0x381b98+_0x3863ce,_0x4bc8a7[_0x1b917c(0x294)]),_0x4428b0=_0x4bc8a7[_0x1b917c(0x264)](_0x381b98,_0x4aed32),_0x41b6fb=_0x1b917c(0x237)+sourceName+_0x1b917c(0x224)+_0x3643cb+_0x1b917c(0x23b),_0x484508=getTagForSource(_0x1b917c(0x21c)),_0x5de0e5='<'+_0x484508+'>\x0a'+_0x41b6fb+'\x0a'+_0x4428b0+_0x1b917c(0x257)+_0x484508+'>';_0x2d988a['push']({'text':_0x5de0e5,'metadata':{'source':_0x1b917c(0x21c),'sourceName':sourceName,'part':_0x3643cb,'timestamp':new Date()[_0x1b917c(0x1ef)]()}}),_0x3643cb++,_0x381b98+=_0x3863ce-_0x2de683;if(_0x381b98>=_0x4bc8a7['length'])break;}return _0x2d988a;}function _chunkForManual(_0x2575e5,_0x1ca7a1){const _0x470a79=_0x15e62c,{chunkSize:_0xacc0b4,overlap:_0x38afff}=settings[_0x470a79(0x269)],{sourceName:sourceName=_0x470a79(0x25c)}=_0x1ca7a1,_0x3bfd31=[];if(!_0x2575e5||_0xacc0b4<=0x0)return _0x3bfd31;const _0x538f00=new Date(),_0x24f63e=_0x538f00[_0x470a79(0x218)]('zh-CN');let _0x94d7a1=0x1,_0x323d4e=0x0;while(_0x323d4e<_0x2575e5[_0x470a79(0x294)]){const _0x4a9836=Math[_0x470a79(0x202)](_0x323d4e+_0xacc0b4,_0x2575e5[_0x470a79(0x294)]),_0x290aef=_0x2575e5[_0x470a79(0x264)](_0x323d4e,_0x4a9836),_0x3f182b=_0x470a79(0x20e)+sourceName+_0x470a79(0x1f8)+_0x24f63e+_0x470a79(0x224)+_0x94d7a1+_0x470a79(0x23b),_0x1e7520=getTagForSource(_0x470a79(0x1f0)),_0x4d494c='<'+_0x1e7520+'>\x0a'+_0x3f182b+'\x0a'+_0x290aef+_0x470a79(0x257)+_0x1e7520+'>';_0x3bfd31['push']({'text':_0x4d494c,'metadata':{'source':'manual','sourceName':sourceName,'part':_0x94d7a1,'timestamp':_0x538f00['toISOString']()}}),_0x94d7a1++,_0x323d4e+=_0xacc0b4-_0x38afff;if(_0x323d4e>=_0x2575e5[_0x470a79(0x294)])break;}return _0x3bfd31;}import{getCollectionId as _0x318e67,getCharacterName}from'./utils/context-utils.js';async function getCollectionId(){return lockedCollectionId||await _0x318e67();}async function toggleSessionLock(){return lockedCollectionId?(lockedCollectionId=null,![]):(lockedCollectionId=await _0x318e67(),!![]);}function isSessionLocked(){return lockedCollectionId!==null;}function getLockedSessionInfo(){const _0x2ffe3c=_0x15e62c;if(!lockedCollectionId)return null;return{'id':lockedCollectionId,'name':'(已锁定:\x20'+lockedCollectionId[_0x2ffe3c(0x264)](0x0,0x8)+_0x2ffe3c(0x1d5)};}function generateHash(_0x31ee95){const _0x56008a=_0x15e62c;let _0x102d59=0x0;for(let _0x1fac9c=0x0;_0x1fac9c<_0x31ee95[_0x56008a(0x294)];_0x1fac9c++){const _0x252ac2=_0x31ee95['charCodeAt'](_0x1fac9c);_0x102d59=(_0x102d59<<0x5)-_0x102d59+_0x252ac2,_0x102d59=_0x102d59&_0x102d59;}return Math[_0x56008a(0x27b)](_0x102d59)['toString'](0x24);}function getSanitizedBaseUrl(_0x15a32c){const _0x5ab6f5=_0x15e62c;let _0x44e389=_0x15a32c['trim']();return _0x44e389[_0x5ab6f5(0x1f4)]('/')&&(_0x44e389=_0x44e389['slice'](0x0,-0x1)),_0x44e389[_0x5ab6f5(0x1f4)](_0x5ab6f5(0x276))&&(_0x44e389=_0x44e389[_0x5ab6f5(0x1ed)](0x0,-0x3)),_0x44e389[_0x5ab6f5(0x1f4)]('/embeddings')&&(_0x44e389=_0x44e389['slice'](0x0,-0xb)),_0x44e389;}async function fetchEmbeddingModels(){const _0x1c4aee=_0x15e62c,{apiKey:_0x29bd72}=settings[_0x1c4aee(0x27e)],_0x1156b9=getApiEndpointUrl(!![]);if(!_0x1156b9||!_0x29bd72)throw new Error(_0x1c4aee(0x227));const _0x389055=getSanitizedBaseUrl(_0x1156b9),_0x3e1cf0=_0x389055+_0x1c4aee(0x22a);console[_0x1c4aee(0x1fb)](_0x1c4aee(0x282)+_0x3e1cf0+_0x1c4aee(0x23c));const _0x4607cb=await fetch(_0x3e1cf0,{'method':_0x1c4aee(0x28e),'headers':getApiHeaders()});if(!_0x4607cb['ok']){const _0x3d212a=await _0x4607cb[_0x1c4aee(0x24b)]();throw new Error(_0x1c4aee(0x1e5)+_0x4607cb['status']+_0x1c4aee(0x284)+_0x3d212a);}const _0x313c84=await _0x4607cb[_0x1c4aee(0x200)]();if(!_0x313c84['data']||!Array['isArray'](_0x313c84[_0x1c4aee(0x292)]))throw new Error(_0x1c4aee(0x1cc));return _0x313c84[_0x1c4aee(0x292)]['map'](_0x114ad5=>_0x114ad5['id'])[_0x1c4aee(0x266)]();}function getRerankBaseUrl(_0x304df0){const _0x3b80ed=_0x15e62c;let _0x3b6928=_0x304df0[_0x3b80ed(0x255)]();return _0x3b6928[_0x3b80ed(0x1f4)]('/')&&(_0x3b6928=_0x3b6928[_0x3b80ed(0x1ed)](0x0,-0x1)),_0x3b6928[_0x3b80ed(0x1f4)]('/v1')&&(_0x3b6928=_0x3b6928[_0x3b80ed(0x1ed)](0x0,-0x3)),_0x3b6928['endsWith']('/rerank')&&(_0x3b6928=_0x3b6928[_0x3b80ed(0x1ed)](0x0,-0x7)),_0x3b6928;}async function fetchRerankModels(){const _0x1a16b3=_0x15e62c,{url:_0x3cbfd8,apiKey:_0xfac694}=settings[_0x1a16b3(0x235)];if(!_0x3cbfd8||!_0xfac694)throw new Error(_0x1a16b3(0x1cd));const _0x4eaaf4=getRerankBaseUrl(_0x3cbfd8),_0x13dbd3=_0x4eaaf4+_0x1a16b3(0x22a);console[_0x1a16b3(0x1fb)](_0x1a16b3(0x240)+_0x13dbd3+'\x20获取模型列表...');const _0x143618=await fetch(_0x13dbd3,{'method':_0x1a16b3(0x28e),'headers':{'Authorization':'Bearer\x20'+_0xfac694}});if(!_0x143618['ok']){const _0x290ae6=await _0x143618['text']();throw new Error('获取Rerank模型列表失败\x20('+_0x143618[_0x1a16b3(0x265)]+'):\x20'+_0x290ae6);}const _0x38582f=await _0x143618[_0x1a16b3(0x200)]();if(!_0x38582f[_0x1a16b3(0x292)]||!Array[_0x1a16b3(0x1e6)](_0x38582f['data']))throw new Error(_0x1a16b3(0x1ea));return _0x38582f[_0x1a16b3(0x292)][_0x1a16b3(0x1f2)](_0x5857ee=>_0x5857ee['id'])[_0x1a16b3(0x266)]();}function getApiEndpointUrl(_0x328ab9=![]){const _0x5de505=_0x15e62c,{apiEndpoint:_0x576868,customApiUrl:_0x5c3d2f}=settings['retrieval'];let _0x44021f;switch(_0x576868){case _0x5de505(0x1c8):_0x44021f=_0x5de505(0x204);break;case _0x5de505(0x220):case _0x5de505(0x1e0):_0x44021f=_0x5c3d2f;break;default:_0x44021f='https://api.openai.com';break;}if(_0x328ab9)return _0x44021f;return getSanitizedBaseUrl(_0x44021f)+'/v1/embeddings';}function getApiHeaders(){const _0x29db03=_0x15e62c,_0x45fe7d={'Content-Type':'application/json'},{apiKey:_0x50de96,apiEndpoint:_0x2ffec1}=settings['retrieval'];switch(_0x2ffec1){case'openai':case _0x29db03(0x1e0):_0x45fe7d[_0x29db03(0x22e)]=_0x29db03(0x232)+_0x50de96;break;case'azure':_0x45fe7d[_0x29db03(0x230)]=_0x50de96;break;}return _0x45fe7d;}function _0x54fb(){const _0x5f2455=[',\x20第1卷,\x20第1章,\x20第','matchThreshold','\x27的文本分割成\x20','filter','user','[翰林院]\x20未能获取SillyTavern上下文,初始化失败。','[来源:\x20','/api/vector/insert','push','maxResults','[翰林院-核心]\x20聊天记录凝识完成,成功插入\x20','condensationHistory','操作已取消。','3560540EFCWlg','\x20个块。','chat','toLocaleString','\x20条消息分解为\x20','7283046xrQAKQ','[翰林院-日志]\x20/api/vector/query\x20响应内容:','lorebook','[翰林院-日志]\x20/api/vector/list\x20响应状态:\x20','[翰林院-核心]\x20processCondensation\x20失败:','忆识存入API错误\x20','azure','unknown','世界书条目','[翰林院-日志]\x20忆识存入API错误:',',\x20第','[翰林院-日志]\x20无法确定要清空的目标集合ID。','template','API\x20URL\x20或\x20Key\x20未提供。','HANLINYUAN_RAG','floor','/v1/models','请先配置API\x20Key','queryMessageCount','[翰林院-日志]\x20开始向量查询\x20(采用最终API交互模式)...','Authorization','[翰林院-核心]\x20已为宝库\x20','api-key','无法确定当前忆识宝库的ID,请确认角色已正确加载。','Bearer\x20','[翰林院-日志]\x20发送到\x20/api/vector/purge\x20的请求体:','oldId','rerank','[翰林院-日志]\x20/api/vector/query\x20响应状态:\x20','[来源:\x20世界书,\x20条目:\x20','POST','is_user','3243728AlaEhs','部分]','\x20获取模型列表...','warning','此操作将清空旧版数据,并开始使用新版数据库。此过程不可逆,是否继续?','condensation','[翰林院-Rerank]\x20正在从\x20','success','novel',']\x20的消息已成功凝识。','score','warn','hanlinyuan-rag-core','90UcrTLZ','findIndex','stringify','44728hbpRzM','text','外部Rerank完成','[翰林院-核心]\x20ingestTextToHanlinyuan\x20失败:','/v1/rerank','[翰林院-核心]\x20聊天记录凝识失败:\x20','[翰林院-核心]\x20已将\x20','batchSize','Rerank失败:\x20','[翰林院-日志]\x20查询目标集合ID:\x20','rerank_score','trim','4279035ytofze','\x0a_0x3b3456['embedding'])),_0x464e1d+_0x53b01b<_0xc53ab0[_0xd1b10c(0x294)]&&await new Promise(_0x2347b2=>setTimeout(_0x2347b2,0xc8));}return _0x1f7190;}async function queryVectors(_0xf0d91b){const _0x371c18=_0x15e62c;console['log'](_0x371c18(0x22d));const _0x3e8d8c=await getCollectionId();console[_0x371c18(0x1fb)](_0x371c18(0x253)+_0x3e8d8c);const _0x4a9c2=(await getEmbeddings([_0xf0d91b]))[0x0],_0x3315e7={'collectionId':_0x3e8d8c,'searchText':_0xf0d91b,'topK':settings['advanced'][_0x371c18(0x211)],'threshold':settings[_0x371c18(0x269)][_0x371c18(0x209)],'source':_0x371c18(0x283),'embeddings':{[_0xf0d91b]:_0x4a9c2}};console[_0x371c18(0x1fb)](_0x371c18(0x286),JSON[_0x371c18(0x249)](_0x3315e7,null,0x2));const _0x373fd9=await fetch(_0x371c18(0x285),{'method':'POST','headers':context[_0x371c18(0x1fc)](),'body':JSON[_0x371c18(0x249)](_0x3315e7)});console['log'](_0x371c18(0x236)+_0x373fd9[_0x371c18(0x265)]);if(!_0x373fd9['ok']){const _0x20e9a8=await _0x373fd9[_0x371c18(0x24b)]();console[_0x371c18(0x1db)](_0x371c18(0x28c),_0x20e9a8);throw new Error('宝库查询API错误\x20'+_0x373fd9[_0x371c18(0x265)]+':\x20'+_0x20e9a8);}const _0x3f49e1=await _0x373fd9[_0x371c18(0x200)]();console[_0x371c18(0x1fb)](_0x371c18(0x21b),_0x3f49e1);const _0x501f90=_0x3f49e1[_0x371c18(0x291)]||_0x3f49e1[_0x371c18(0x28f)]||_0x3f49e1[_0x371c18(0x292)]||[];return console[_0x371c18(0x1fb)](_0x371c18(0x1dd)+_0x501f90['length']+_0x371c18(0x26b)),_0x501f90;}async function insertVectors(_0x4c5497,_0x168e8a=null,_0x5476f7){const _0x450508=_0x15e62c;if(!_0x5476f7){console[_0x450508(0x1db)]('[翰林院-核心]\x20insertVectors被调用时未提供collectionId!'),_0x5476f7=await getCollectionId();if(!_0x5476f7)throw new Error(_0x450508(0x1f9));}if(_0x4c5497[_0x450508(0x294)]===0x0)return{'success':!![],'count':0x0};const _0x544ab5=_0x4c5497[_0x450508(0x1f2)]((_0x17100b,_0x2af16d)=>({'hash':generateHash(_0x17100b['text']+Date[_0x450508(0x1de)]()+_0x2af16d),'text':_0x17100b[_0x450508(0x24b)],'metadata':_0x17100b[_0x450508(0x291)]||{'source':_0x450508(0x221),'timestamp':new Date()[_0x450508(0x1ef)]()}})),_0x4803ae=_0x544ab5[_0x450508(0x27f)]((_0x3f8a8d,_0x3e53ea,_0x58bc42)=>{const _0x51106d=_0x450508;return _0x3f8a8d[_0x3e53ea[_0x51106d(0x24b)]]=_0x4c5497[_0x58bc42][_0x51106d(0x1ce)],_0x3f8a8d;},{}),_0x3293a4={'collectionId':_0x5476f7,'items':_0x544ab5,'source':_0x450508(0x283),'embeddings':_0x4803ae},_0x41cf30=await fetch(_0x450508(0x20f),{'method':_0x450508(0x238),'headers':context['getRequestHeaders'](),'body':JSON[_0x450508(0x249)](_0x3293a4),'signal':_0x168e8a});if(!_0x41cf30['ok']){const _0x217b41=await _0x41cf30[_0x450508(0x24b)]();console[_0x450508(0x1db)](_0x450508(0x223),_0x217b41);throw new Error(_0x450508(0x21f)+_0x41cf30[_0x450508(0x265)]+':\x20'+_0x217b41);}return{'success':!![],'count':_0x544ab5['length']};}async function testApiConnection(){const _0x4b8ac8=_0x15e62c;await getEmbeddings([_0x4b8ac8(0x205)]);}async function getVectorCount(){const _0x2c5f61=_0x15e62c;console[_0x2c5f61(0x1fb)]('[翰林院-日志]\x20开始获取向量总数...');const _0x3518d3=await getCollectionId();console[_0x2c5f61(0x1fb)](_0x2c5f61(0x201)+_0x3518d3);const _0x599d9f={'collectionId':_0x3518d3,'source':'webllm','embeddings':{}};console[_0x2c5f61(0x1fb)](_0x2c5f61(0x25f),JSON[_0x2c5f61(0x249)](_0x599d9f,null,0x2));const _0x583e1f=await fetch(_0x2c5f61(0x1d9),{'method':_0x2c5f61(0x238),'headers':context[_0x2c5f61(0x1fc)](),'body':JSON[_0x2c5f61(0x249)](_0x599d9f)});console[_0x2c5f61(0x1fb)](_0x2c5f61(0x21d)+_0x583e1f[_0x2c5f61(0x265)]);if(!_0x583e1f['ok']){const _0x370f8d=await _0x583e1f['text']();return console[_0x2c5f61(0x1db)](_0x2c5f61(0x259),_0x370f8d),0x0;}const _0x2ea985=await _0x583e1f[_0x2c5f61(0x200)]();let _0x47309b=0x0;if(Array[_0x2c5f61(0x1e6)](_0x2ea985))_0x47309b=_0x2ea985[_0x2c5f61(0x294)];else _0x2ea985&&_0x2ea985[_0x2c5f61(0x1fa)]&&(_0x47309b=_0x2ea985['hashes'][_0x2c5f61(0x294)]);return console[_0x2c5f61(0x1fb)](_0x2c5f61(0x26d)+_0x47309b),_0x47309b;}async function purgeStorage(_0x3150b8=null){const _0x46d2b5=_0x15e62c;console['log']('[翰林院-日志]\x20开始清空宝库...');const _0x57c771=_0x3150b8||await getCollectionId();if(!_0x57c771)return console[_0x46d2b5(0x1db)](_0x46d2b5(0x225)),toastr['error']('无法确定要清空的目标宝库。'),![];console[_0x46d2b5(0x1fb)](_0x46d2b5(0x203)+_0x57c771);const _0x136b97={'collectionId':_0x57c771};console[_0x46d2b5(0x1fb)](_0x46d2b5(0x233),JSON[_0x46d2b5(0x249)](_0x136b97,null,0x2));const _0x1e91cb=await fetch(_0x46d2b5(0x1e7),{'method':'POST','headers':context[_0x46d2b5(0x1fc)](),'body':JSON[_0x46d2b5(0x249)](_0x136b97)});console[_0x46d2b5(0x1fb)](_0x46d2b5(0x28d)+_0x1e91cb[_0x46d2b5(0x265)]);if(!_0x1e91cb['ok']){const _0x1cb584=await _0x1e91cb[_0x46d2b5(0x24b)]();console['error'](_0x46d2b5(0x1f7),_0x1cb584);}else console[_0x46d2b5(0x1fb)](_0x46d2b5(0x1ee));return _0x1e91cb['ok'];}function getMessagesForCondensation(_0x1065a9=null){const _0x83a1f9=_0x15e62c;if(!settings[_0x83a1f9(0x23f)][_0x83a1f9(0x1ca)])return showNotification(_0x83a1f9(0x28b),_0x83a1f9(0x23d)),[];const {layerStart:_0x11c1ea,layerEnd:_0x24dedd}=settings[_0x83a1f9(0x23f)],_0x17369a=_0x1065a9||settings[_0x83a1f9(0x23f)][_0x83a1f9(0x1cb)],_0x2f0db1=context[_0x83a1f9(0x217)][_0x83a1f9(0x294)],_0x3f830e=Math[_0x83a1f9(0x1ff)](0x0,_0x11c1ea-0x1),_0x4a9a18=_0x24dedd===0x0||_0x24dedd>_0x2f0db1?_0x2f0db1:Math[_0x83a1f9(0x202)](_0x2f0db1,_0x24dedd),_0x8a10a3=context[_0x83a1f9(0x217)][_0x83a1f9(0x1ed)](_0x3f830e,_0x4a9a18);return _0x8a10a3[_0x83a1f9(0x20b)](_0x381880=>{const _0x1324fe=_0x83a1f9,_0x4ec271=_0x381880[_0x1324fe(0x239)]===!![],_0x3765a9=_0x381880['is_user']===![];if(!_0x381880['mes']||!_0x381880['mes'][_0x1324fe(0x255)]())return![];return _0x17369a[_0x1324fe(0x20c)]&&_0x4ec271||_0x17369a['ai']&&_0x3765a9;});}async function processCondensation(_0x280f4b,_0x313d4e=()=>{},_0x2e4041=null){const _0x1fd241=_0x15e62c;if(!_0x280f4b||_0x280f4b[_0x1fd241(0x294)]===0x0)return{'success':![],'error':'No\x20messages\x20to\x20process.'};try{let _0x3635e2=await getCollectionId();const _0x313aeb=getCollectionIdInfo();if(_0x313aeb[_0x1fd241(0x234)]&&_0x313aeb['oldId']===_0x3635e2&&_0x313aeb[_0x1fd241(0x234)]!==_0x313aeb[_0x1fd241(0x1f5)]){const _0x2bf618=confirm(_0x1fd241(0x23e));if(_0x2bf618)_0x313d4e(_0x1fd241(0x261)+_0x313aeb[_0x1fd241(0x234)],_0x1fd241(0x245)),await purgeStorage(_0x313aeb[_0x1fd241(0x234)]),_0x3635e2=_0x313aeb[_0x1fd241(0x1f5)],_0x313d4e('[翰林院-迁移]\x20旧宝库已清空,将向新宝库写入数据:\x20'+_0x3635e2,_0x1fd241(0x241));else return _0x313d4e(_0x1fd241(0x1e3),_0x1fd241(0x27a)),toastr[_0x1fd241(0x27a)](_0x1fd241(0x214)),{'success':![],'error':_0x1fd241(0x263)};}if(!_0x3635e2)throw new Error(_0x1fd241(0x231));_0x313d4e('[翰林院-核心]\x20凝识任务已锁定忆识宝库ID:\x20'+_0x3635e2,_0x1fd241(0x27a));const _0x3c9467=[],_0x26e110=context[_0x1fd241(0x217)];for(const _0x4327dd of _0x280f4b){const _0xbfc710=(_0x4327dd['mes']||'')[_0x1fd241(0x1e2)](/<[^>]*>/g,'')[_0x1fd241(0x255)]();if(_0xbfc710[_0x1fd241(0x294)]===0x0)continue;let _0x42acc7;if(_0x4327dd[_0x1fd241(0x229)]!==undefined&&_0x4327dd[_0x1fd241(0x229)]!==null)_0x42acc7=_0x4327dd['floor'];else{const _0x4d049b=_0x26e110[_0x1fd241(0x248)](_0x4f60b4=>_0x4f60b4===_0x4327dd);_0x42acc7=_0x4d049b!==-0x1?_0x4d049b+0x1:-0x1;}const _0x46c69a=new Date(_0x4327dd['send_date']),_0x2002b3=isNaN(_0x46c69a['getTime']())?new Date()['toISOString']():_0x46c69a[_0x1fd241(0x1ef)](),_0xaca346=splitIntoChunks(_0xbfc710,'chat_history',{'floor':_0x42acc7,'is_user':_0x4327dd[_0x1fd241(0x239)],'timestamp':_0x2002b3});_0x3c9467[_0x1fd241(0x210)](..._0xaca346);}if(_0x3c9467[_0x1fd241(0x294)]===0x0)return{'success':!![],'count':0x0};_0x313d4e(_0x1fd241(0x250)+_0x280f4b[_0x1fd241(0x294)]+_0x1fd241(0x219)+_0x3c9467[_0x1fd241(0x294)]+_0x1fd241(0x279),'info');const _0x41af19=settings['retrieval'][_0x1fd241(0x251)]||0x5;let _0x3f2109=0x0;for(let _0xebb14c=0x0;_0xebb14c<_0x3c9467['length'];_0xebb14c+=_0x41af19){const _0x3af6e0=_0x3c9467[_0x1fd241(0x1ed)](_0xebb14c,_0xebb14c+_0x41af19),_0x38a449=_0x3af6e0['map'](_0x561358=>_0x561358[_0x1fd241(0x24b)]),_0x5bc7bd=await getEmbeddings(_0x38a449);if(_0x3af6e0['length']!==_0x5bc7bd[_0x1fd241(0x294)])throw new Error(_0x1fd241(0x1e4));const _0x3afa18=_0x3af6e0[_0x1fd241(0x1f2)]((_0x3dc10a,_0x33cbff)=>({..._0x3dc10a,'vector':_0x5bc7bd[_0x33cbff]}));await insertVectors(_0x3afa18,null,_0x3635e2),_0x3f2109+=_0x3af6e0[_0x1fd241(0x294)];}if(_0x2e4041){const _0x3b4bb7=_0x2e4041['end']===0x0?context['chat'][_0x1fd241(0x294)]:_0x2e4041['end'];settings['condensationHistory'][_0x3635e2]={'start':_0x2e4041[_0x1fd241(0x260)],'end':_0x3b4bb7,'timestamp':new Date()[_0x1fd241(0x1ef)]()},saveSettings(),_0x313d4e(_0x1fd241(0x22f)+_0x3635e2+_0x1fd241(0x273)+_0x2e4041[_0x1fd241(0x260)]+'-'+_0x3b4bb7,'info');}_0x313d4e(_0x1fd241(0x212)+_0x3f2109+'\x20个条目。',_0x1fd241(0x241));const _0x46aa2d=_0x280f4b[_0x1fd241(0x1f2)](_0x316abc=>{const _0x744d10=_0x1fd241,_0x2b98af=_0x26e110[_0x744d10(0x248)](_0x5c1915=>_0x5c1915===_0x316abc),_0x53f45b=_0x2b98af!==-0x1?_0x2b98af+0x1:-0x1,_0x5f44c=_0x316abc[_0x744d10(0x239)]?'用户':getCharacterName()||'AI';return'['+_0x5f44c+'\x20-\x20楼层\x20#'+_0x53f45b+_0x744d10(0x243);});return{'success':!![],'count':_0x3f2109,'messages':_0x46aa2d};}catch(_0x3679da){return console[_0x1fd241(0x1db)](_0x1fd241(0x21e),_0x3679da),_0x313d4e(_0x1fd241(0x24f)+_0x3679da['message'],_0x1fd241(0x1db)),{'success':![],'error':_0x3679da[_0x1fd241(0x1da)]};}}async function rerankResults(_0x475350,_0x5913b2,_0x455924){const _0x47dba8=_0x15e62c;let _0x33cdf5=_0x475350;if(_0x455924[_0x47dba8(0x235)][_0x47dba8(0x1ca)]&&_0x475350[_0x47dba8(0x294)]>0x0){console[_0x47dba8(0x1fb)](_0x47dba8(0x1d7));try{const _0x77e0f0=_0x475350['map']((_0x145524,_0x428d9c)=>({'text':_0x145524['text'],'original_index':_0x428d9c})),_0x43a2eb=getRerankBaseUrl(_0x455924[_0x47dba8(0x235)]['url']),_0x278ffe=_0x43a2eb+_0x47dba8(0x24e),_0x45d557=await fetch(_0x278ffe,{'method':_0x47dba8(0x238),'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+_0x455924[_0x47dba8(0x235)][_0x47dba8(0x1ec)]},'body':JSON[_0x47dba8(0x249)]({'query':_0x5913b2,'documents':_0x77e0f0[_0x47dba8(0x1f2)](_0x1e6067=>_0x1e6067[_0x47dba8(0x24b)]),'model':_0x455924[_0x47dba8(0x235)][_0x47dba8(0x1f6)],'top_n':_0x455924[_0x47dba8(0x235)]['top_n']})});if(!_0x45d557['ok'])throw new Error(_0x47dba8(0x27c)+_0x45d557[_0x47dba8(0x265)]+_0x47dba8(0x284)+await _0x45d557[_0x47dba8(0x24b)]());const _0x3914a7=await _0x45d557['json'](),_0x57ecc5=_0x475350[_0x47dba8(0x1f2)]((_0x598f45,_0x1eff29)=>({..._0x598f45,'original_index':_0x1eff29}));_0x33cdf5=_0x57ecc5[_0x47dba8(0x1f2)](_0x18a014=>{const _0x194936=_0x47dba8,_0x47bb2b=_0x3914a7['results'][_0x194936(0x272)](_0x59c4f0=>_0x59c4f0[_0x194936(0x293)]===_0x18a014['original_index']),_0xc44481=_0x47bb2b?_0x47bb2b[_0x194936(0x1fd)]:0x0;return{..._0x18a014,'rerank_score':_0xc44481};});if(_0x455924['rerank'][_0x47dba8(0x280)])showNotification(_0x47dba8(0x24c),_0x47dba8(0x241));}catch(_0x54cef2){console[_0x47dba8(0x1db)](_0x47dba8(0x1cf),_0x54cef2);if(_0x455924[_0x47dba8(0x235)][_0x47dba8(0x280)])showNotification(_0x47dba8(0x252)+_0x54cef2[_0x47dba8(0x1da)],_0x47dba8(0x1db));_0x33cdf5[_0x47dba8(0x1d2)](_0x2ec4a5=>_0x2ec4a5[_0x47dba8(0x254)]=0x0);}}else _0x33cdf5[_0x47dba8(0x1d2)](_0x420c4c=>_0x420c4c[_0x47dba8(0x254)]=0x0);console[_0x47dba8(0x1fb)]('[翰林院-Rerank]\x20开始元数据加权最终排序...');const _0x1b4d06=context[_0x47dba8(0x217)][_0x47dba8(0x294)],_0x56f1ba=_0x455924['rerank']['hybrid_alpha'],_0x3f428a=_0x33cdf5['map'](_0x21c053=>{const _0x22dccb=_0x47dba8;let _0x45a2cc=0x1;const _0x3609a1=_0x21c053[_0x22dccb(0x291)]||{};switch(_0x3609a1[_0x22dccb(0x1c9)]){case _0x22dccb(0x21c):_0x45a2cc*=1.2;break;case _0x22dccb(0x1f0):_0x45a2cc*=1.1;break;case _0x22dccb(0x27d):if(_0x3609a1[_0x22dccb(0x229)]&&_0x1b4d06>0x0){const _0x1f6cc2=_0x3609a1['floor']/_0x1b4d06;_0x45a2cc*=0x1+_0x1f6cc2;}break;}const _0x52ad23=_0x21c053[_0x22dccb(0x254)]*_0x56f1ba+(_0x21c053[_0x22dccb(0x244)]||0x0)*(0x1-_0x56f1ba),_0x2ea656=_0x52ad23*_0x45a2cc;return{..._0x21c053,'final_score':_0x2ea656};});return _0x3f428a[_0x47dba8(0x266)]((_0x35ceb1,_0x382faa)=>(_0x382faa['final_score']||0x0)-(_0x35ceb1[_0x47dba8(0x277)]||0x0)),console[_0x47dba8(0x1fb)]('[翰林院-Rerank]\x20元数据加权排序完成。'),_0x3f428a[_0x47dba8(0x1ed)](0x0,_0x455924[_0x47dba8(0x235)]['top_n']);}async function rearrangeChat(_0x39c1cd,_0x550b8f,_0x38a49d,_0x4a0e17){const _0x211270=_0x15e62c;setExtensionPrompt(_0x211270(0x228),'',settings['injection'][_0x211270(0x1fe)],settings[_0x211270(0x1df)][_0x211270(0x1d8)],![],settings[_0x211270(0x1df)][_0x211270(0x1d0)]);if(_0x4a0e17===_0x211270(0x270)||!settings['retrieval'][_0x211270(0x1ca)])return;const _0x297895=_0x39c1cd[_0x211270(0x1ed)](-settings[_0x211270(0x269)][_0x211270(0x22c)]);if(_0x297895['length']===0x0)return;const _0x166d76=_0x297895[_0x211270(0x1f2)](_0x78e792=>_0x78e792['mes'])['join']('\x20')[_0x211270(0x1e2)](/<[^>]*>/g,'')[_0x211270(0x255)]();if(!_0x166d76)return;try{const _0x25e20f=await queryVectors(_0x166d76);if(_0x25e20f[_0x211270(0x294)]===0x0)return;const _0x1c7e7e=await rerankResults(_0x25e20f,_0x166d76,settings);if(_0x1c7e7e[_0x211270(0x294)]===0x0)return;const _0x172d06=_0x1c7e7e[_0x211270(0x1f2)](_0x5391ab=>_0x5391ab[_0x211270(0x24b)])[_0x211270(0x275)]('\x0a\x0a'),_0x5b549b=settings[_0x211270(0x1df)][_0x211270(0x226)][_0x211270(0x1e2)](_0x211270(0x28a),_0x172d06);setExtensionPrompt(_0x211270(0x228),_0x5b549b,settings['injection'][_0x211270(0x1fe)],settings[_0x211270(0x1df)][_0x211270(0x1d8)],![],settings[_0x211270(0x1df)][_0x211270(0x1d0)]);}catch(_0x221d13){console[_0x211270(0x1db)]('[翰林院]\x20检索或注入时发生错误:',_0x221d13);if(settings[_0x211270(0x27e)][_0x211270(0x280)])showNotification('忆识检索失败:\x20'+_0x221d13[_0x211270(0x1da)],'error');}}