mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 21:45:51 +00:00
2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
const _0x17c755=_0x34a7;(function(_0x1c08e9,_0x119d45){const _0x2d6342=_0x34a7,_0x2bb138=_0x1c08e9();while(!![]){try{const _0x300e9b=-parseInt(_0x2d6342(0x1c3))/0x1*(parseInt(_0x2d6342(0x1d4))/0x2)+parseInt(_0x2d6342(0x1a5))/0x3*(parseInt(_0x2d6342(0x212))/0x4)+-parseInt(_0x2d6342(0x1a9))/0x5*(-parseInt(_0x2d6342(0x205))/0x6)+parseInt(_0x2d6342(0x1e9))/0x7+parseInt(_0x2d6342(0x1ed))/0x8*(parseInt(_0x2d6342(0x1c5))/0x9)+-parseInt(_0x2d6342(0x1fb))/0xa*(parseInt(_0x2d6342(0x1f6))/0xb)+-parseInt(_0x2d6342(0x1f4))/0xc;if(_0x300e9b===_0x119d45)break;else _0x2bb138['push'](_0x2bb138['shift']());}catch(_0x52d78d){_0x2bb138['push'](_0x2bb138['shift']());}}}(_0x2011,0x89af3));import{extension_settings,getContext}from'/scripts/extensions.js';import{characters}from'/script.js';import{world_names}from'/scripts/world-info.js';import{extensionName}from'../utils/settings.js';import{extractContentByTag,replaceContentByTag,extractFullTagBlock}from'../utils/tagProcessor.js';import{getCombinedWorldbookContent,findLatestSummaryLore,DEDICATED_LOREBOOK_NAME,getChatIdentifier}from'./lore.js';const UPDATE_CHECK_URL=_0x17c755(0x213);export async function checkForUpdates(){const _0x11c30d=_0x17c755;if(!UPDATE_CHECK_URL||UPDATE_CHECK_URL[_0x11c30d(0x1a4)]('YourUsername'))return console[_0x11c30d(0x1cb)](_0x11c30d(0x1ef)),null;try{console[_0x11c30d(0x1cb)](_0x11c30d(0x1b6));const _0x5206ad=await fetch(UPDATE_CHECK_URL,{'method':_0x11c30d(0x1ac),'cache':_0x11c30d(0x1cd),'mode':_0x11c30d(0x1f7)});if(!_0x5206ad['ok'])throw new Error('远方服务器响应异常,状态:\x20'+_0x5206ad[_0x11c30d(0x1ea)]);const _0x37a056=await _0x5206ad['json']();return console[_0x11c30d(0x1cb)](_0x11c30d(0x1e8)),_0x37a056;}catch(_0x2e427f){return console[_0x11c30d(0x1c9)]('[Amily2号-外交部]\x20紧急军情:外交任务失败!',_0x2e427f),null;}}function _0x34a7(_0x5238ee,_0x5bc1af){const _0x201168=_0x2011();return _0x34a7=function(_0x34a778,_0xa3b677){_0x34a778=_0x34a778-0x198;let _0x8da62b=_0x201168[_0x34a778];return _0x8da62b;},_0x34a7(_0x5238ee,_0x5bc1af);}let isFetchingModels=![];function _0x2011(){const _0x237fcc=['这里是优化后的文本内容...','X-Custom-Proxy','text','groupEnd','16436vKTvNd','https://raw.githubusercontent.com/Wx-2025/ST-Amily2-Chat-Optimisation/refs/heads/main/amily2_update_info.json','loreDepth','外交任务总耗时','summarizationEnabled','网络连接失败,请检查API地址和网络状态','AMILY2_SYSTEM_PARALYZED','maxTokens','push','端点错误','[Amily2-外交部]\x20已将史册律法附加至国书,准备发往下一站。','statusText','mes','API请求失败:\x20','groupCollapsed','love.qinyan.xyz','[错误详情]\x20获取模型列表失败:','403','includes','807BafumC','请严格遵循以下指令:基于所有提供的背景和对话内容,生成一段精炼的剧情摘要。直接输出摘要文本,不要包含任何多余的解释、标签或前缀。\x0a\x0a[总结核心要求]:\x0a','认证错误','disabled','134840KqIqop','获取模型列表成功\x20(','+总结','GET','origin','成功获取\x20','slice','###AMILY2-SUMMARY###','success','v1/models','map','endsWith','个):','[Amily2号-外交部]\x20已派遣使者前往云端获取最新情报...','Amily2-ChatPlugin','陛下:\x20','val','is_user','toLocaleTimeString','正在获取模型列表,请稍候...','data','choices','\x20个可用模型','prop','无法解析错误响应','请先配置API\x20URL','983173YkINoN','apiUrl','36cGVbhs','/v1/chat/completions','info','/v1','error','stack','log','apiKey','no-store','location','embed','网络错误','dir','[Amily2-外交部]\x20目标标签\x20<','[Amily2号-外交任务]\x20','2FXdmuD','404','isArray','Amily2-外交部','trim','/models','stringify','replace','world','mainPrompt','\x20|\x20模式:\x20','Bearer\x20','获取模型','401','filter','/v1/models','[Amily2-制裁]\x20系统完整性已受损,所有外交活动被无限期中止。','lorebookTarget','user','\x0a姐姐Amily:\x20','[Amily2号-外交部]\x20情报已成功获取并解析。','4885125vFworH','status','获取模型失败','length','1937032pCHrmd','POST','[Amily2号-外交部]\x20任务取消:陛下尚未配置情报来源URL。','Failed\x20to\x20fetch','system','#amily2_refresh_models','<i\x20class=\x22fas\x20fa-sync-alt\x22></i>\x20刷新模型','20122944hCEHZG','Amily2号任务失败:\x20','13948JvZJaD','cors','姐姐Amily','严重错误','[上下文参考]:\x0a','4940GYRBjb','[更新]\x20模型列表请求地址:','models','content','loreSettings','systemPrompt','join','search','[输出格式与附加任务指令]:\x0a你的输出必须严格遵循以下完整结构:\x0a\x0a','loreInsertionPosition','240rCQMfA','message','time','application/json','timeEnd','html','json','extensions','optimizationEnabled'];_0x2011=function(){return _0x237fcc;};return _0x2011();}export async function fetchSupportedModels(){const _0x217043=_0x17c755,_0x3f87bc=$('#amily2_api_url')['val']()[_0x217043(0x1d8)](),_0x1a3076=$('#amily2_api_key')[_0x217043(0x1b9)]()['trim']();if(!_0x3f87bc)return toastr[_0x217043(0x1c9)](_0x217043(0x1c2),_0x217043(0x1eb)),[];if(isFetchingModels)return toastr[_0x217043(0x1c7)](_0x217043(0x1bc),_0x217043(0x1e0)),[];isFetchingModels=!![],$(_0x217043(0x1f2))['prop'](_0x217043(0x1a8),!![])[_0x217043(0x20a)]('<i\x20class=\x22fas\x20fa-spinner\x20fa-spin\x22></i>\x20加载中');try{let _0x7d523c;if(_0x3f87bc[_0x217043(0x1a4)](_0x217043(0x1c6)))_0x7d523c=_0x3f87bc[_0x217043(0x1db)]('/v1/chat/completions',_0x217043(0x1e3));else{if(_0x3f87bc[_0x217043(0x1b4)](_0x217043(0x1c8)))_0x7d523c=_0x3f87bc+_0x217043(0x1d9);else _0x3f87bc[_0x217043(0x1b4)]('/')?_0x7d523c=_0x3f87bc+_0x217043(0x1b2):_0x7d523c=_0x3f87bc+_0x217043(0x1e3);}console[_0x217043(0x1cb)](_0x217043(0x1fc),_0x7d523c);const _0x23cf6b={'Content-Type':_0x217043(0x208),'Accept':_0x217043(0x208)};if(_0x1a3076)_0x23cf6b['Authorization']='Bearer\x20'+_0x1a3076;_0x7d523c[_0x217043(0x1a4)](_0x217043(0x1a1))&&(_0x23cf6b[_0x217043(0x20f)]=_0x217043(0x1b7),_0x23cf6b['Origin']=window[_0x217043(0x1ce)][_0x217043(0x1ad)]);const _0x26a102=await fetch(_0x7d523c,{'method':_0x217043(0x1ac),'headers':_0x23cf6b,'mode':_0x217043(0x1f7),'credentials':'omit'});if(!_0x26a102['ok']){let _0x2621e9='';try{const _0x272410=await _0x26a102[_0x217043(0x20b)]();_0x2621e9=_0x272410[_0x217043(0x1c9)]?.[_0x217043(0x206)]?'\x20-\x20'+_0x272410[_0x217043(0x1c9)][_0x217043(0x206)]:await _0x26a102[_0x217043(0x210)]();}catch(_0x544555){_0x2621e9=_0x217043(0x1c1);}throw new Error('API返回错误:\x20'+_0x26a102[_0x217043(0x1ea)]+'\x20'+_0x26a102[_0x217043(0x19d)]+_0x2621e9);}const _0x45cc29=await _0x26a102[_0x217043(0x20b)]();let _0x3d7c0a=[];if(Array[_0x217043(0x1d6)](_0x45cc29))_0x3d7c0a=_0x45cc29['map'](_0x5a41d1=>_0x5a41d1['id']||_0x5a41d1);else{if(_0x45cc29[_0x217043(0x1bd)]&&Array[_0x217043(0x1d6)](_0x45cc29[_0x217043(0x1bd)]))_0x3d7c0a=_0x45cc29['data'][_0x217043(0x1b3)](_0x7fa984=>_0x7fa984['id']);else{if(_0x45cc29[_0x217043(0x1fd)]&&Array[_0x217043(0x1d6)](_0x45cc29['models']))_0x3d7c0a=_0x45cc29[_0x217043(0x1fd)];else throw new Error('未知的模型列表格式');}}const _0x2d23fd=_0x3d7c0a[_0x217043(0x1e2)](_0x1a10d9=>!_0x1a10d9[_0x217043(0x1a4)](_0x217043(0x1cf))&&!_0x1a10d9['includes'](_0x217043(0x202))&&!_0x1a10d9[_0x217043(0x1a4)]('similarity')&&!_0x1a10d9['includes']('audio'));return _0x2d23fd['sort'](),console[_0x217043(0x1cb)](_0x217043(0x1aa)+_0x2d23fd[_0x217043(0x1ec)]+_0x217043(0x1b5),_0x2d23fd),toastr[_0x217043(0x1b1)](_0x217043(0x1ae)+_0x2d23fd[_0x217043(0x1ec)]+_0x217043(0x1bf),'模型加载完成'),_0x2d23fd;}catch(_0x27ab18){console['error'](_0x217043(0x1a2),{'message':_0x27ab18['message'],'stack':_0x27ab18[_0x217043(0x1ca)]});if(_0x27ab18[_0x217043(0x206)][_0x217043(0x1a4)](_0x217043(0x1f0)))toastr['error'](_0x217043(0x217),_0x217043(0x1d0));else{if(_0x27ab18[_0x217043(0x206)][_0x217043(0x1a4)](_0x217043(0x1e1))||_0x27ab18[_0x217043(0x206)]['includes'](_0x217043(0x1a3)))toastr[_0x217043(0x1c9)]('API密钥无效或权限不足',_0x217043(0x1a7));else{if(_0x27ab18['message'][_0x217043(0x1a4)](_0x217043(0x1d5)))toastr[_0x217043(0x1c9)]('API端点不存在,请确保URL指向OpenAI兼容的/v1/models端点',_0x217043(0x19b));else toastr[_0x217043(0x1c9)]('获取模型失败:\x20'+_0x27ab18['message'],'错误');}}return[];}finally{isFetchingModels=![],$(_0x217043(0x1f2))[_0x217043(0x1c0)](_0x217043(0x1a8),![])[_0x217043(0x20a)](_0x217043(0x1f3));}}export async function checkAndFixWithAPI(_0x2cae92,_0x34ce49){const _0x22e63f=_0x17c755;if(window[_0x22e63f(0x198)]===!![])return console[_0x22e63f(0x1c9)](_0x22e63f(0x1e4)),null;const _0x23d5df=extension_settings[extensionName],_0x336ea3=_0x23d5df[_0x22e63f(0x20d)],_0x21813d=_0x23d5df[_0x22e63f(0x216)];if(!_0x336ea3&&!_0x21813d)return null;if(!_0x23d5df['apiUrl']||!_0x23d5df[_0x22e63f(0x1c4)][_0x22e63f(0x1d8)]())return toastr[_0x22e63f(0x1c9)]('API\x20URL\x20未配置。',_0x22e63f(0x1d7)),null;console[_0x22e63f(0x1a0)](_0x22e63f(0x1d3)+new Date()[_0x22e63f(0x1bb)]()+_0x22e63f(0x1de)+(_0x336ea3?'优化':'')+(_0x21813d?_0x336ea3?_0x22e63f(0x1ab):'仅总结':'')),console[_0x22e63f(0x207)]('外交任务总耗时');try{const _0x1c2596=_0x2cae92['mes'],_0x5bac1a=_0x23d5df['optimizationTargetTag']||_0x22e63f(0x1fe);let _0x226da5;if(_0x336ea3){_0x226da5=extractFullTagBlock(_0x1c2596,_0x5bac1a);if(!_0x226da5||extractContentByTag(_0x226da5,_0x5bac1a)?.['trim']()===''){console[_0x22e63f(0x1cb)](_0x22e63f(0x1d2)+_0x5bac1a+'>\x20未找到或为空,优化任务已跳过。'),_0x226da5=_0x1c2596;if(!_0x21813d)return console[_0x22e63f(0x209)](_0x22e63f(0x215)),console['groupEnd'](),{'optimizedContent':_0x1c2596,'summary':null};}}else _0x226da5=_0x1c2596;const _0x364c77=_0x34ce49[_0x22e63f(0x1ec)]>0x0&&_0x34ce49[_0x34ce49[_0x22e63f(0x1ec)]-0x1][_0x22e63f(0x1ba)]?_0x34ce49[_0x34ce49[_0x22e63f(0x1ec)]-0x1]:null,_0x583f7e=_0x364c77?_0x34ce49[_0x22e63f(0x1af)](0x0,-0x1):_0x34ce49,_0x49c75b=_0x583f7e['map'](_0x27b5b1=>_0x27b5b1['mes']&&_0x27b5b1[_0x22e63f(0x19e)][_0x22e63f(0x1d8)]()?(_0x27b5b1[_0x22e63f(0x1ba)]?'陛下':_0x22e63f(0x1f8))+':\x20'+_0x27b5b1[_0x22e63f(0x19e)]['trim']():null)[_0x22e63f(0x1e2)](Boolean)[_0x22e63f(0x201)]('\x0a');let _0x265cd4='';if(_0x23d5df['worldbookEnabled']){const _0x2f72d4=getContext(),_0x67bfad=characters[_0x2f72d4['characterId']];_0x67bfad?.[_0x22e63f(0x1bd)]?.['extensions']?.[_0x22e63f(0x1dc)]&&(_0x265cd4=await getCombinedWorldbookContent(_0x67bfad[_0x22e63f(0x1bd)][_0x22e63f(0x20c)][_0x22e63f(0x1dc)]));}const _0x1474e1=[];_0x23d5df['mainPrompt']?.['trim']()&&_0x1474e1['push']({'role':'system','content':_0x23d5df[_0x22e63f(0x1dd)][_0x22e63f(0x1d8)]()});if(_0x336ea3){if(_0x23d5df[_0x22e63f(0x200)]?.['trim']())_0x1474e1[_0x22e63f(0x19a)]({'role':_0x22e63f(0x1f1),'content':_0x23d5df[_0x22e63f(0x200)]['trim']()});}if(_0x336ea3&&_0x21813d){const _0x3acd13=(_0x22e63f(0x203)+_0x226da5[_0x22e63f(0x1db)](extractContentByTag(_0x226da5,_0x5bac1a),_0x22e63f(0x20e))+'\x0a\x0a###AMILY2-SUMMARY###\x0a\x0a这里是根据对话生成的剧情摘要...\x0a\x0a[总结核心要求]:\x0a'+(_0x23d5df['summarizationPrompt']?.[_0x22e63f(0x1d8)]()||'生成一段简短的剧情摘要。'))[_0x22e63f(0x1d8)]();_0x1474e1[_0x22e63f(0x19a)]({'role':_0x22e63f(0x1f1),'content':_0x3acd13});}else{if(!_0x336ea3&&_0x21813d){const _0x458014=_0x22e63f(0x1a6)+_0x23d5df['summarizationPrompt'][_0x22e63f(0x1d8)]();_0x1474e1[_0x22e63f(0x19a)]({'role':'system','content':_0x458014});}}if(_0x265cd4)_0x1474e1[_0x22e63f(0x19a)]({'role':'user','content':'[世界书档案]:\x0a'+_0x265cd4});if(_0x49c75b)_0x1474e1[_0x22e63f(0x19a)]({'role':_0x22e63f(0x1e6),'content':_0x22e63f(0x1fa)+_0x49c75b});let _0x507f17=_0x364c77?_0x22e63f(0x1b8)+_0x364c77[_0x22e63f(0x19e)]+_0x22e63f(0x1e7)+_0x226da5:_0x226da5;_0x1474e1[_0x22e63f(0x19a)]({'role':_0x22e63f(0x1e6),'content':'[核心处理内容]:\x0a'+_0x507f17}),console['groupCollapsed']('[Amily2号-最终国书内容\x20(发往AI)]'),console[_0x22e63f(0x1d1)](_0x1474e1),console[_0x22e63f(0x211)]();let _0x52192f=_0x23d5df[_0x22e63f(0x1c4)][_0x22e63f(0x1d8)]();!_0x52192f[_0x22e63f(0x1b4)](_0x22e63f(0x1c6))&&(_0x52192f=new URL(_0x22e63f(0x1c6),_0x52192f)['href']);const _0x178af6=await fetch(_0x52192f,{'method':_0x22e63f(0x1ee),'headers':{'Content-Type':_0x22e63f(0x208),..._0x23d5df[_0x22e63f(0x1cc)]&&{'Authorization':_0x22e63f(0x1df)+_0x23d5df['apiKey']}},'body':JSON[_0x22e63f(0x1da)]({'model':_0x23d5df['model'],'messages':_0x1474e1,'max_tokens':_0x23d5df[_0x22e63f(0x199)],'temperature':_0x23d5df['temperature'],'stream':![]})});if(!_0x178af6['ok'])throw new Error(_0x22e63f(0x19f)+_0x178af6[_0x22e63f(0x1ea)]+'\x20'+_0x178af6[_0x22e63f(0x19d)]+'\x20-\x20'+await _0x178af6['text']());const _0x472e1f=await _0x178af6['json'](),_0x47e14e=_0x472e1f[_0x22e63f(0x1be)]?.[0x0]?.[_0x22e63f(0x206)]?.[_0x22e63f(0x1fe)];if(!_0x47e14e)return null;console[_0x22e63f(0x1a0)]('[Amily2号-原始回复]'),console['log'](_0x47e14e),console[_0x22e63f(0x211)]();let _0x24c7df=_0x1c2596,_0x58af86=null;if(_0x336ea3&&_0x21813d){const _0x2095e1=_0x22e63f(0x1b0),_0x1e6c0d=_0x47e14e['split'](_0x2095e1),_0x30a21f=_0x1e6c0d[0x0]?.['trim']();_0x58af86=_0x1e6c0d[0x1]?.[_0x22e63f(0x1d8)]()||null;if(_0x30a21f){const _0x3c7ae6=extractContentByTag(_0x30a21f,_0x5bac1a);_0x3c7ae6?.[_0x22e63f(0x1d8)]()&&(_0x24c7df=replaceContentByTag(_0x1c2596,_0x5bac1a,_0x3c7ae6));}}else{if(_0x336ea3){const _0x1c0e79=extractContentByTag(_0x47e14e,_0x5bac1a);_0x1c0e79?.['trim']()&&(_0x24c7df=replaceContentByTag(_0x1c2596,_0x5bac1a,_0x1c0e79));}else _0x58af86=_0x47e14e[_0x22e63f(0x1d8)]();}const _0x30c7fd={'optimizedContent':_0x24c7df,'summary':_0x58af86};return _0x58af86&&_0x21813d&&(_0x30c7fd[_0x22e63f(0x1ff)]={'activationMode':_0x23d5df['loreActivationMode'],'insertionPosition':_0x23d5df[_0x22e63f(0x204)],'depth':_0x23d5df[_0x22e63f(0x214)],'keywords':_0x23d5df['loreKeywords'],'target':_0x23d5df[_0x22e63f(0x1e5)]},console[_0x22e63f(0x1cb)](_0x22e63f(0x19c),_0x30c7fd['loreSettings'])),console[_0x22e63f(0x209)](_0x22e63f(0x215)),console['groupEnd'](),_0x30c7fd;}catch(_0xe2ad84){return console[_0x22e63f(0x1c9)]('[Amily2-外交部]\x20发生严重错误:',_0xe2ad84),toastr[_0x22e63f(0x1c9)](_0x22e63f(0x1f5)+_0xe2ad84[_0x22e63f(0x206)],_0x22e63f(0x1f9)),console[_0x22e63f(0x209)](_0x22e63f(0x215)),console[_0x22e63f(0x211)](),null;}}
|