Skip to content

Commit cf267ba

Browse files
committed
fix: 在队列处理锁释放后清空聊天历史,优化请求处理逻辑
1 parent 4d1fce5 commit cf267ba

2 files changed

Lines changed: 21 additions & 8 deletions

File tree

api_utils/queue_worker.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from fastapi import HTTPException
99

1010

11+
1112
async def queue_worker():
1213
"""队列工作器,处理请求队列中的任务"""
1314
# 导入全局变量
@@ -224,12 +225,24 @@ async def queue_worker():
224225
if not result_future.done():
225226
result_future.set_exception(HTTPException(status_code=500, detail=f"[{req_id}] Request processing error: {process_err}"))
226227

227-
# 清空流式队列缓存
228-
logger.info(f"[{req_id}] (Worker) 尝试清空流式队列缓存...")
229-
from api_utils import clear_stream_queue
230-
await clear_stream_queue()
231228
logger.info(f"[{req_id}] (Worker) 释放处理锁。")
232-
229+
230+
# 在释放处理锁后立即执行清空操作
231+
try:
232+
# 清空流式队列缓存
233+
from api_utils import clear_stream_queue
234+
await clear_stream_queue()
235+
236+
# 清空聊天历史(如果有必要的参数)
237+
if completion_event and submit_btn_loc and client_disco_checker:
238+
from server import page_instance, is_page_ready
239+
if page_instance and is_page_ready:
240+
from browser_utils.page_controller import PageController
241+
page_controller = PageController(page_instance, logger, req_id)
242+
await page_controller.clear_chat_history(client_disco_checker)
243+
except Exception as clear_err:
244+
logger.error(f"[{req_id}] (Worker) 清空操作时发生错误: {clear_err}", exc_info=True)
245+
233246
was_last_request_streaming = is_streaming_request
234247
last_request_completion_time = time.time()
235248

api_utils/request_processor.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -733,10 +733,10 @@ async def _process_request_refactored(
733733
await _handle_parameter_cache(req_id, context)
734734

735735
prepared_prompt = await _prepare_and_validate_request(req_id, request, check_client_disconnected)
736-
736+
737737
# 使用PageController处理页面交互
738-
await page_controller.clear_chat_history(check_client_disconnected)
739-
738+
# 注意:聊天历史清空已移至队列处理锁释放后执行
739+
740740
await page_controller.adjust_parameters(
741741
request.model_dump(exclude_none=True), # 使用 exclude_none=True 避免传递None值
742742
context['page_params_cache'],

0 commit comments

Comments
 (0)