From 0dfa76dad67d6064528f510b7681e274f61dfba0 Mon Sep 17 00:00:00 2001 From: hubian <908234780@qq.com> Date: Sun, 26 Apr 2026 11:38:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E6=B7=B1=E5=BA=A6?= =?UTF-8?q?=E6=80=9D=E8=80=83=E9=80=BB=E8=BE=91=20-=20=E5=8F=AA=E6=9C=89?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E6=97=B6=E6=89=8D=E5=A4=84=E7=90=86=E6=80=9D?= =?UTF-8?q?=E8=80=83=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- www/app.js | 29 +++++++++++++++++------------ www/index.html | 6 +++--- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/www/app.js b/www/app.js index 6d66f3a..544c5bd 100644 --- a/www/app.js +++ b/www/app.js @@ -395,10 +395,12 @@ async function streamGenerate(userMsgIndex) { sendBtn.disabled = true; const aiMessageIndex = currentConversation.messages.length; + + // 只有开启深度思考时才添加 thinking 字段 currentConversation.messages.push({ role: 'assistant', content: '', - thinking: '' // 思考内容 + ...(enableThinking ? { thinking: '' } : {}) }); renderMessages(); @@ -406,8 +408,14 @@ async function streamGenerate(userMsgIndex) { const contentEl = lastMessageEl.querySelector('.message-content'); const thinkingEl = lastMessageEl.querySelector('.thinking-content'); + // 深度思考模式:思考块默认展开 + if (enableThinking && thinkingEl) { + const thinkingBlock = lastMessageEl.querySelector('.thinking-block'); + if (thinkingBlock) thinkingBlock.classList.add('expanded'); + thinkingEl.innerHTML = '思考中...'; + } + contentEl.innerHTML = ''; - if (thinkingEl) thinkingEl.innerHTML = ''; try { // 根据开关选择模型 @@ -437,7 +445,7 @@ async function streamGenerate(userMsgIndex) { const reader = response.body.getReader(); const decoder = new TextDecoder(); let buffer = ''; - let thinkingComplete = false; // 思考是否完成 + let thinkingOutputStarted = false; // 正式内容是否开始输出 while (true) { const { done, value } = await reader.read(); @@ -457,24 +465,21 @@ async function streamGenerate(userMsgIndex) { const delta = data.choices?.[0]?.delta; if (delta) { - // 处理思考内容 - if (delta.reasoning_content || delta.thinking) { + // 只有开启深度思考时才处理思考内容 + if (enableThinking && (delta.reasoning_content || delta.thinking)) { const thinkingChunk = delta.reasoning_content || delta.thinking; currentConversation.messages[aiMessageIndex].thinking += thinkingChunk; if (thinkingEl) { thinkingEl.innerHTML = renderMarkdown(currentConversation.messages[aiMessageIndex].thinking) + ''; - // 思考时展开 - const thinkingBlock = lastMessageEl.querySelector('.thinking-block'); - if (thinkingBlock) thinkingBlock.classList.add('expanded'); } scrollToBottom(); } // 处理正式回复内容 if (delta.content) { - // 如果开始输出正式内容,说明思考完成 - if (currentConversation.messages[aiMessageIndex].thinking && !thinkingComplete) { - thinkingComplete = true; + // 如果开启深度思考且开始输出正式内容,折叠思考块 + if (enableThinking && !thinkingOutputStarted && currentConversation.messages[aiMessageIndex].thinking) { + thinkingOutputStarted = true; // 折叠思考内容 const thinkingBlock = lastMessageEl.querySelector('.thinking-block'); if (thinkingBlock) thinkingBlock.classList.remove('expanded'); @@ -492,7 +497,7 @@ async function streamGenerate(userMsgIndex) { } // 最终渲染 - if (thinkingEl && currentConversation.messages[aiMessageIndex].thinking) { + if (thinkingEl && enableThinking && currentConversation.messages[aiMessageIndex].thinking) { thinkingEl.innerHTML = renderMarkdown(currentConversation.messages[aiMessageIndex].thinking); } contentEl.innerHTML = renderMarkdown(currentConversation.messages[aiMessageIndex].content); diff --git a/www/index.html b/www/index.html index 25feb92..cce7968 100644 --- a/www/index.html +++ b/www/index.html @@ -8,12 +8,12 @@ AI助手 - +
- - + + \ No newline at end of file