mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 08:55:50 +00:00
2 lines
24 KiB
JavaScript
2 lines
24 KiB
JavaScript
const _0x2c0904=_0x560c;(function(_0x2b6cb3,_0x5befb5){const _0x420457=_0x560c,_0x2f05ab=_0x2b6cb3();while(!![]){try{const _0x30f94f=-parseInt(_0x420457(0x118))/0x1*(-parseInt(_0x420457(0x16b))/0x2)+parseInt(_0x420457(0x158))/0x3*(-parseInt(_0x420457(0x189))/0x4)+-parseInt(_0x420457(0x1a0))/0x5*(-parseInt(_0x420457(0x1a8))/0x6)+parseInt(_0x420457(0x161))/0x7*(-parseInt(_0x420457(0x183))/0x8)+-parseInt(_0x420457(0x13e))/0x9*(-parseInt(_0x420457(0x10f))/0xa)+parseInt(_0x420457(0x1af))/0xb*(parseInt(_0x420457(0x191))/0xc)+-parseInt(_0x420457(0x149))/0xd;if(_0x30f94f===_0x5befb5)break;else _0x2f05ab['push'](_0x2f05ab['shift']());}catch(_0x4b9758){_0x2f05ab['push'](_0x2f05ab['shift']());}}}(_0x4c76,0x61dd0));import{extension_settings,getContext}from'/scripts/extensions.js';function _0x560c(_0x537422,_0x5dc7a5){const _0x4c7629=_0x4c76();return _0x560c=function(_0x560c08,_0x49edf6){_0x560c08=_0x560c08-0x10a;let _0x518bf2=_0x4c7629[_0x560c08];return _0x518bf2;},_0x560c(_0x537422,_0x5dc7a5);}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';import{isGoogleEndpoint,convertToGoogleRequest,parseGoogleResponse,buildGoogleApiUrl}from'../core/utils/googleAdapter.js';import{intelligentPoll,createGooglePollingTask,progressTracker}from'../core/utils/pollingManager.js';let ChatCompletionService=undefined;function _0x4c76(){const _0x549cef=['Amily2-ChatPlugin','AMILY2_LOCK_MODEL_FETCHING','loreActivationMode','log','8qTpOTi','上次任务尚未完成,请稍后再试。','content','cors','\x20个模型\x20(使用第\x20','成功获取\x20','4TJEPeo','API\x20Key无效','[Amily2号-外交部]\x20已派遣使者前往云端获取最新情报...','[Amily2-外交部]\x20已将史册律法附加至国书,准备发往下一站。','<option>','characterId','audio','lorebookTarget','4190148UjORxB','endsWith','disabled','json','[Amily2-制裁]\x20系统完整性已受损,所有外交活动被无限期中止。','\x20个可用模型','任务成功','任务总结','[Amily2-外交部]\x20发生严重错误:','[Amily2号-使节团]\x20第\x20','includes','仅总结','未知的模型列表格式','[Amily2号-外交部]\x20最终国书将发往:\x20','X-Custom-Proxy','10RjRKWB','aiplatform.googleapis.com','<i\x20class=\x22fas\x20fa-sync-alt\x22></i>\x20刷新模型','生成一段简短的剧情摘要。','name1','依赖缺失','systemPrompt','正在轮换使节团获取模型...','2348556SyxzQh','loreSettings','\x20位使节成功带回\x20','[Amily2号-外交部]\x20情报已成功获取并解析。','[Amily2号-使节团]\x20失败详情汇总:\x0a','info','Bearer\x20','22uEKTmH','pathname','[轮询错误]','optimizationEnabled','轮询失败:\x20','外交任务总耗时','toLocaleTimeString','love.qinyan.xyz','所有使节团任务完成,找到\x20','prop','summarizationPrompt','map','[Amily2号-外交部]\x20已成功召唤“皇家信使”(ChatCompletionService)。','[Amily2号-外交部]\x20使节团尝试使用地址:\x20','join','filter','外交任务失败','/v1','[Amily2号-使节团]\x20上次任务尚未完成,本次任务取消。','[Amily2号-外交任务]\x20','GET','slice','data','sort','search','location','API\x20URL\x20未配置。','<无法提取错误正文>','严重错误','[Amily2号-Google外交部]\x20修正后的API地址:\x20','[Amily2号-使节团]\x20使用\x20Google\x20API\x20Key:\x20...','[Amily2号-原始回复]','append','push','worldbookEnabled','[Amily2号-外交部]\x20未能召唤“皇家信使”,部分高级功能(如Claw代理)将受限。请考虑更新SillyTavern版本。','AMILY2_SYSTEM_PARALYZED','<i\x20class=\x22fas\x20fa-spinner\x20fa-spin\x22></i>\x20加载中','is_user','1800PKXqLE','extensions','[输出格式与附加任务指令]:\x0a你的输出必须严格遵循以下完整结构:\x0a\x0a','任务排队中','forceProxyForCustomApi','apiKey','val','\x20个Key)','done','877ElpnnX','custom','[Amily2号-外交部]\x20API\x20类型:\x20','/chat/completions','temperature','模式切换','loreKeywords','success','generativelanguage.googleapis.com','/v1beta/projects/locations/global/models','[Amily2-外交部]\x20未能获取AI响应内容','processRequest','\x0a\x0a###AMILY2-SUMMARY###\x0a\x0a这里是根据对话生成的剧情摘要...\x0a\x0a[总结核心要求]:\x0a','start','mes','string','远方服务器响应异常,状态:\x20','warn','embed','POST','[上下文参考]:\x0a','/models','href','[Amily2号-外交部]\x20递交通关文牒至皇家信使...','陛下,您提供的\x20API\x20Key\x20无效或为空。','groupEnd','Google','Authorization','system','trim','model','Key\x20...','similarity','split','[Amily2-外交部]\x20目标标签\x20<','\x20个\x20Google\x20模型\x20(使用第\x20','#amily2_refresh_models','[Amily2号-外交部]\x20紧急军情:外交任务失败!','10359fYoiZq','application/json','API返回错误:\x20','+总结','###AMILY2-SUMMARY###','replace','statusText','[Amily2号-使节团]\x20已启用“皇家密道”模式,跳过模型列表获取。请手动输入模型ID并保存。','/v1beta/models','us-central1','user','10602449mURCfM','未知的\x20Google\x20模型列表格式','whisper','/api/proxy','通过“皇家密道”调用API时发生错误:','\x20位使节\x20(Key:\x20...','/v1/chat/completions','name','timeEnd','https://raw.githubusercontent.com/Wx-2025/ST-Amily2-Chat-Optimisation/refs/heads/main/amily2_update_info.json','isArray','轮询完成但未获得有效响应','error','substring','status','1477875kEalDj','\x20|\x20模式:\x20','toLowerCase','html','empty','models','maxTokens','groupCollapsed','response','3090661ZQJDDb','这里是优化后的文本内容...','dir','/v1/','apiUrl','world','[世界书档案]:\x0a','已启用手动模式,请直接输入模型ID。','stringify','\x20-\x20','1054WUiAxb','配置缺失','[Amily2号-使节团]\x20派遣第\x20','summarizationEnabled','onAttempt','ai.google.dev','text','hostname','localeCompare','omit','手动模式已启用','所有使节均未能完成任务。详情请见控制台(F12)。','undefined','陛下,请先赐予\x20API\x20地址与至少一枚\x20API\x20Key。','ChatCompletionService','time','length','message','[核心处理内容]:\x0a','choices'];_0x4c76=function(){return _0x549cef;};return _0x4c76();}try{const module=await import('/scripts/custom-request.js');ChatCompletionService=module[_0x2c0904(0x179)],console[_0x2c0904(0x182)](_0x2c0904(0x1bb));}catch(_0x57bd03){console['warn'](_0x2c0904(0x10b),_0x57bd03);}const UPDATE_CHECK_URL=_0x2c0904(0x152);export async function checkForUpdates(){const _0x4d5ab9=_0x2c0904;if(!UPDATE_CHECK_URL||UPDATE_CHECK_URL[_0x4d5ab9(0x19b)]('YourUsername'))return console[_0x4d5ab9(0x182)]('[Amily2号-外交部]\x20任务取消:陛下尚未配置情报来源URL。'),null;try{console[_0x4d5ab9(0x182)](_0x4d5ab9(0x18b));const _0x254b23=await fetch(UPDATE_CHECK_URL,{'method':_0x4d5ab9(0x1c3),'cache':'no-store','mode':_0x4d5ab9(0x186)});if(!_0x254b23['ok'])throw new Error(_0x4d5ab9(0x128)+_0x254b23[_0x4d5ab9(0x157)]);const _0x3d2312=await _0x254b23['json']();return console[_0x4d5ab9(0x182)](_0x4d5ab9(0x1ab)),_0x3d2312;}catch(_0x195c72){return console[_0x4d5ab9(0x155)](_0x4d5ab9(0x13d),_0x195c72),null;}}let isFetchingModels=![];export async function fetchSupportedModels(){const _0x40e1e2=_0x2c0904,_0x838c97=extension_settings[extensionName];if(_0x838c97&&_0x838c97[_0x40e1e2(0x113)]){console[_0x40e1e2(0x182)](_0x40e1e2(0x145)),toastr['info'](_0x40e1e2(0x168),_0x40e1e2(0x11d));const _0x4a2521=$('#amily2_model');return _0x4a2521[_0x40e1e2(0x15c)]()[_0x40e1e2(0x1cf)]($(_0x40e1e2(0x18d),{'value':'','text':_0x40e1e2(0x175)})),[];}if(window[_0x40e1e2(0x180)])return console[_0x40e1e2(0x129)](_0x40e1e2(0x1c1)),toastr[_0x40e1e2(0x1ad)](_0x40e1e2(0x184),_0x40e1e2(0x112)),[];window[_0x40e1e2(0x180)]=!![];try{const _0x4c2607=$('#amily2_api_url')[_0x40e1e2(0x115)]()[_0x40e1e2(0x135)](),_0xdee8f7=$('#amily2_api_key')[_0x40e1e2(0x115)]()[_0x40e1e2(0x135)](),_0x175906=$('#amily2_refresh_models'),_0x23c26a=$('#amily2_model');if(!_0x4c2607||!_0xdee8f7)return toastr['error'](_0x40e1e2(0x178),_0x40e1e2(0x16c)),[];_0x175906['prop'](_0x40e1e2(0x193),!![])['html'](_0x40e1e2(0x10d)),_0x23c26a[_0x40e1e2(0x15c)]()[_0x40e1e2(0x1cf)]($(_0x40e1e2(0x18d),{'value':'','text':_0x40e1e2(0x1a7)}));const _0x24df52=_0xdee8f7[_0x40e1e2(0x139)](',')['map'](_0x156fdd=>_0x156fdd[_0x40e1e2(0x135)]())[_0x40e1e2(0x1be)](Boolean);if(_0x24df52[_0x40e1e2(0x17b)]===0x0)return toastr[_0x40e1e2(0x155)](_0x40e1e2(0x130),_0x40e1e2(0x18a)),_0x23c26a[_0x40e1e2(0x15c)]()[_0x40e1e2(0x1cf)]($('<option>',{'value':'','text':_0x40e1e2(0x18a)})),[];const _0x298e4d=[];let _0x56d0c9=[];for(let _0x3e9982=0x0;_0x3e9982<_0x24df52[_0x40e1e2(0x17b)];_0x3e9982++){const _0xac4900=_0x24df52[_0x3e9982];console[_0x40e1e2(0x182)](_0x40e1e2(0x16d)+(_0x3e9982+0x1)+'/'+_0x24df52['length']+_0x40e1e2(0x14e)+_0xac4900[_0x40e1e2(0x1c4)](-0x4)+')\x20...');try{let _0xdd41d4;const _0x4342f2=new URL(_0x4c2607),_0x277782=isGoogleEndpoint(_0x4c2607);if(_0x277782){if(_0x4342f2[_0x40e1e2(0x172)][_0x40e1e2(0x19b)](_0x40e1e2(0x120))||_0x4342f2[_0x40e1e2(0x172)][_0x40e1e2(0x19b)](_0x40e1e2(0x170)))_0x4342f2[_0x40e1e2(0x1b0)]=_0x40e1e2(0x146);else{if(_0x4342f2[_0x40e1e2(0x172)]['includes'](_0x40e1e2(0x1a1)))_0x4342f2[_0x40e1e2(0x1b0)]=_0x40e1e2(0x121);else throw new Error('无法识别的\x20Google\x20API\x20端点');}_0xdd41d4=_0x4342f2[_0x40e1e2(0x12e)];}else{let _0x284b18=_0x4342f2['pathname'];if(_0x284b18[_0x40e1e2(0x192)]('/v1/chat/completions'))_0x284b18=_0x284b18[_0x40e1e2(0x156)](0x0,_0x284b18['length']-_0x40e1e2(0x11b)[_0x40e1e2(0x17b)]);else{if(_0x284b18[_0x40e1e2(0x192)](_0x40e1e2(0x164)))_0x284b18=_0x284b18[_0x40e1e2(0x1c4)](0x0,-0x1);else!_0x284b18['endsWith'](_0x40e1e2(0x1c0))&&(_0x284b18=_0x284b18[_0x40e1e2(0x143)](/\/$/,'')+_0x40e1e2(0x1c0));}_0x4342f2[_0x40e1e2(0x1b0)]=_0x284b18[_0x40e1e2(0x143)](/\/$/,'')+_0x40e1e2(0x12d),_0xdd41d4=_0x4342f2['href'];}console[_0x40e1e2(0x182)](_0x40e1e2(0x1bc)+_0xdd41d4),console[_0x40e1e2(0x182)](_0x40e1e2(0x11a)+(_0x277782?_0x40e1e2(0x132):'OpenAI\x20兼容'));const _0x167b77={'Content-Type':_0x40e1e2(0x13f),'Accept':_0x40e1e2(0x13f)};if(_0x277782){console[_0x40e1e2(0x182)](_0x40e1e2(0x1cd)+_0xac4900[_0x40e1e2(0x1c4)](-0x4));if(_0x4342f2[_0x40e1e2(0x172)][_0x40e1e2(0x19b)]('generativelanguage.googleapis.com')||_0x4342f2['hostname'][_0x40e1e2(0x19b)](_0x40e1e2(0x170)))_0x167b77['X-goog-api-key']=_0xac4900;else _0x4342f2[_0x40e1e2(0x172)][_0x40e1e2(0x19b)](_0x40e1e2(0x1a1))&&(_0x167b77[_0x40e1e2(0x133)]=_0x40e1e2(0x1ae)+_0xac4900);}else _0x167b77['Authorization']=_0x40e1e2(0x1ae)+_0xac4900;_0xdd41d4['includes'](_0x40e1e2(0x1b6))&&(_0x167b77[_0x40e1e2(0x19f)]=_0x40e1e2(0x17f),_0x167b77['Origin']=window[_0x40e1e2(0x1c8)]['origin']);const _0x4c799f=await fetch(_0xdd41d4,{'method':_0x40e1e2(0x1c3),'headers':_0x167b77,'mode':'cors','credentials':_0x40e1e2(0x174)});if(!_0x4c799f['ok']){let _0x2fe1cd='';try{const _0x4ed9b2=await _0x4c799f[_0x40e1e2(0x194)]();_0x2fe1cd=JSON['stringify'](_0x4ed9b2,null,0x2);}catch{try{_0x2fe1cd=await _0x4c799f[_0x40e1e2(0x171)]();}catch(_0x12ec65){_0x2fe1cd=_0x40e1e2(0x1ca);}}throw new Error(_0x40e1e2(0x140)+_0x4c799f['status']+'\x20'+_0x4c799f[_0x40e1e2(0x144)]+'\x0a'+_0x2fe1cd);}const _0x3dc038=await _0x4c799f[_0x40e1e2(0x194)]();let _0x4ab840=[];if(_0x277782){if(_0x3dc038[_0x40e1e2(0x15d)]&&Array['isArray'](_0x3dc038[_0x40e1e2(0x15d)]))_0x4ab840=_0x3dc038['models'][_0x40e1e2(0x1ba)](_0x3a0a23=>_0x3a0a23[_0x40e1e2(0x150)]);else{if(_0x3dc038['data']&&Array[_0x40e1e2(0x153)](_0x3dc038[_0x40e1e2(0x1c5)]))_0x4ab840=_0x3dc038[_0x40e1e2(0x1c5)][_0x40e1e2(0x1ba)](_0x4a725e=>_0x4a725e[_0x40e1e2(0x150)]||_0x4a725e['id']);else{if(Array['isArray'](_0x3dc038))_0x4ab840=_0x3dc038[_0x40e1e2(0x1ba)](_0x2cce90=>_0x2cce90[_0x40e1e2(0x150)]);else throw new Error(_0x40e1e2(0x14a));}}}else{if(Array[_0x40e1e2(0x153)](_0x3dc038))_0x4ab840=_0x3dc038[_0x40e1e2(0x1ba)](_0x53f232=>_0x53f232['id']||_0x53f232);else{if(_0x3dc038[_0x40e1e2(0x1c5)]&&Array['isArray'](_0x3dc038[_0x40e1e2(0x1c5)]))_0x4ab840=_0x3dc038[_0x40e1e2(0x1c5)][_0x40e1e2(0x1ba)](_0x483b61=>_0x483b61['id']);else{if(_0x3dc038[_0x40e1e2(0x15d)]&&Array['isArray'](_0x3dc038[_0x40e1e2(0x15d)]))_0x4ab840=_0x3dc038['models'][_0x40e1e2(0x1ba)](_0x427d51=>_0x427d51['id']);else throw new Error(_0x40e1e2(0x19d));}}}const _0x2af39f=_0x4ab840[_0x40e1e2(0x1be)](_0x454233=>typeof _0x454233===_0x40e1e2(0x127))[_0x40e1e2(0x1be)](_0x444f6c=>!_0x444f6c['toLowerCase']()[_0x40e1e2(0x19b)](_0x40e1e2(0x12a)))[_0x40e1e2(0x1be)](_0x3b2d5f=>!_0x3b2d5f['toLowerCase']()[_0x40e1e2(0x19b)](_0x40e1e2(0x1c7)))[_0x40e1e2(0x1be)](_0x4ec92f=>!_0x4ec92f[_0x40e1e2(0x15a)]()[_0x40e1e2(0x19b)](_0x40e1e2(0x138)))[_0x40e1e2(0x1be)](_0x98a72a=>!_0x98a72a[_0x40e1e2(0x15a)]()[_0x40e1e2(0x19b)](_0x40e1e2(0x18f)))[_0x40e1e2(0x1be)](_0x5bff96=>!_0x5bff96[_0x40e1e2(0x15a)]()['includes']('code'))['filter'](_0x56c546=>!_0x56c546[_0x40e1e2(0x15a)]()[_0x40e1e2(0x19b)](_0x40e1e2(0x14b)));_0x2af39f[_0x40e1e2(0x1c6)]((_0x5d0e54,_0x27bf58)=>_0x5d0e54[_0x40e1e2(0x173)](_0x27bf58)),console[_0x40e1e2(0x182)](_0x40e1e2(0x19a)+(_0x3e9982+0x1)+_0x40e1e2(0x1aa)+_0x2af39f['length']+'\x20个模型!'),_0x56d0c9=[...new Set([..._0x56d0c9,..._0x2af39f])],_0x56d0c9[_0x40e1e2(0x1c6)]();_0x277782?toastr[_0x40e1e2(0x11f)]('成功获取\x20'+_0x2af39f[_0x40e1e2(0x17b)]+_0x40e1e2(0x13b)+(_0x3e9982+0x1)+_0x40e1e2(0x116),_0x40e1e2(0x197)):toastr[_0x40e1e2(0x11f)](_0x40e1e2(0x188)+_0x2af39f[_0x40e1e2(0x17b)]+_0x40e1e2(0x187)+(_0x3e9982+0x1)+_0x40e1e2(0x116),_0x40e1e2(0x197));break;}catch(_0x5b83b9){const _0x1b38b5=_0x40e1e2(0x137)+_0xac4900[_0x40e1e2(0x1c4)](-0x4)+'\x20失败:\x20'+_0x5b83b9['message'];console['error'](_0x40e1e2(0x19a)+(_0x3e9982+0x1)+'\x20位使节任务失败:',_0x5b83b9),_0x298e4d[_0x40e1e2(0x1d0)](_0x1b38b5);}}if(_0x56d0c9['length']>0x0)return console[_0x40e1e2(0x182)]('[Amily2号-使节团]\x20最终带回\x20'+_0x56d0c9[_0x40e1e2(0x17b)]+_0x40e1e2(0x196)),toastr['info'](_0x40e1e2(0x1b7)+_0x56d0c9['length']+_0x40e1e2(0x196),_0x40e1e2(0x198)),_0x56d0c9;return toastr[_0x40e1e2(0x155)](_0x40e1e2(0x176),_0x40e1e2(0x1bf)),console[_0x40e1e2(0x155)](_0x40e1e2(0x1ac)+_0x298e4d['join']('\x0a')),[];}catch(_0xf3eb92){return console[_0x40e1e2(0x155)]('[Amily2号-使节团]\x20全局错误:',_0xf3eb92),toastr[_0x40e1e2(0x155)]('模型获取失败:\x20'+_0xf3eb92[_0x40e1e2(0x17c)],'系统错误'),[];}finally{window[_0x40e1e2(0x180)]=![];const _0x438b50=$(_0x40e1e2(0x13c));_0x438b50[_0x40e1e2(0x1b8)](_0x40e1e2(0x193),![])[_0x40e1e2(0x15b)](_0x40e1e2(0x1a2));}}export async function checkAndFixWithAPI(_0x12d1a9,_0x553bca){const _0x3b87d5=_0x2c0904;if(window[_0x3b87d5(0x10c)]===!![])return console[_0x3b87d5(0x155)](_0x3b87d5(0x195)),null;const _0x1173a4=extension_settings[extensionName],_0x2de943=_0x1173a4[_0x3b87d5(0x1b2)],_0x17717d=_0x1173a4[_0x3b87d5(0x16e)];if(!_0x2de943&&!_0x17717d)return null;if(!_0x1173a4[_0x3b87d5(0x165)]||!_0x1173a4[_0x3b87d5(0x165)][_0x3b87d5(0x135)]())return toastr['error'](_0x3b87d5(0x1c9),'Amily2-外交部'),null;console[_0x3b87d5(0x15f)](_0x3b87d5(0x1c2)+new Date()[_0x3b87d5(0x1b5)]()+_0x3b87d5(0x159)+(_0x2de943?'优化':'')+(_0x17717d?_0x2de943?_0x3b87d5(0x141):_0x3b87d5(0x19c):'')),console[_0x3b87d5(0x17a)](_0x3b87d5(0x1b4));try{const _0x1edfd4=_0x12d1a9['mes'],_0x2d63fa=_0x1173a4['optimizationTargetTag']||_0x3b87d5(0x185);let _0x4946dd;if(_0x2de943){_0x4946dd=extractFullTagBlock(_0x1edfd4,_0x2d63fa);if(!_0x4946dd||extractContentByTag(_0x4946dd,_0x2d63fa)?.[_0x3b87d5(0x135)]()===''){console['log'](_0x3b87d5(0x13a)+_0x2d63fa+'>\x20未找到或为空,优化任务已跳过。'),_0x4946dd=_0x1edfd4;if(!_0x17717d)return console[_0x3b87d5(0x151)]('外交任务总耗时'),console[_0x3b87d5(0x131)](),{'optimizedContent':_0x1edfd4,'summary':null};}}else _0x4946dd=_0x1edfd4;const _0x2ae644=getContext(),_0x47ff17=_0x2ae644[_0x3b87d5(0x1a4)]||'用户',_0x8886bf=_0x2ae644['name2']||'角色',_0x52d3fa=_0x553bca[_0x3b87d5(0x17b)]>0x0&&_0x553bca[_0x553bca[_0x3b87d5(0x17b)]-0x1][_0x3b87d5(0x10e)]?_0x553bca[_0x553bca['length']-0x1]:null,_0x11c55d=_0x52d3fa?_0x553bca['slice'](0x0,-0x1):_0x553bca,_0x5c4ea3=_0x11c55d['map'](_0x4a7f8d=>_0x4a7f8d[_0x3b87d5(0x126)]&&_0x4a7f8d[_0x3b87d5(0x126)][_0x3b87d5(0x135)]()?(_0x4a7f8d[_0x3b87d5(0x10e)]?_0x47ff17:_0x8886bf)+':\x20'+_0x4a7f8d[_0x3b87d5(0x126)]['trim']():null)[_0x3b87d5(0x1be)](Boolean)[_0x3b87d5(0x1bd)]('\x0a');let _0x347ede='';if(_0x1173a4[_0x3b87d5(0x10a)]){const _0xc79d90=characters[_0x2ae644[_0x3b87d5(0x18e)]];_0xc79d90?.[_0x3b87d5(0x1c5)]?.[_0x3b87d5(0x110)]?.[_0x3b87d5(0x166)]&&(_0x347ede=await getCombinedWorldbookContent(_0xc79d90[_0x3b87d5(0x1c5)][_0x3b87d5(0x110)][_0x3b87d5(0x166)]));}const _0x43e613=[];_0x1173a4['mainPrompt']?.[_0x3b87d5(0x135)]()&&_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x134),'content':_0x1173a4['mainPrompt']['trim']()});if(_0x2de943){if(_0x1173a4['systemPrompt']?.['trim']())_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x134),'content':_0x1173a4[_0x3b87d5(0x1a6)][_0x3b87d5(0x135)]()});}if(_0x2de943&&_0x17717d){const _0x4976ea=(_0x3b87d5(0x111)+_0x4946dd[_0x3b87d5(0x143)](extractContentByTag(_0x4946dd,_0x2d63fa),_0x3b87d5(0x162))+_0x3b87d5(0x124)+(_0x1173a4[_0x3b87d5(0x1b9)]?.['trim']()||_0x3b87d5(0x1a3)))[_0x3b87d5(0x135)]();_0x43e613['push']({'role':_0x3b87d5(0x134),'content':_0x4976ea});}else{if(!_0x2de943&&_0x17717d){const _0x4e2536='请严格遵循以下指令:基于所有提供的背景和对话内容,生成一段精炼的剧情摘要。直接输出摘要文本,不要包含任何多余的解释、标签或前缀。\x0a\x0a[总结核心要求]:\x0a'+_0x1173a4[_0x3b87d5(0x1b9)]['trim']();_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x134),'content':_0x4e2536});}}if(_0x347ede)_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x148),'content':_0x3b87d5(0x167)+_0x347ede});if(_0x5c4ea3)_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x148),'content':_0x3b87d5(0x12c)+_0x5c4ea3});let _0x10edd0=_0x52d3fa?_0x47ff17+':\x20'+_0x52d3fa[_0x3b87d5(0x126)]+'\x0a'+_0x8886bf+':\x20'+_0x4946dd:_0x4946dd;_0x43e613[_0x3b87d5(0x1d0)]({'role':_0x3b87d5(0x148),'content':_0x3b87d5(0x17d)+_0x10edd0}),console['groupCollapsed']('[Amily2号-最终国书内容\x20(发往AI)]'),console[_0x3b87d5(0x163)](_0x43e613),console[_0x3b87d5(0x131)]();const _0x25807c=isGoogleEndpoint(_0x1173a4[_0x3b87d5(0x165)]);let _0x5d9d8b=_0x1173a4[_0x3b87d5(0x165)]['trim']();const _0x49d207=_0x1173a4[_0x3b87d5(0x136)];let _0x522a5a;if(_0x1173a4[_0x3b87d5(0x113)]){console[_0x3b87d5(0x182)]('[Amily2号-外交部]\x20执行“皇家密道”协议...');if(typeof ChatCompletionService===_0x3b87d5(0x177)||!ChatCompletionService?.[_0x3b87d5(0x123)]){const _0x3da65b='无法使用“皇家密道”:当前SillyTavern版本过低或缺少核心文件\x20/scripts/custom-request.js。';toastr[_0x3b87d5(0x155)](_0x3da65b,_0x3b87d5(0x1a5));throw new Error(_0x3da65b);}try{const _0x4ae4bf={'stream':![],'messages':_0x43e613,'max_tokens':_0x1173a4[_0x3b87d5(0x15e)],'temperature':_0x1173a4['temperature'],'model':_0x1173a4['model'],'chat_completion_source':_0x3b87d5(0x119),'custom_url':_0x1173a4['apiUrl'],'reverse_proxy':_0x3b87d5(0x14c)};console[_0x3b87d5(0x182)](_0x3b87d5(0x12f),_0x4ae4bf);const _0x326f03=await ChatCompletionService['processRequest'](_0x4ae4bf,{},!![]);if(!_0x326f03||!_0x326f03[_0x3b87d5(0x185)])throw new Error('皇家信使未能带回有效情报(响应为空)。');_0x522a5a=_0x326f03[_0x3b87d5(0x185)];}catch(_0x473094){console[_0x3b87d5(0x155)](_0x3b87d5(0x14d),_0x473094);throw _0x473094;}}else{console[_0x3b87d5(0x182)]('[Amily2号-外交部]\x20执行“帝国直通车”协议(直接通讯)...');const _0x4a33cb=isGoogleEndpoint(_0x1173a4['apiUrl']);let _0x2b9134=_0x1173a4[_0x3b87d5(0x165)][_0x3b87d5(0x135)]();const _0x621612=_0x1173a4['model'],_0x1d4ca1=_0x1173a4[_0x3b87d5(0x15e)],_0x3342d9=_0x1173a4[_0x3b87d5(0x11c)];let _0x488e88;if(_0x4a33cb)_0x488e88=buildGoogleApiUrl(_0x2b9134,_0x621612),console['log'](_0x3b87d5(0x1cc)+_0x488e88);else{let _0x1786ca=_0x2b9134;_0x1786ca['endsWith']('/')&&(_0x1786ca=_0x1786ca['slice'](0x0,-0x1)),_0x1786ca[_0x3b87d5(0x192)]('/v1')&&(_0x1786ca=_0x1786ca[_0x3b87d5(0x1c4)](0x0,-0x3)),_0x1786ca['endsWith'](_0x3b87d5(0x14f))||_0x1786ca[_0x3b87d5(0x192)]('/v1beta/openai')?_0x488e88=_0x1786ca:_0x488e88=_0x1786ca+'/v1/chat/completions';}console[_0x3b87d5(0x182)](_0x3b87d5(0x19e)+_0x488e88);const _0x336f0f=_0x1173a4[_0x3b87d5(0x114)]?.[_0x3b87d5(0x135)](),_0x310ff1={'Content-Type':_0x3b87d5(0x13f)};_0x4a33cb?urlObject['hostname'][_0x3b87d5(0x19b)](_0x3b87d5(0x1a1))||_0x2b9134[_0x3b87d5(0x19b)](_0x3b87d5(0x147))?_0x310ff1[_0x3b87d5(0x133)]=_0x3b87d5(0x1ae)+_0x336f0f:_0x310ff1['X-goog-api-key']=_0x336f0f:_0x310ff1[_0x3b87d5(0x133)]=_0x3b87d5(0x1ae)+_0x336f0f;let _0x39526e;_0x4a33cb?_0x39526e=JSON['stringify'](convertToGoogleRequest({'model':_0x621612,'messages':_0x43e613,'max_tokens':_0x1d4ca1,'temperature':_0x3342d9})):_0x39526e=JSON[_0x3b87d5(0x169)]({'model':_0x621612,'messages':_0x43e613,'max_tokens':_0x1d4ca1,'temperature':_0x3342d9,'stream':![]});const _0x263fb4=await fetch(_0x488e88,{'method':_0x3b87d5(0x12b),'headers':_0x310ff1,'body':_0x39526e});if(!_0x263fb4['ok'])throw new Error('API请求失败:\x20'+_0x263fb4[_0x3b87d5(0x157)]+'\x20'+_0x263fb4[_0x3b87d5(0x144)]+_0x3b87d5(0x16a)+await _0x263fb4['text']());let _0x75daec=await _0x263fb4[_0x3b87d5(0x194)]();if(_0x4a33cb&&_0x75daec[_0x3b87d5(0x150)]&&_0x75daec['metadata']){console['log']('[Amily2号-Google外交部]\x20收到异步操作ID,启用轮询机制...');const _0xc715f7=_0x75daec['name'],_0x155398=progressTracker(_0xc715f7,0x6);_0x155398[_0x3b87d5(0x125)]();try{const _0x71f275=createGooglePollingTask(_0xc715f7,urlObject['origin'],_0x310ff1),_0x38bdec={'maxAttempts':0x6,'baseDelay':0xbb8,'shouldStop':_0x4dc6f8=>_0x4dc6f8[_0x3b87d5(0x117)],'onAttempt':(_0x13bdf7,_0x46bea7)=>{const _0x524202=_0x3b87d5;_0x155398[_0x524202(0x16f)](_0x13bdf7,_0x46bea7);},'onError':(_0x5315a2,_0x1209d3)=>{_0x155398['error'](_0x5315a2['message']);}},_0xc3d4f0=await intelligentPoll(_0x71f275,_0x38bdec);_0x155398['complete']();if(!_0xc3d4f0[_0x3b87d5(0x160)])throw new Error(_0x3b87d5(0x154));_0x75daec=_0xc3d4f0[_0x3b87d5(0x160)],_0x522a5a=parseGoogleResponse(_0x75daec)?.[_0x3b87d5(0x17e)]?.[0x0]?.[_0x3b87d5(0x17c)]?.[_0x3b87d5(0x185)];}catch(_0x237da6){console[_0x3b87d5(0x155)](_0x3b87d5(0x1b1),_0x237da6),_0x155398[_0x3b87d5(0x155)](_0x3b87d5(0x1b3)+_0x237da6['message']);throw new Error('轮询任务失败:\x20'+_0x237da6['message']);}}else _0x522a5a=_0x4a33cb?parseGoogleResponse(_0x75daec)?.[_0x3b87d5(0x17e)]?.[0x0]?.[_0x3b87d5(0x17c)]?.[_0x3b87d5(0x185)]:_0x75daec?.[_0x3b87d5(0x17e)]?.[0x0]?.['message']?.[_0x3b87d5(0x185)];}if(!_0x522a5a)return console[_0x3b87d5(0x155)](_0x3b87d5(0x122),_0x522a5a),null;console[_0x3b87d5(0x15f)](_0x3b87d5(0x1ce)),console[_0x3b87d5(0x182)](_0x522a5a),console[_0x3b87d5(0x131)]();let _0x15eff4=_0x1edfd4,_0x5f32c4=null;if(_0x2de943&&_0x17717d){const _0x17a002=_0x3b87d5(0x142),_0x55639c=_0x522a5a['split'](_0x17a002),_0x3c4b3e=_0x55639c[0x0]?.[_0x3b87d5(0x135)]();_0x5f32c4=_0x55639c[0x1]?.[_0x3b87d5(0x135)]()||null;if(_0x3c4b3e){const _0x30bf5b=extractContentByTag(_0x3c4b3e,_0x2d63fa);_0x30bf5b?.[_0x3b87d5(0x135)]()&&(_0x15eff4=replaceContentByTag(_0x1edfd4,_0x2d63fa,_0x30bf5b));}}else{if(_0x2de943){const _0x365105=extractContentByTag(_0x522a5a,_0x2d63fa);_0x365105?.[_0x3b87d5(0x135)]()&&(_0x15eff4=replaceContentByTag(_0x1edfd4,_0x2d63fa,_0x365105));}else _0x5f32c4=_0x522a5a['trim']();}const _0xca2c41={'optimizedContent':_0x15eff4,'summary':_0x5f32c4};return _0x5f32c4&&_0x17717d&&(_0xca2c41[_0x3b87d5(0x1a9)]={'activationMode':_0x1173a4[_0x3b87d5(0x181)],'insertionPosition':_0x1173a4['loreInsertionPosition'],'depth':_0x1173a4['loreDepth'],'keywords':_0x1173a4[_0x3b87d5(0x11e)],'target':_0x1173a4[_0x3b87d5(0x190)]},console[_0x3b87d5(0x182)](_0x3b87d5(0x18c),_0xca2c41['loreSettings'])),console[_0x3b87d5(0x151)](_0x3b87d5(0x1b4)),console[_0x3b87d5(0x131)](),_0xca2c41;}catch(_0x1ae4e0){return console['error'](_0x3b87d5(0x199),_0x1ae4e0),toastr[_0x3b87d5(0x155)]('Amily2号任务失败:\x20'+_0x1ae4e0[_0x3b87d5(0x17c)],_0x3b87d5(0x1cb)),console[_0x3b87d5(0x151)]('外交任务总耗时'),console[_0x3b87d5(0x131)](),null;}}
|