Files
ST-Amily2-Chat-Optimisation…/core/rag-processor.js
2025-08-09 17:02:25 +08:00

2 lines
37 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
'use strict';const _0x526041=_0x1970;(function(_0x51e69b,_0xf12783){const _0x54e13c=_0x1970,_0x1f3ffc=_0x51e69b();while(!![]){try{const _0x1783f8=-parseInt(_0x54e13c(0x1f1))/0x1+-parseInt(_0x54e13c(0x227))/0x2+parseInt(_0x54e13c(0x1d0))/0x3+-parseInt(_0x54e13c(0x1ee))/0x4*(parseInt(_0x54e13c(0x163))/0x5)+parseInt(_0x54e13c(0x1ed))/0x6+-parseInt(_0x54e13c(0x205))/0x7+-parseInt(_0x54e13c(0x1c2))/0x8*(-parseInt(_0x54e13c(0x1ae))/0x9);if(_0x1783f8===_0xf12783)break;else _0x1f3ffc['push'](_0x1f3ffc['shift']());}catch(_0x44ff37){_0x1f3ffc['push'](_0x1f3ffc['shift']());}}}(_0x4ceb,0x24596));import{extension_prompt_roles,setExtensionPrompt}from'/script.js';import*as _0x2504aa from'./utils/context-utils.js';import{getCollectionIdInfo}from'./utils/context-utils.js';import{defaultSettings as _0x5a4c82}from'./rag-settings.js';import*as _0x56d88c from'./ingestion-manager.js';const MODULE_NAME='hanlinyuan-rag-core',OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME=_0x526041(0x190);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 _0x4c1b12=_0x526041;context=SillyTavern['getContext']();if(!context){console[_0x4c1b12(0x1cf)](_0x4c1b12(0x210));return;}settings=getSettings();const _0x274c67=window[OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME];typeof _0x274c67===_0x4c1b12(0x216)?(window[OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME]=async function(..._0x400645){await rearrangeChat(..._0x400645),await _0x274c67(..._0x400645);},console[_0x4c1b12(0x1e2)]('翰林院忆识核心已启动\x20(V5.1-和平共存版),已代理\x20'+OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME)):(window[OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME]=rearrangeChat,console[_0x4c1b12(0x1e2)]('翰林院忆识核心已启动\x20(V5.1-借壳上市版),已注册全局函数:\x20'+OFFICIAL_REARRANGE_CHAT_FUNCTION_NAME));}async function ingestTextToHanlinyuan(_0x3f9c3e,_0x8fa57c=_0x526041(0x18c),_0x78efb4='',_0x44ec6c=()=>{},_0x39cc80=null,_0x41bf64=()=>{},_0x192890=()=>{},_0x58d5fb=null,_0x5ada64=0x0,_0x3784de=null){const _0x19e2f2=_0x526041;if(!_0x3f9c3e||!_0x3f9c3e[_0x19e2f2(0x1f6)]())return{'success':![],'error':_0x19e2f2(0x1b3)};if(!settings)return{'success':![],'error':_0x19e2f2(0x223)};try{let _0x469468=await getCollectionId();const _0x5f36a3=getCollectionIdInfo();if(_0x5f36a3['oldId']&&_0x5f36a3['oldId']===_0x469468&&_0x5f36a3['oldId']!==_0x5f36a3[_0x19e2f2(0x1bc)]){const _0x4898dc=confirm('此操作将清空旧版数据,并开始使用新版数据库。此过程不可逆,是否继续?');if(_0x4898dc)_0x41bf64(_0x19e2f2(0x1cd)+_0x5f36a3[_0x19e2f2(0x196)],_0x19e2f2(0x1ba)),await purgeStorage(_0x5f36a3[_0x19e2f2(0x196)]),_0x469468=_0x5f36a3['newId'],_0x41bf64('[翰林院-迁移]\x20旧宝库已清空将向新宝库写入数据:\x20'+_0x469468,_0x19e2f2(0x174));else return _0x41bf64('[翰林院-迁移]\x20用户取消了迁移操作。',_0x19e2f2(0x1ab)),toastr['info'](_0x19e2f2(0x1b6)),{'success':![],'error':_0x19e2f2(0x1e3)};}if(!_0x469468)throw new Error('无法确定当前忆识宝库的ID请确认角色已正确加载。');_0x41bf64(_0x19e2f2(0x1b0)+_0x469468,_0x19e2f2(0x1ab)),_0x44ec6c({'message':_0x19e2f2(0x209),'processed':0x0,'total':0x1});const _0x486a2d=splitIntoChunks(_0x3f9c3e,_0x8fa57c,{'sourceName':_0x78efb4}),_0x4b43e7=_0x486a2d[_0x19e2f2(0x21e)];if(_0x39cc80?.[_0x19e2f2(0x1c0)])throw new Error(_0x19e2f2(0x1a4));_0x41bf64('[翰林院-核心]\x20将来源\x27'+(_0x78efb4||_0x8fa57c)+_0x19e2f2(0x183)+_0x4b43e7+_0x19e2f2(0x21f),'info');if(_0x4b43e7===0x0)return{'success':!![],'count':0x0};const _0x44a451=settings[_0x19e2f2(0x161)][_0x19e2f2(0x1be)]||0x5;let _0x3792d6=_0x5ada64;for(let _0x2989eb=_0x5ada64;_0x2989eb<_0x4b43e7;_0x2989eb+=_0x44a451){if(_0x39cc80?.[_0x19e2f2(0x1c0)])throw new Error(_0x19e2f2(0x1a4));const _0x3cd83a=_0x486a2d[_0x19e2f2(0x212)](_0x2989eb,_0x2989eb+_0x44a451);_0x44ec6c({'message':'正在处理\x20'+(_0x2989eb+0x1)+'-'+(_0x2989eb+_0x3cd83a[_0x19e2f2(0x21e)])+'\x20块','processed':_0x2989eb,'total':_0x4b43e7});const _0x44635d=_0x3cd83a[_0x19e2f2(0x1da)](_0x45f97d=>_0x45f97d[_0x19e2f2(0x1b7)]),_0xbd2418=await getEmbeddings(_0x44635d,_0x39cc80);if(_0x39cc80?.['aborted'])throw new Error(_0x19e2f2(0x1a4));if(_0x3cd83a[_0x19e2f2(0x21e)]!==_0xbd2418[_0x19e2f2(0x21e)])throw new Error(_0x19e2f2(0x1c7));const _0x9393f1=_0x3cd83a['map']((_0x183122,_0x51f965)=>({..._0x183122,'vector':_0xbd2418[_0x51f965]}));await insertVectors(_0x9393f1,_0x39cc80,_0x469468),_0x3792d6+=_0x3cd83a[_0x19e2f2(0x21e)],_0x58d5fb&&_0x56d88c[_0x19e2f2(0x203)](_0x58d5fb,_0x3792d6,_0x4b43e7),_0x192890();}_0x58d5fb&&_0x56d88c[_0x19e2f2(0x180)](_0x58d5fb);if(_0x3784de){const _0x46caa5=await getCollectionId(),_0x3fbeff=_0x3784de[_0x19e2f2(0x201)]===0x0?context['chat']['length']:_0x3784de[_0x19e2f2(0x201)];settings[_0x19e2f2(0x1b5)][_0x46caa5]={'start':_0x3784de[_0x19e2f2(0x204)],'end':_0x3fbeff,'timestamp':new Date()['toISOString']()},saveSettings(),_0x41bf64(_0x19e2f2(0x1b2)+_0x46caa5+_0x19e2f2(0x1b4)+_0x3784de[_0x19e2f2(0x204)]+'-'+_0x3fbeff,_0x19e2f2(0x1ab));}return _0x41bf64(_0x19e2f2(0x17d)+_0x3792d6+_0x19e2f2(0x20d),_0x19e2f2(0x174)),{'success':!![],'count':_0x3792d6};}catch(_0x18429b){if(_0x18429b[_0x19e2f2(0x170)]==='AbortError'){_0x41bf64(_0x19e2f2(0x168),_0x19e2f2(0x1ba));throw _0x18429b;}return console[_0x19e2f2(0x1cf)]('[翰林院-核心]\x20ingestTextToHanlinyuan\x20失败:',_0x18429b),_0x41bf64(_0x19e2f2(0x18a)+_0x18429b[_0x19e2f2(0x167)],_0x19e2f2(0x1cf)),{'success':![],'error':_0x18429b[_0x19e2f2(0x167)]};}}function _0x1970(_0x3344f7,_0x5a0908){const _0x4ceb23=_0x4ceb();return _0x1970=function(_0x1970fd,_0x92c403){_0x1970fd=_0x1970fd-0x160;let _0x596d6a=_0x4ceb23[_0x1970fd];return _0x596d6a;},_0x1970(_0x3344f7,_0x5a0908);}function getSettings(){const _0x11b61e=_0x526041;if(!context||!context[_0x11b61e(0x1a5)])return structuredClone(_0x5a4c82);let _0x2eaaf9=context[_0x11b61e(0x1a5)][MODULE_NAME];!_0x2eaaf9&&(_0x2eaaf9={},context[_0x11b61e(0x1a5)][MODULE_NAME]=_0x2eaaf9);_0x2eaaf9[_0x11b61e(0x1b5)]===undefined&&(_0x2eaaf9[_0x11b61e(0x1b5)]={});for(const _0xd70888 in _0x5a4c82){if(_0x2eaaf9[_0xd70888]===undefined)_0x2eaaf9[_0xd70888]=structuredClone(_0x5a4c82[_0xd70888]);else{if(typeof _0x5a4c82[_0xd70888]===_0x11b61e(0x16f)&&!Array[_0x11b61e(0x1e8)](_0x5a4c82[_0xd70888])&&_0x5a4c82[_0xd70888]!==null)for(const _0x346a41 in _0x5a4c82[_0xd70888]){_0x2eaaf9[_0xd70888][_0x346a41]===undefined&&(_0x2eaaf9[_0xd70888][_0x346a41]=_0x5a4c82[_0xd70888][_0x346a41]);}}}return _0x2eaaf9;}function saveSettings(){const _0x3c31af=_0x526041;if(context)context[_0x3c31af(0x200)]();}function resetSettings(){const _0x2474d6=_0x526041;context&&(context[_0x2474d6(0x1a5)][MODULE_NAME]=structuredClone(_0x5a4c82),saveSettings());}function showNotification(_0x13fac3,_0x5791ea=_0x526041(0x1ab)){toastr[_0x5791ea](_0x13fac3);}function getTagForSource(_0xba4291){const _0x1341d1=_0x526041;switch(_0xba4291){case _0x1341d1(0x1de):return _0x1341d1(0x1a9);case _0x1341d1(0x1d3):return _0x1341d1(0x19c);case _0x1341d1(0x18c):return _0x1341d1(0x228);case _0x1341d1(0x1a1):return _0x1341d1(0x1d7);default:return'资料';}}function splitIntoChunks(_0x5ad0f2,_0x504b24,_0x3c71b1={}){const _0x30998b=_0x526041;switch(_0x504b24){case _0x30998b(0x1a1):return _chunkForNovel(_0x5ad0f2,_0x3c71b1);case _0x30998b(0x1de):return _chunkForChatHistory(_0x5ad0f2,_0x3c71b1);case _0x30998b(0x1d3):return _chunkForLorebook(_0x5ad0f2,_0x3c71b1);case _0x30998b(0x18c):return _chunkForManual(_0x5ad0f2,_0x3c71b1);default:console[_0x30998b(0x1ba)](_0x30998b(0x18e)+_0x504b24+'\x27使用通用分块逻辑。');return _chunkForManual(_0x5ad0f2,{..._0x3c71b1,'sourceName':_0x3c71b1['sourceName']||_0x30998b(0x1bf)});}}function _chunkForNovel(_0x5b9c6c,_0x247d7b){const _0x52e2e7=_0x526041,{chunkSize:_0x52c945,overlap:_0x380466}=settings['advanced'],{sourceName:sourceName='小说'}=_0x247d7b,_0x554991=[];if(!_0x5b9c6c||_0x52c945<=0x0)return _0x554991;const _0x473ed5=/(第\s*[一二三四五六七八九十百千万零\d]+\s*卷)/gim,_0x1de209=/(第\s*[一二三四五六七八九十百千万零\d]+\s*[章回节部])|^(Chapter\s+\d+)/gim;let _0x326f7e=0x0;const _0x4e6981=_0x5b9c6c[_0x52e2e7(0x1dc)]('\x0a');let _0x145ec4=_0x52e2e7(0x1aa),_0x54d59d='第1章',_0x3bb213=[];function _0x425c4d(){const _0x26b17f=_0x52e2e7;if(_0x3bb213[_0x26b17f(0x21e)]===0x0)return;const _0x507960=_0x3bb213[_0x26b17f(0x1a7)]('\x0a');let _0x2e3a8c=0x0,_0x24e137=0x1;while(_0x2e3a8c<_0x507960[_0x26b17f(0x21e)]){const _0x26447d=Math[_0x26b17f(0x1a8)](_0x2e3a8c+_0x52c945,_0x507960['length']),_0x1d127a=_0x507960[_0x26b17f(0x21c)](_0x2e3a8c,_0x26447d);if(_0x1d127a['trim']()[_0x26b17f(0x21e)]>0x0){const _0x51ef90={'source':_0x26b17f(0x1a1),'sourceName':sourceName,'timestamp':new Date()[_0x26b17f(0x199)](),'globalIndex':_0x326f7e++,'volume':_0x145ec4,'chapter':_0x54d59d,'section':_0x24e137},_0x18766c=getTagForSource(_0x26b17f(0x1a1)),_0x36a9d8=_0x26b17f(0x213)+sourceName+',\x20'+_0x145ec4+',\x20'+_0x54d59d+_0x26b17f(0x202)+_0x24e137+'节]',_0x461c7c='<'+_0x18766c+'>\x0a'+_0x36a9d8+'\x0a'+_0x1d127a+'\x0a</'+_0x18766c+'>';_0x554991['push']({'text':_0x461c7c,'metadata':_0x51ef90}),_0x24e137++;}_0x2e3a8c+=_0x52c945-_0x380466;if(_0x2e3a8c>=_0x507960[_0x26b17f(0x21e)])break;}_0x3bb213=[];}for(const _0x576773 of _0x4e6981){const _0x547ced=_0x576773['trim']();if(_0x473ed5[_0x52e2e7(0x1bd)](_0x547ced))_0x425c4d(),_0x145ec4=_0x547ced,_0x54d59d='第1章';else _0x1de209['test'](_0x547ced)?(_0x425c4d(),_0x54d59d=_0x547ced):_0x3bb213['push'](_0x576773);}_0x425c4d();if(_0x554991['length']===0x0&&_0x5b9c6c['length']>0x0){let _0x3998f1=0x0,_0x3612df=0x1;while(_0x3998f1<_0x5b9c6c[_0x52e2e7(0x21e)]){const _0x1f5e2c=Math['min'](_0x3998f1+_0x52c945,_0x5b9c6c[_0x52e2e7(0x21e)]),_0x48025f=_0x5b9c6c[_0x52e2e7(0x21c)](_0x3998f1,_0x1f5e2c),_0x45525c={'source':'novel','sourceName':sourceName,'timestamp':new Date()[_0x52e2e7(0x199)](),'globalIndex':_0x554991[_0x52e2e7(0x21e)],'volume':_0x52e2e7(0x1aa),'chapter':_0x52e2e7(0x224),'section':_0x3612df},_0x3692d8=getTagForSource(_0x52e2e7(0x1a1)),_0x426405=_0x52e2e7(0x213)+sourceName+_0x52e2e7(0x222)+_0x3612df+'节]',_0x3da4e4='<'+_0x3692d8+'>\x0a'+_0x426405+'\x0a'+_0x48025f+'\x0a</'+_0x3692d8+'>';_0x554991[_0x52e2e7(0x184)]({'text':_0x3da4e4,'metadata':_0x45525c}),_0x3612df++,_0x3998f1+=_0x52c945-_0x380466;}}return _0x554991;}function _chunkForChatHistory(_0x5369d3,_0x5e684f){const _0x3725dd=_0x526041,{chunkSize:_0xccdae5,overlap:_0x370130}=settings['advanced'],{floor:_0x56f416,is_user:_0x3f16bd,timestamp:_0x561c8a}=_0x5e684f,_0x35f679=[];if(!_0x5369d3||_0xccdae5<=0x0)return _0x35f679;let _0x37ec93=0x1,_0x4386fb=0x0;while(_0x4386fb<_0x5369d3[_0x3725dd(0x21e)]){const _0x23df3b=Math[_0x3725dd(0x1a8)](_0x4386fb+_0xccdae5,_0x5369d3['length']),_0x5d8146=_0x5369d3[_0x3725dd(0x21c)](_0x4386fb,_0x23df3b),_0x4a2073='[来源:\x20聊天记录,\x20楼层:\x20#'+_0x56f416+_0x3725dd(0x202)+_0x37ec93+_0x3725dd(0x187),_0x407282=getTagForSource(_0x3725dd(0x1de)),_0x42e979='<'+_0x407282+'>\x0a'+_0x4a2073+'\x0a'+_0x5d8146+_0x3725dd(0x20a)+_0x407282+'>';_0x35f679[_0x3725dd(0x184)]({'text':_0x42e979,'metadata':{'source':_0x3725dd(0x1de),'sourceName':_0x3725dd(0x16c)+_0x56f416,'floor':_0x56f416,'part':_0x37ec93,'is_user':_0x3f16bd,'timestamp':_0x561c8a}}),_0x37ec93++,_0x4386fb+=_0xccdae5-_0x370130;if(_0x4386fb>=_0x5369d3[_0x3725dd(0x21e)])break;}return _0x35f679;}function _chunkForLorebook(_0x4dd0d9,_0x39a4df){const _0x3bb852=_0x526041,{chunkSize:_0x334e0f,overlap:_0x28bc58}=settings[_0x3bb852(0x211)],{sourceName:sourceName='世界书条目'}=_0x39a4df,_0x32d7a2=[];if(!_0x4dd0d9||_0x334e0f<=0x0)return _0x32d7a2;let _0x2b45cd=0x1,_0x343e26=0x0;while(_0x343e26<_0x4dd0d9[_0x3bb852(0x21e)]){const _0x40d962=Math['min'](_0x343e26+_0x334e0f,_0x4dd0d9[_0x3bb852(0x21e)]),_0x47f0d8=_0x4dd0d9['substring'](_0x343e26,_0x40d962),_0x30c1c6='[来源:\x20世界书,\x20条目:\x20'+sourceName+',\x20第'+_0x2b45cd+_0x3bb852(0x187),_0x8a58c3=getTagForSource('lorebook'),_0x87dd9e='<'+_0x8a58c3+'>\x0a'+_0x30c1c6+'\x0a'+_0x47f0d8+'\x0a</'+_0x8a58c3+'>';_0x32d7a2[_0x3bb852(0x184)]({'text':_0x87dd9e,'metadata':{'source':_0x3bb852(0x1d3),'sourceName':sourceName,'part':_0x2b45cd,'timestamp':new Date()[_0x3bb852(0x199)]()}}),_0x2b45cd++,_0x343e26+=_0x334e0f-_0x28bc58;if(_0x343e26>=_0x4dd0d9[_0x3bb852(0x21e)])break;}return _0x32d7a2;}function _chunkForManual(_0x3657f6,_0x34301d){const _0x4c77d0=_0x526041,{chunkSize:_0x377a50,overlap:_0xb54eb7}=settings['advanced'],{sourceName:sourceName='手动录入'}=_0x34301d,_0x5767a8=[];if(!_0x3657f6||_0x377a50<=0x0)return _0x5767a8;const _0x32311a=new Date(),_0x150ea4=_0x32311a['toLocaleString']('zh-CN');let _0x148be4=0x1,_0x398a00=0x0;while(_0x398a00<_0x3657f6['length']){const _0x23b378=Math[_0x4c77d0(0x1a8)](_0x398a00+_0x377a50,_0x3657f6[_0x4c77d0(0x21e)]),_0xa0e66d=_0x3657f6[_0x4c77d0(0x21c)](_0x398a00,_0x23b378),_0x1d80a9=_0x4c77d0(0x213)+sourceName+_0x4c77d0(0x20e)+_0x150ea4+',\x20第'+_0x148be4+_0x4c77d0(0x187),_0x3fe900=getTagForSource(_0x4c77d0(0x18c)),_0x3f9fa7='<'+_0x3fe900+'>\x0a'+_0x1d80a9+'\x0a'+_0xa0e66d+'\x0a</'+_0x3fe900+'>';_0x5767a8[_0x4c77d0(0x184)]({'text':_0x3f9fa7,'metadata':{'source':_0x4c77d0(0x18c),'sourceName':sourceName,'part':_0x148be4,'timestamp':_0x32311a['toISOString']()}}),_0x148be4++,_0x398a00+=_0x377a50-_0xb54eb7;if(_0x398a00>=_0x3657f6[_0x4c77d0(0x21e)])break;}return _0x5767a8;}import{getCollectionId as _0xcebab3,getCharacterName}from'./utils/context-utils.js';async function getCollectionId(){return lockedCollectionId||await _0xcebab3();}async function toggleSessionLock(){return lockedCollectionId?(lockedCollectionId=null,![]):(lockedCollectionId=await _0xcebab3(),!![]);}function isSessionLocked(){return lockedCollectionId!==null;}function getLockedSessionInfo(){const _0x55e28d=_0x526041;if(!lockedCollectionId)return null;return{'id':lockedCollectionId,'name':_0x55e28d(0x1e0)+lockedCollectionId['substring'](0x0,0x8)+_0x55e28d(0x19d)};}function generateHash(_0x26f971){const _0x5bb3aa=_0x526041;let _0x327ef7=0x0;for(let _0x19b00b=0x0;_0x19b00b<_0x26f971[_0x5bb3aa(0x21e)];_0x19b00b++){const _0x384ba7=_0x26f971['charCodeAt'](_0x19b00b);_0x327ef7=(_0x327ef7<<0x5)-_0x327ef7+_0x384ba7,_0x327ef7=_0x327ef7&_0x327ef7;}return Math['abs'](_0x327ef7)[_0x5bb3aa(0x194)](0x24);}function getSanitizedBaseUrl(_0x5dbfa4){const _0x442ae0=_0x526041;let _0x576ba4=_0x5dbfa4[_0x442ae0(0x1f6)]();return _0x576ba4[_0x442ae0(0x17a)]('/')&&(_0x576ba4=_0x576ba4[_0x442ae0(0x212)](0x0,-0x1)),_0x576ba4[_0x442ae0(0x17a)](_0x442ae0(0x188))&&(_0x576ba4=_0x576ba4[_0x442ae0(0x212)](0x0,-0x3)),_0x576ba4[_0x442ae0(0x17a)](_0x442ae0(0x208))&&(_0x576ba4=_0x576ba4['slice'](0x0,-0xb)),_0x576ba4;}function _0x4ceb(){const _0x12ef69=['oldId','model','unknown','toISOString','url','/api/vector/query','世界书','...)','getRequestHeaders','无法确定当前忆识宝库的ID请确认角色已正确加载。','宝库查询API错误\x20','novel','[翰林院-日志]\x20统计目标集合ID:\x20','外部Rerank完成','AbortError','extensionSettings','send_date','join','min','聊天记录','第1卷','info','condensation','/api/vector/list','182961khxbms','\x20个条目。','[翰林院-核心]\x20已锁定忆识宝库ID:\x20','https://api.openai.com','[翰林院-核心]\x20已为宝库\x20','输入文本为空','\x20记录凝识范围:\x20','condensationHistory','操作已取消。','text','data','json','warn','\x20-\x20楼层\x20#','newId','test','batchSize','未知来源','aborted','application/json','232hHefGP','source','index','webllm','[翰林院-日志]\x20/api/vector/query\x20响应状态:\x20','文本块和向量数量不匹配','filter','max','[翰林院-日志]\x20/api/vector/list\x20响应状态:\x20','depth','[翰林院-日志]\x20/api/vector/purge\x20响应状态:\x20','[翰林院-迁移]\x20用户确认迁移正在清空旧宝库:\x20','\x20条消息分解为\x20','error','440658xKQGTg','rerank','/rerank','lorebook','messageTypes','\x20条结果。','user','小说录入','[翰林院]\x20检索或注入时发生错误:','GET','map','[翰林院-核心]\x20聊天记录凝识失败:\x20','split','floor','chat_history','[翰林院-Rerank]\x20正在从\x20','(已锁定:\x20','api-key','log','用户取消了迁移操作','):\x20','API\x20URL\x20或\x20Key\x20未提供。','[翰林院-Rerank]\x20开始外部API重排序...','forEach','isArray','mes','embeddingModel','sort','now','180492iHusqV','292qSwKvJ','Rerank模型API的响应格式无效:\x20未找到\x20\x27data\x27\x20数组。','Rerank失败:\x20','139130TpovqH','[翰林院-日志]\x20查询成功返回\x20','hashes','[翰林院-日志]\x20获取向量列表API错误:','getTime','trim','metadata','[翰林院-迁移]\x20旧宝库已清空将向新宝库写入数据:\x20','status','神力获取失败\x20','findIndex','Rerank\x20API\x20URL\x20或\x20Key\x20未提供。','\x20获取模型列表...','replace','position','saveSettingsDebounced','end',',\x20第','saveProgress','start','960190nnFgzM','template','results','/embeddings','正在智能分块...','\x0a</','/v1/rerank','[翰林院-日志]\x20宝库查询API错误:','\x20个向量条目。',',\x20向量化录入时间:\x20','[翰林院-日志]\x20清空目标集合ID:\x20','[翰林院]\x20未能获取SillyTavern上下文初始化失败。','advanced','slice','[来源:\x20','enabled','[翰林院-日志]\x20清空宝库API调用成功。','function','top_n','[翰林院-核心]\x20聊天记录凝识完成成功插入\x20','is_user','[翰林院-核心]\x20processCondensation\x20失败:','apiKey','substring','notify','length','\x20个块。','HANLINYUAN_RAG','/api/vector/purge',',\x20第1卷,\x20第1章,\x20第','核心未初始化','第1章','azure','warning','405100SzheZf','手动录入','此操作将清空旧版数据,并开始使用新版数据库。此过程不可逆,是否继续?','No\x20messages\x20to\x20process.','[翰林院]\x20正在从\x20','[翰林院-日志]\x20开始获取向量总数...','score','retrieval','maxResults','9505vUWADr','[翰林院-核心]\x20已将\x20','custom','quiet','message','[翰林院-核心]\x20文本录入任务被用户中止。','[翰林院-日志]\x20开始清空宝库...','\x20个知识块准备入库。','[翰林院-Rerank]\x20开始元数据加权最终排序...','聊天记录\x20#','Authorization','[翰林院-Rerank]\x20元数据加权排序完成。','object','name','matchThreshold','[翰林院-日志]\x20发送到\x20/api/vector/query\x20的请求体:','injection','success','POST','relevance_score','Rerank\x20API\x20请求失败\x20(','[翰林院-日志]\x20发送到\x20/api/vector/purge\x20的请求体:','[翰林院-日志]\x20/api/vector/query\x20响应内容:','endsWith','[翰林院-日志]\x20清空宝库API错误:','chat','[翰林院-核心]\x20成功插入\x20','/v1/embeddings',']\x20的消息已成功凝识。','clearJob','[翰林院-日志]\x20开始向量查询\x20(采用最终API交互模式)...','rerank_score','\x27的文本分割成\x20','push','Bearer\x20','embedding','部分]','/v1','/api/vector/insert','[翰林院-核心]\x20文本录入失败:\x20','find','manual','模型API的响应格式无效:\x20未找到\x20\x27data\x27\x20数组。','[翰林院-分块]\x20未知的来源类型\x20\x27','stringify','vectors_rearrangeChat','/v1/models','在insertVectors内部也无法获取collectionId','凝识之权未开启','toString','final_score'];_0x4ceb=function(){return _0x12ef69;};return _0x4ceb();}async function fetchEmbeddingModels(){const _0x169165=_0x526041,{apiKey:_0x17e28a}=settings[_0x169165(0x161)],_0x4af6f=getApiEndpointUrl(!![]);if(!_0x4af6f||!_0x17e28a)throw new Error(_0x169165(0x1e5));const _0xccfc6e=getSanitizedBaseUrl(_0x4af6f),_0x3434f5=_0xccfc6e+'/v1/models';console['log'](_0x169165(0x22b)+_0x3434f5+_0x169165(0x1fd));const _0x1c356f=await fetch(_0x3434f5,{'method':_0x169165(0x1d9),'headers':getApiHeaders()});if(!_0x1c356f['ok']){const _0x3084f2=await _0x1c356f['text']();throw new Error('获取模型列表失败\x20('+_0x1c356f['status']+_0x169165(0x1e4)+_0x3084f2);}const _0x12689d=await _0x1c356f[_0x169165(0x1b9)]();if(!_0x12689d['data']||!Array['isArray'](_0x12689d[_0x169165(0x1b8)]))throw new Error(_0x169165(0x18d));return _0x12689d[_0x169165(0x1b8)][_0x169165(0x1da)](_0x58be67=>_0x58be67['id'])[_0x169165(0x1eb)]();}function getRerankBaseUrl(_0x431a33){const _0x55aada=_0x526041;let _0x5557df=_0x431a33['trim']();return _0x5557df[_0x55aada(0x17a)]('/')&&(_0x5557df=_0x5557df[_0x55aada(0x212)](0x0,-0x1)),_0x5557df[_0x55aada(0x17a)]('/v1')&&(_0x5557df=_0x5557df[_0x55aada(0x212)](0x0,-0x3)),_0x5557df[_0x55aada(0x17a)](_0x55aada(0x1d2))&&(_0x5557df=_0x5557df['slice'](0x0,-0x7)),_0x5557df;}async function fetchRerankModels(){const _0x5e7424=_0x526041,{url:_0x4a1725,apiKey:_0x316f5c}=settings[_0x5e7424(0x1d1)];if(!_0x4a1725||!_0x316f5c)throw new Error(_0x5e7424(0x1fc));const _0x3b930b=getRerankBaseUrl(_0x4a1725),_0x32f52c=_0x3b930b+_0x5e7424(0x191);console[_0x5e7424(0x1e2)](_0x5e7424(0x1df)+_0x32f52c+_0x5e7424(0x1fd));const _0x3fdc1b=await fetch(_0x32f52c,{'method':_0x5e7424(0x1d9),'headers':{'Authorization':_0x5e7424(0x185)+_0x316f5c}});if(!_0x3fdc1b['ok']){const _0x58fd80=await _0x3fdc1b['text']();throw new Error('获取Rerank模型列表失败\x20('+_0x3fdc1b[_0x5e7424(0x1f9)]+_0x5e7424(0x1e4)+_0x58fd80);}const _0x3c78b7=await _0x3fdc1b[_0x5e7424(0x1b9)]();if(!_0x3c78b7['data']||!Array[_0x5e7424(0x1e8)](_0x3c78b7[_0x5e7424(0x1b8)]))throw new Error(_0x5e7424(0x1ef));return _0x3c78b7[_0x5e7424(0x1b8)][_0x5e7424(0x1da)](_0x33ec3f=>_0x33ec3f['id'])[_0x5e7424(0x1eb)]();}function getApiEndpointUrl(_0x242de5=![]){const _0x24ea16=_0x526041,{apiEndpoint:_0x184717,customApiUrl:_0x89a3a1}=settings[_0x24ea16(0x161)];let _0x40b264;switch(_0x184717){case'openai':_0x40b264=_0x24ea16(0x1b1);break;case _0x24ea16(0x225):case _0x24ea16(0x165):_0x40b264=_0x89a3a1;break;default:_0x40b264='https://api.openai.com';break;}if(_0x242de5)return _0x40b264;return getSanitizedBaseUrl(_0x40b264)+_0x24ea16(0x17e);}function getApiHeaders(){const _0x509ddf=_0x526041,_0x3ad74c={'Content-Type':_0x509ddf(0x1c1)},{apiKey:_0x3b94b3,apiEndpoint:_0x4a4871}=settings[_0x509ddf(0x161)];switch(_0x4a4871){case'openai':case _0x509ddf(0x165):_0x3ad74c[_0x509ddf(0x16d)]=_0x509ddf(0x185)+_0x3b94b3;break;case _0x509ddf(0x225):_0x3ad74c[_0x509ddf(0x1e1)]=_0x3b94b3;break;}return _0x3ad74c;}async function getEmbeddings(_0xa75b90,_0x31a90a=null){const _0x390a6e=_0x526041;if(!settings[_0x390a6e(0x161)]['apiKey'])throw new Error('请先配置API\x20Key');const _0x1ce9ca=getApiEndpointUrl(),_0xf7deb8=getApiHeaders(),_0x36fa81=settings[_0x390a6e(0x161)][_0x390a6e(0x1ea)],_0x2070c8=settings['retrieval'][_0x390a6e(0x1be)]||0x5,_0x322d4c=[];for(let _0x4c35d4=0x0;_0x4c35d4<_0xa75b90[_0x390a6e(0x21e)];_0x4c35d4+=_0x2070c8){if(_0x31a90a?.[_0x390a6e(0x1c0)])throw new Error(_0x390a6e(0x1a4));const _0x39fec0=_0xa75b90[_0x390a6e(0x212)](_0x4c35d4,_0x4c35d4+_0x2070c8),_0x5b3fb7=await fetch(_0x1ce9ca,{'method':_0x390a6e(0x175),'headers':_0xf7deb8,'body':JSON[_0x390a6e(0x18f)]({'input':_0x39fec0,'model':_0x36fa81}),'signal':_0x31a90a});if(!_0x5b3fb7['ok']){const _0x20015b=await _0x5b3fb7[_0x390a6e(0x1b7)]();throw new Error(_0x390a6e(0x1fa)+_0x5b3fb7[_0x390a6e(0x1f9)]+':\x20'+_0x20015b);}const _0x43b08d=await _0x5b3fb7[_0x390a6e(0x1b9)]();_0x322d4c[_0x390a6e(0x184)](..._0x43b08d[_0x390a6e(0x1b8)][_0x390a6e(0x1da)](_0x4c394d=>_0x4c394d[_0x390a6e(0x186)])),_0x4c35d4+_0x2070c8<_0xa75b90[_0x390a6e(0x21e)]&&await new Promise(_0x2d8c41=>setTimeout(_0x2d8c41,0xc8));}return _0x322d4c;}async function queryVectors(_0x4a39e0){const _0x18fc11=_0x526041;console[_0x18fc11(0x1e2)](_0x18fc11(0x181));const _0x565c7a=await getCollectionId();console['log']('[翰林院-日志]\x20查询目标集合ID:\x20'+_0x565c7a);const _0x9f8d94=(await getEmbeddings([_0x4a39e0]))[0x0],_0x56f7ee={'collectionId':_0x565c7a,'searchText':_0x4a39e0,'topK':settings[_0x18fc11(0x211)][_0x18fc11(0x162)],'threshold':settings[_0x18fc11(0x211)][_0x18fc11(0x171)],'source':_0x18fc11(0x1c5),'embeddings':{[_0x4a39e0]:_0x9f8d94}};console[_0x18fc11(0x1e2)](_0x18fc11(0x172),JSON[_0x18fc11(0x18f)](_0x56f7ee,null,0x2));const _0x2d1366=await fetch(_0x18fc11(0x19b),{'method':_0x18fc11(0x175),'headers':context[_0x18fc11(0x19e)](),'body':JSON[_0x18fc11(0x18f)](_0x56f7ee)});console[_0x18fc11(0x1e2)](_0x18fc11(0x1c6)+_0x2d1366[_0x18fc11(0x1f9)]);if(!_0x2d1366['ok']){const _0x2d130b=await _0x2d1366['text']();console[_0x18fc11(0x1cf)](_0x18fc11(0x20c),_0x2d130b);throw new Error(_0x18fc11(0x1a0)+_0x2d1366[_0x18fc11(0x1f9)]+':\x20'+_0x2d130b);}const _0x2a20fe=await _0x2d1366[_0x18fc11(0x1b9)]();console[_0x18fc11(0x1e2)](_0x18fc11(0x179),_0x2a20fe);const _0x4402f8=_0x2a20fe['metadata']||_0x2a20fe[_0x18fc11(0x207)]||_0x2a20fe[_0x18fc11(0x1b8)]||[];return console[_0x18fc11(0x1e2)](_0x18fc11(0x1f2)+_0x4402f8[_0x18fc11(0x21e)]+_0x18fc11(0x1d5)),_0x4402f8;}async function insertVectors(_0x563d4f,_0x897d0c=null,_0x214fcb){const _0x31a3f9=_0x526041;if(!_0x214fcb){console[_0x31a3f9(0x1cf)]('[翰林院-核心]\x20insertVectors被调用时未提供collectionId'),_0x214fcb=await getCollectionId();if(!_0x214fcb)throw new Error(_0x31a3f9(0x192));}if(_0x563d4f['length']===0x0)return{'success':!![],'count':0x0};const _0x2aabf7=_0x563d4f[_0x31a3f9(0x1da)]((_0x2ae452,_0x252eb1)=>({'hash':generateHash(_0x2ae452[_0x31a3f9(0x1b7)]+Date[_0x31a3f9(0x1ec)]()+_0x252eb1),'text':_0x2ae452['text'],'metadata':_0x2ae452[_0x31a3f9(0x1f7)]||{'source':_0x31a3f9(0x198),'timestamp':new Date()[_0x31a3f9(0x199)]()}})),_0xe76354=_0x2aabf7['reduce']((_0x5d244c,_0x49a36c,_0x5b1720)=>{return _0x5d244c[_0x49a36c['text']]=_0x563d4f[_0x5b1720]['vector'],_0x5d244c;},{}),_0xd332a0={'collectionId':_0x214fcb,'items':_0x2aabf7,'source':'webllm','embeddings':_0xe76354},_0xa6d459=await fetch(_0x31a3f9(0x189),{'method':'POST','headers':context['getRequestHeaders'](),'body':JSON[_0x31a3f9(0x18f)](_0xd332a0),'signal':_0x897d0c});if(!_0xa6d459['ok']){const _0x3fdfa9=await _0xa6d459[_0x31a3f9(0x1b7)]();console[_0x31a3f9(0x1cf)]('[翰林院-日志]\x20忆识存入API错误:',_0x3fdfa9);throw new Error('忆识存入API错误\x20'+_0xa6d459['status']+':\x20'+_0x3fdfa9);}return{'success':!![],'count':_0x2aabf7['length']};}async function testApiConnection(){await getEmbeddings(['测试连接']);}async function getVectorCount(){const _0x4eda44=_0x526041;console[_0x4eda44(0x1e2)](_0x4eda44(0x22c));const _0x60b970=await getCollectionId();console[_0x4eda44(0x1e2)](_0x4eda44(0x1a2)+_0x60b970);const _0x26de24={'collectionId':_0x60b970,'source':_0x4eda44(0x1c5),'embeddings':{}};console['log']('[翰林院-日志]\x20发送到\x20/api/vector/list\x20的请求体:',JSON[_0x4eda44(0x18f)](_0x26de24,null,0x2));const _0x4ed474=await fetch(_0x4eda44(0x1ad),{'method':_0x4eda44(0x175),'headers':context[_0x4eda44(0x19e)](),'body':JSON[_0x4eda44(0x18f)](_0x26de24)});console[_0x4eda44(0x1e2)](_0x4eda44(0x1ca)+_0x4ed474[_0x4eda44(0x1f9)]);if(!_0x4ed474['ok']){const _0x4503cc=await _0x4ed474[_0x4eda44(0x1b7)]();return console['error'](_0x4eda44(0x1f4),_0x4503cc),0x0;}const _0x102219=await _0x4ed474['json']();let _0x432c62=0x0;if(Array['isArray'](_0x102219))_0x432c62=_0x102219['length'];else _0x102219&&_0x102219[_0x4eda44(0x1f3)]&&(_0x432c62=_0x102219['hashes']['length']);return console['log']('[翰林院-日志]\x20统计成功向量总数:\x20'+_0x432c62),_0x432c62;}async function purgeStorage(_0x7483a3=null){const _0x32ebdf=_0x526041;console[_0x32ebdf(0x1e2)](_0x32ebdf(0x169));const _0x56a002=_0x7483a3||await getCollectionId();if(!_0x56a002)return console['error']('[翰林院-日志]\x20无法确定要清空的目标集合ID。'),toastr[_0x32ebdf(0x1cf)]('无法确定要清空的目标宝库。'),![];console[_0x32ebdf(0x1e2)](_0x32ebdf(0x20f)+_0x56a002);const _0x8a7aeb={'collectionId':_0x56a002};console['log'](_0x32ebdf(0x178),JSON[_0x32ebdf(0x18f)](_0x8a7aeb,null,0x2));const _0x1e6052=await fetch(_0x32ebdf(0x221),{'method':_0x32ebdf(0x175),'headers':context[_0x32ebdf(0x19e)](),'body':JSON['stringify'](_0x8a7aeb)});console['log'](_0x32ebdf(0x1cc)+_0x1e6052['status']);if(!_0x1e6052['ok']){const _0x8ceac=await _0x1e6052[_0x32ebdf(0x1b7)]();console['error'](_0x32ebdf(0x17b),_0x8ceac);}else console[_0x32ebdf(0x1e2)](_0x32ebdf(0x215));return _0x1e6052['ok'];}function getMessagesForCondensation(_0x8dc88a=null){const _0x26575f=_0x526041;if(!settings[_0x26575f(0x1ac)]['enabled'])return showNotification(_0x26575f(0x193),_0x26575f(0x226)),[];const {layerStart:_0x15f582,layerEnd:_0x29de38}=settings[_0x26575f(0x1ac)],_0x128023=_0x8dc88a||settings[_0x26575f(0x1ac)][_0x26575f(0x1d4)],_0x3ebc6a=context[_0x26575f(0x17c)][_0x26575f(0x21e)],_0x5a1f6c=Math[_0x26575f(0x1c9)](0x0,_0x15f582-0x1),_0x48bf0f=_0x29de38===0x0||_0x29de38>_0x3ebc6a?_0x3ebc6a:Math[_0x26575f(0x1a8)](_0x3ebc6a,_0x29de38),_0x3dd6aa=context[_0x26575f(0x17c)]['slice'](_0x5a1f6c,_0x48bf0f);return _0x3dd6aa[_0x26575f(0x1c8)](_0x1cd6df=>{const _0x320d2c=_0x26575f,_0x46db71=_0x1cd6df[_0x320d2c(0x219)]===!![],_0x5a38b7=_0x1cd6df[_0x320d2c(0x219)]===![];if(!_0x1cd6df[_0x320d2c(0x1e9)]||!_0x1cd6df[_0x320d2c(0x1e9)][_0x320d2c(0x1f6)]())return![];return _0x128023[_0x320d2c(0x1d6)]&&_0x46db71||_0x128023['ai']&&_0x5a38b7;});}async function processCondensation(_0x96727d,_0x5e1d4d=()=>{},_0x25d789=null){const _0x49cc0c=_0x526041;if(!_0x96727d||_0x96727d[_0x49cc0c(0x21e)]===0x0)return{'success':![],'error':_0x49cc0c(0x22a)};try{let _0x52f561=await getCollectionId();const _0x3c8e31=getCollectionIdInfo();if(_0x3c8e31[_0x49cc0c(0x196)]&&_0x3c8e31['oldId']===_0x52f561&&_0x3c8e31['oldId']!==_0x3c8e31[_0x49cc0c(0x1bc)]){const _0x546b67=confirm(_0x49cc0c(0x229));if(_0x546b67)_0x5e1d4d(_0x49cc0c(0x1cd)+_0x3c8e31[_0x49cc0c(0x196)],_0x49cc0c(0x1ba)),await purgeStorage(_0x3c8e31[_0x49cc0c(0x196)]),_0x52f561=_0x3c8e31[_0x49cc0c(0x1bc)],_0x5e1d4d(_0x49cc0c(0x1f8)+_0x52f561,_0x49cc0c(0x174));else return _0x5e1d4d('[翰林院-迁移]\x20用户取消了迁移操作。',_0x49cc0c(0x1ab)),toastr[_0x49cc0c(0x1ab)](_0x49cc0c(0x1b6)),{'success':![],'error':_0x49cc0c(0x1e3)};}if(!_0x52f561)throw new Error(_0x49cc0c(0x19f));_0x5e1d4d('[翰林院-核心]\x20凝识任务已锁定忆识宝库ID:\x20'+_0x52f561,_0x49cc0c(0x1ab));const _0x4119a2=[],_0x399be6=context[_0x49cc0c(0x17c)];for(const _0x1efcbd of _0x96727d){const _0x5d79a9=(_0x1efcbd[_0x49cc0c(0x1e9)]||'')[_0x49cc0c(0x1fe)](/<[^>]*>/g,'')['trim']();if(_0x5d79a9[_0x49cc0c(0x21e)]===0x0)continue;let _0x1791d8;if(_0x1efcbd[_0x49cc0c(0x1dd)]!==undefined&&_0x1efcbd['floor']!==null)_0x1791d8=_0x1efcbd['floor'];else{const _0x262eaa=_0x399be6['findIndex'](_0x3f9cb3=>_0x3f9cb3===_0x1efcbd);_0x1791d8=_0x262eaa!==-0x1?_0x262eaa+0x1:-0x1;}const _0x5a717c=new Date(_0x1efcbd[_0x49cc0c(0x1a6)]),_0x348358=isNaN(_0x5a717c[_0x49cc0c(0x1f5)]())?new Date()[_0x49cc0c(0x199)]():_0x5a717c['toISOString'](),_0x2c678f=splitIntoChunks(_0x5d79a9,_0x49cc0c(0x1de),{'floor':_0x1791d8,'is_user':_0x1efcbd['is_user'],'timestamp':_0x348358});_0x4119a2[_0x49cc0c(0x184)](..._0x2c678f);}if(_0x4119a2[_0x49cc0c(0x21e)]===0x0)return{'success':!![],'count':0x0};_0x5e1d4d(_0x49cc0c(0x164)+_0x96727d[_0x49cc0c(0x21e)]+_0x49cc0c(0x1ce)+_0x4119a2[_0x49cc0c(0x21e)]+_0x49cc0c(0x16a),_0x49cc0c(0x1ab));const _0x51ef31=settings['retrieval'][_0x49cc0c(0x1be)]||0x5;let _0x84c1b1=0x0;for(let _0x47d301=0x0;_0x47d301<_0x4119a2['length'];_0x47d301+=_0x51ef31){const _0x5e5a14=_0x4119a2[_0x49cc0c(0x212)](_0x47d301,_0x47d301+_0x51ef31),_0x498b9f=_0x5e5a14[_0x49cc0c(0x1da)](_0x5a188a=>_0x5a188a[_0x49cc0c(0x1b7)]),_0x2c61e1=await getEmbeddings(_0x498b9f);if(_0x5e5a14[_0x49cc0c(0x21e)]!==_0x2c61e1[_0x49cc0c(0x21e)])throw new Error('文本块和向量数量不匹配');const _0x40b136=_0x5e5a14[_0x49cc0c(0x1da)]((_0x3add55,_0x564cdc)=>({..._0x3add55,'vector':_0x2c61e1[_0x564cdc]}));await insertVectors(_0x40b136,null,_0x52f561),_0x84c1b1+=_0x5e5a14['length'];}if(_0x25d789){const _0x44b95a=_0x25d789['end']===0x0?context['chat']['length']:_0x25d789[_0x49cc0c(0x201)];settings[_0x49cc0c(0x1b5)][_0x52f561]={'start':_0x25d789[_0x49cc0c(0x204)],'end':_0x44b95a,'timestamp':new Date()[_0x49cc0c(0x199)]()},saveSettings(),_0x5e1d4d(_0x49cc0c(0x1b2)+_0x52f561+_0x49cc0c(0x1b4)+_0x25d789[_0x49cc0c(0x204)]+'-'+_0x44b95a,_0x49cc0c(0x1ab));}_0x5e1d4d(_0x49cc0c(0x218)+_0x84c1b1+_0x49cc0c(0x1af),_0x49cc0c(0x174));const _0x23f1c6=_0x96727d[_0x49cc0c(0x1da)](_0x3fc384=>{const _0x1debb9=_0x49cc0c,_0x5e2860=_0x399be6[_0x1debb9(0x1fb)](_0x5d4600=>_0x5d4600===_0x3fc384),_0x309c7f=_0x5e2860!==-0x1?_0x5e2860+0x1:-0x1,_0x351154=_0x3fc384[_0x1debb9(0x219)]?'用户':getCharacterName()||'AI';return'['+_0x351154+_0x1debb9(0x1bb)+_0x309c7f+_0x1debb9(0x17f);});return{'success':!![],'count':_0x84c1b1,'messages':_0x23f1c6};}catch(_0xb5344e){return console[_0x49cc0c(0x1cf)](_0x49cc0c(0x21a),_0xb5344e),_0x5e1d4d(_0x49cc0c(0x1db)+_0xb5344e['message'],_0x49cc0c(0x1cf)),{'success':![],'error':_0xb5344e[_0x49cc0c(0x167)]};}}async function rerankResults(_0x380368,_0x997275,_0x54f5bc){const _0x876d01=_0x526041;let _0x2259d3=_0x380368;if(_0x54f5bc[_0x876d01(0x1d1)][_0x876d01(0x214)]&&_0x380368[_0x876d01(0x21e)]>0x0){console[_0x876d01(0x1e2)](_0x876d01(0x1e6));try{const _0x19623c=_0x380368[_0x876d01(0x1da)]((_0x1d78cc,_0x5e423b)=>({'text':_0x1d78cc['text'],'original_index':_0x5e423b})),_0x20ffa5=getRerankBaseUrl(_0x54f5bc[_0x876d01(0x1d1)][_0x876d01(0x19a)]),_0x22ba8d=_0x20ffa5+_0x876d01(0x20b),_0x3036f7=await fetch(_0x22ba8d,{'method':_0x876d01(0x175),'headers':{'Content-Type':_0x876d01(0x1c1),'Authorization':'Bearer\x20'+_0x54f5bc[_0x876d01(0x1d1)][_0x876d01(0x21b)]},'body':JSON[_0x876d01(0x18f)]({'query':_0x997275,'documents':_0x19623c[_0x876d01(0x1da)](_0x29bbaf=>_0x29bbaf['text']),'model':_0x54f5bc[_0x876d01(0x1d1)][_0x876d01(0x197)],'top_n':_0x54f5bc[_0x876d01(0x1d1)][_0x876d01(0x217)]})});if(!_0x3036f7['ok'])throw new Error(_0x876d01(0x177)+_0x3036f7[_0x876d01(0x1f9)]+_0x876d01(0x1e4)+await _0x3036f7[_0x876d01(0x1b7)]());const _0x7b13ef=await _0x3036f7[_0x876d01(0x1b9)](),_0x51d4d1=_0x380368[_0x876d01(0x1da)]((_0x459e5e,_0xf5f286)=>({..._0x459e5e,'original_index':_0xf5f286}));_0x2259d3=_0x51d4d1['map'](_0x2281d5=>{const _0x45890a=_0x876d01,_0x399dad=_0x7b13ef['results'][_0x45890a(0x18b)](_0x124c4b=>_0x124c4b[_0x45890a(0x1c4)]===_0x2281d5['original_index']),_0xbdd03e=_0x399dad?_0x399dad[_0x45890a(0x176)]:0x0;return{..._0x2281d5,'rerank_score':_0xbdd03e};});if(_0x54f5bc['rerank'][_0x876d01(0x21d)])showNotification(_0x876d01(0x1a3),_0x876d01(0x174));}catch(_0x20f827){console['error']('[翰林院-Rerank]\x20外部Rerank失败将仅使用内部加权。',_0x20f827);if(_0x54f5bc[_0x876d01(0x1d1)][_0x876d01(0x21d)])showNotification(_0x876d01(0x1f0)+_0x20f827[_0x876d01(0x167)],_0x876d01(0x1cf));_0x2259d3[_0x876d01(0x1e7)](_0x1d64c4=>_0x1d64c4[_0x876d01(0x182)]=0x0);}}else _0x2259d3[_0x876d01(0x1e7)](_0x778ebd=>_0x778ebd['rerank_score']=0x0);console[_0x876d01(0x1e2)](_0x876d01(0x16b));const _0x19f3de=context[_0x876d01(0x17c)]['length'],_0x2e22ca=_0x54f5bc['rerank']['hybrid_alpha'],_0x313757=_0x2259d3[_0x876d01(0x1da)](_0x38de23=>{const _0x4d5734=_0x876d01;let _0x5db754=0x1;const _0x2f05b6=_0x38de23[_0x4d5734(0x1f7)]||{};switch(_0x2f05b6[_0x4d5734(0x1c3)]){case _0x4d5734(0x1d3):_0x5db754*=1.2;break;case _0x4d5734(0x18c):_0x5db754*=1.1;break;case'chat_history':if(_0x2f05b6[_0x4d5734(0x1dd)]&&_0x19f3de>0x0){const _0x32038d=_0x2f05b6[_0x4d5734(0x1dd)]/_0x19f3de;_0x5db754*=0x1+_0x32038d;}break;}const _0x5b28d6=_0x38de23['rerank_score']*_0x2e22ca+(_0x38de23[_0x4d5734(0x160)]||0x0)*(0x1-_0x2e22ca),_0x2c6ba8=_0x5b28d6*_0x5db754;return{..._0x38de23,'final_score':_0x2c6ba8};});return _0x313757[_0x876d01(0x1eb)]((_0x3fc0bc,_0x5a3f5d)=>(_0x5a3f5d['final_score']||0x0)-(_0x3fc0bc[_0x876d01(0x195)]||0x0)),console[_0x876d01(0x1e2)](_0x876d01(0x16e)),_0x313757['slice'](0x0,_0x54f5bc[_0x876d01(0x1d1)][_0x876d01(0x217)]);}async function rearrangeChat(_0xbe51da,_0x216eaa,_0x45c747,_0x22f728){const _0x394a79=_0x526041;setExtensionPrompt(_0x394a79(0x220),'',settings['injection'][_0x394a79(0x1ff)],settings[_0x394a79(0x173)][_0x394a79(0x1cb)],![],settings[_0x394a79(0x173)]['depth_role']);if(_0x22f728===_0x394a79(0x166)||!settings['retrieval'][_0x394a79(0x214)])return;const _0x476341=_0xbe51da[_0x394a79(0x212)](-settings['advanced']['queryMessageCount']);if(_0x476341[_0x394a79(0x21e)]===0x0)return;const _0x515f59=_0x476341[_0x394a79(0x1da)](_0x114ff9=>_0x114ff9[_0x394a79(0x1e9)])[_0x394a79(0x1a7)]('\x20')['replace'](/<[^>]*>/g,'')[_0x394a79(0x1f6)]();if(!_0x515f59)return;try{const _0x3d0635=await queryVectors(_0x515f59);if(_0x3d0635[_0x394a79(0x21e)]===0x0)return;const _0x4f0b23=await rerankResults(_0x3d0635,_0x515f59,settings);if(_0x4f0b23[_0x394a79(0x21e)]===0x0)return;const _0x4cc29b=_0x4f0b23[_0x394a79(0x1da)](_0x55f724=>_0x55f724[_0x394a79(0x1b7)])['join']('\x0a\x0a'),_0x485935=settings[_0x394a79(0x173)][_0x394a79(0x206)]['replace']('{{text}}',_0x4cc29b);setExtensionPrompt(_0x394a79(0x220),_0x485935,settings['injection'][_0x394a79(0x1ff)],settings[_0x394a79(0x173)][_0x394a79(0x1cb)],![],settings[_0x394a79(0x173)]['depth_role']);}catch(_0x1d58db){console[_0x394a79(0x1cf)](_0x394a79(0x1d8),_0x1d58db);if(settings[_0x394a79(0x161)][_0x394a79(0x21d)])showNotification('忆识检索失败:\x20'+_0x1d58db['message'],'error');}}