From dd15b391c52b9dc7e5b71776a55b8ab6acbc4b58 Mon Sep 17 00:00:00 2001 From: SuYao Date: Thu, 5 Jun 2025 22:49:29 +0800 Subject: [PATCH] fix(OpenAIProvider): ensure tool_calls are only yielded when present (#6861) This update modifies the OpenAIProvider to yield tool_calls only if they exist and have a length greater than zero, improving the handling of delta content. Additionally, a minor cleanup was performed by removing an unnecessary blank line in the code. --- src/renderer/src/providers/AiProvider/OpenAIProvider.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts index 833cc45a0a..945a8b3ac9 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts @@ -635,7 +635,7 @@ export default class OpenAIProvider extends BaseOpenAIProvider { if (delta?.content) { yield { type: 'text-delta', textDelta: delta.content } } - if (delta?.tool_calls) { + if (delta?.tool_calls && delta?.tool_calls.length > 0) { yield { type: 'tool-calls', delta: delta } } @@ -664,7 +664,6 @@ export default class OpenAIProvider extends BaseOpenAIProvider { for await (const chunk of readableStreamAsyncIterable(processedStream)) { const delta = chunk.type === 'finish' ? chunk.delta : chunk const rawChunk = chunk.type === 'finish' ? chunk.chunk : chunk - switch (chunk.type) { case 'reasoning': { if (time_first_token_millsec === 0) {