From 6c5088f0718ac44c67972ff07b02fc53f69699d8 Mon Sep 17 00:00:00 2001 From: Phantom <59059173+EurFelux@users.noreply.github.com> Date: Sat, 9 Aug 2025 02:22:09 +0800 Subject: [PATCH] fix(aiCore): FinalChunkConsumerMiddleware throw error (#8993) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(aiCore): 修复中间件错误处理和日志输出问题 修复FinalChunkConsumerMiddleware中错误无法被ErrorHandlerMiddleware捕获的问题,并优化日志输出格式 * fix: 移除检查API时的冗余日志记录 --- src/renderer/src/aiCore/index.ts | 5 ++++- .../middleware/common/FinalChunkConsumerMiddleware.ts | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/aiCore/index.ts b/src/renderer/src/aiCore/index.ts index 47fb4cd707..16c8949cfc 100644 --- a/src/renderer/src/aiCore/index.ts +++ b/src/renderer/src/aiCore/index.ts @@ -123,7 +123,10 @@ export default class AiProvider { } const middlewares = builder.build() - logger.silly('middlewares', middlewares) + logger.silly( + 'middlewares', + middlewares.map((m) => m.name) + ) // 3. Create the wrapped SDK method with middlewares const wrappedCompletionMethod = applyCompletionsMiddlewares(client, client.createCompletions, middlewares) diff --git a/src/renderer/src/aiCore/middleware/common/FinalChunkConsumerMiddleware.ts b/src/renderer/src/aiCore/middleware/common/FinalChunkConsumerMiddleware.ts index e36e45807a..57498b97fb 100644 --- a/src/renderer/src/aiCore/middleware/common/FinalChunkConsumerMiddleware.ts +++ b/src/renderer/src/aiCore/middleware/common/FinalChunkConsumerMiddleware.ts @@ -85,9 +85,15 @@ const FinalChunkConsumerMiddleware: CompletionsMiddleware = logger.warn(`Received undefined chunk before stream was done.`) } } - } catch (error) { + } catch (error: any) { logger.error(`Error consuming stream:`, error as Error) - throw error + // FIXME: 临时解决方案。该中间件的异常无法被 ErrorHandlerMiddleware捕获。 + if (params.onError) { + params.onError(error) + } + if (params.shouldThrow) { + throw error + } } finally { if (params.onChunk && !isRecursiveCall) { params.onChunk({