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({