@@ -406,10 +425,10 @@
}
container.appendChild(messageElement);
- // 确保结果容器是可见的
- const resultContainer = document.getElementById('queryResult');
- if (resultContainer && !resultContainer.classList.contains('visible')) {
- resultContainer.classList.add('visible');
+ // 确保处理过程容器是可见的
+ const processContainer = document.getElementById('processResult');
+ if (processContainer && !processContainer.classList.contains('visible')) {
+ processContainer.classList.add('visible');
}
// 滚动到底部
@@ -425,10 +444,8 @@
}
// 工具函数:显示结果
- function showResult(message) {
+ function showResult() {
const resultElement = document.getElementById('queryResult');
- const resultTextElement = document.getElementById('resultText');
- resultTextElement.textContent = message;
resultElement.classList.add('visible');
}
@@ -438,6 +455,18 @@
resultElement.classList.remove('visible');
}
+ // 工具函数:显示处理过程
+ function showProcessResult() {
+ const processElement = document.getElementById('processResult');
+ processElement.classList.add('visible');
+ }
+
+ // 工具函数:隐藏处理过程
+ function hideProcessResult() {
+ const processElement = document.getElementById('processResult');
+ processElement.classList.remove('visible');
+ }
+
// 工具函数:转义HTML特殊字符
function escapeHtml(text) {
const map = {
@@ -532,8 +561,7 @@
document.getElementById('resultText').textContent = message.content;
showResult();
}
- // 同时添加到消息容器中
- addMessageToContainer(message);
+ // 不将answer消息添加到处理过程容器中,只显示在查询结果框中
break;
default:
console.log('Unknown message type:', message.type);
@@ -582,6 +610,7 @@
setButtonLoading(button, true);
showStatus('loadStatus', '正在加载文件...', 'loading');
hideResult();
+ hideProcessResult();
try {
const response = await fetch('/load-files/', {
@@ -649,6 +678,7 @@
setButtonLoading(button, true);
showStatus('webLoadStatus', '正在加载网站内容...', 'loading');
hideResult();
+ hideProcessResult();
try {
const response = await fetch('/load-website/', {
@@ -702,6 +732,7 @@
setButtonLoading(button, true);
showStatus('queryStatus', '正在启动查询...', 'loading');
hideResult();
+ hideProcessResult();
// 清空消息容器
const container = document.getElementById('messageContainer');
diff --git a/main.py b/main.py
index 58fd9f2..7e268e2 100644
--- a/main.py
+++ b/main.py
@@ -316,7 +316,11 @@ async def perform_query_stream(
print(f"Query error: {error}")
yield f"data: {json.dumps({'type': 'error', 'content': f'查询失败: {error}'}, ensure_ascii=False)}\n\n"
return
- # 成功完成时,发送complete消息并结束
+ # 成功完成时,先发送answer消息包含查询结果
+ if result_text:
+ print(f"Sending answer message with result length: {len(result_text)}")
+ yield f"data: {json.dumps({'type': 'answer', 'content': result_text}, ensure_ascii=False)}\n\n"
+ # 然后发送complete消息并结束
print("Query completed successfully, sending complete message")
yield f"data: {json.dumps({'type': 'complete', 'content': '查询完成'}, ensure_ascii=False)}\n\n"
print("Complete message sent, ending stream")