From 50842d5829d572fab26c29c1debe3213dadecf0d Mon Sep 17 00:00:00 2001 From: kwaroran Date: Mon, 24 Mar 2025 17:02:42 +0900 Subject: [PATCH] Add abort signal handling to request functions --- src/ts/process/request.ts | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/ts/process/request.ts b/src/ts/process/request.ts index 9794919b..62251fdb 100644 --- a/src/ts/process/request.ts +++ b/src/ts/process/request.ts @@ -283,6 +283,13 @@ export async function requestChatData(arg:requestDataArgument, model:ModelModeEx } while(true){ + + if(abortSignal?.aborted){ + return { + type: 'fail', + result: 'Aborted' + } + } if(pluginV2.replacerbeforeRequest.size > 0){ for(const replacer of pluginV2.replacerbeforeRequest){ @@ -317,6 +324,13 @@ export async function requestChatData(arg:requestDataArgument, model:ModelModeEx ...arg, staticModel: fallBackModels[fallbackIndex] }, model, abortSignal) + + if(abortSignal.aborted){ + return { + type: 'fail', + result: 'Aborted' + } + } if(da.type === 'success' && pluginV2.replacerafterRequest.size > 0){ for(const replacer of pluginV2.replacerafterRequest){ @@ -1401,7 +1415,8 @@ async function requestOpenAILegacyInstruct(arg:RequestDataArgumentExtended):Prom "Content-Type": "application/json", "Authorization": "Bearer " + (arg.key ?? db.openAIKey) }, - chatId: arg.chatId + chatId: arg.chatId, + abortSignal: arg.abortSignal }); if(!response.ok){ @@ -1552,7 +1567,8 @@ async function requestOpenAIResponseAPI(arg:RequestDataArgumentExtended):Promise "Content-Type": "application/json", "Authorization": "Bearer " + (arg.key ?? db.openAIKey), }, - chatId: arg.chatId + chatId: arg.chatId, + abortSignal: arg.abortSignal }); if(!response.ok){ @@ -1669,7 +1685,7 @@ async function requestNovelAI(arg:RequestDataArgumentExtended):Promise