diff --git a/src/renderer/src/providers/OpenAIProvider.ts b/src/renderer/src/providers/OpenAIProvider.ts index 08be2e63..011ee6ff 100644 --- a/src/renderer/src/providers/OpenAIProvider.ts +++ b/src/renderer/src/providers/OpenAIProvider.ts @@ -520,10 +520,33 @@ export default class OpenAIProvider extends BaseProvider { } let text = '' + let isThinking = false + const isReasoning = isReasoningModel(model) for await (const chunk of response) { - text += chunk.choices[0]?.delta?.content || '' - onResponse?.(text) + const deltaContent = chunk.choices[0]?.delta?.content || '' + + if (!deltaContent.trim()) { + continue + } + + if (isReasoning) { + if (deltaContent.includes('')) { + isThinking = true + } + + if (!isThinking) { + text += deltaContent + onResponse?.(text) + } + + if (deltaContent.includes('')) { + isThinking = false + } + } else { + text += deltaContent + onResponse?.(text) + } } return text