fix: 调整对话流程顺序
1. 用户发送消息 → 前端立即显示 2. 后端收到 → 广播用户消息 → 执行搜索 → 发送搜索结果 3. AI生成回复 → 显示 - sendMessage 立即显示用户消息 - user_message 事件避免重复显示 - 后端处理顺序:广播 → 搜索 → 保存 → LLM
This commit is contained in:
@@ -280,9 +280,11 @@
|
||||
case 'stream_end': document.getElementById('sendBtn').disabled = false; break;
|
||||
case 'user_message':
|
||||
lastUserMessage = data.message.content; // 存储最后一条用户消息
|
||||
if (!isRegenerating) {
|
||||
// 如果是刚发送的消息,已经显示了,不再重复显示
|
||||
if (!isRegenerating && data.message.content !== lastSentMessage) {
|
||||
appendMessage('user', data.message.content);
|
||||
}
|
||||
lastSentMessage = null; // 清除标记
|
||||
// 注意:不要在这里重置 isRegenerating,要等 assistant_message 处理后再重置
|
||||
break;
|
||||
case 'assistant_message':
|
||||
@@ -756,6 +758,10 @@
|
||||
input.value = '';
|
||||
input.style.height = 'auto';
|
||||
|
||||
// 立即显示用户消息(不等后端广播)
|
||||
lastSentMessage = msg; // 记录最后发送的消息,避免重复显示
|
||||
appendMessage('user', msg);
|
||||
|
||||
// 获取工具禁用状态
|
||||
const enableSearch = document.getElementById('enableSearch').checked;
|
||||
const disabledTools = [];
|
||||
@@ -772,6 +778,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
let lastSentMessage = null; // 记录最后发送的消息
|
||||
|
||||
function setupTextarea() {
|
||||
const textarea = document.getElementById('messageInput');
|
||||
textarea.addEventListener('keydown', e => { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); sendMessage(); } });
|
||||
|
||||
Reference in New Issue
Block a user