diff --git a/src/renderer/src/providers/AiProvider/AnthropicProvider.ts b/src/renderer/src/providers/AiProvider/AnthropicProvider.ts index e06787d35c..c2fee1d1e5 100644 --- a/src/renderer/src/providers/AiProvider/AnthropicProvider.ts +++ b/src/renderer/src/providers/AiProvider/AnthropicProvider.ts @@ -259,7 +259,17 @@ export default class AnthropicProvider extends BaseProvider { .on('text', (text) => { if (hasThinkingContent && !checkThinkingContent) { checkThinkingContent = true - onChunk({ type: ChunkType.THINKING_COMPLETE, text: thinking_content, thinking_millsec: 0 }) + onChunk({ + type: ChunkType.THINKING_COMPLETE, + text: thinking_content, + thinking_millsec: time_first_content_millsec - time_first_token_millsec + }) + // FIXME: 临时方案,重置时间戳和思考内容 + time_first_token_millsec = 0 + time_first_content_millsec = 0 + thinking_content = '' + checkThinkingContent = false + hasThinkingContent = false } if (time_first_token_millsec == 0) { time_first_token_millsec = new Date().getTime() - start_time_millsec diff --git a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts index df9799b966..04a8f38295 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts @@ -559,6 +559,12 @@ export default class OpenAIProvider extends BaseProvider { text: thinkingContent, thinking_millsec: final_time_thinking_millsec_delta }) + + // FIXME: 临时方案,重置时间戳和思考内容 + time_first_token_millsec = 0 + time_first_content_millsec = 0 + thinkingContent = '' + isFirstThinkingChunk = true } } diff --git a/src/renderer/src/store/thunk/messageThunk.ts b/src/renderer/src/store/thunk/messageThunk.ts index f56ccec41a..3b9485565f 100644 --- a/src/renderer/src/store/thunk/messageThunk.ts +++ b/src/renderer/src/store/thunk/messageThunk.ts @@ -280,6 +280,9 @@ const fetchAndProcessAssistantResponseImpl = async ( if (newBlockType !== MessageBlockType.MAIN_TEXT) { accumulatedContent = '' } + if (newBlockType !== MessageBlockType.THINKING) { + accumulatedThinking = '' + } console.log(`[Transition] Adding/Updating new ${newBlockType} block ${newBlock.id}.`) dispatch( newMessagesActions.updateMessage({