diff --git a/src/memos/api/handlers/chat_handler.py b/src/memos/api/handlers/chat_handler.py index 73219765..7647bb39 100644 --- a/src/memos/api/handlers/chat_handler.py +++ b/src/memos/api/handlers/chat_handler.py @@ -405,17 +405,6 @@ def generate_chat_response() -> Generator[str, None, None]: async_mode="sync", ) - # Use first readable cube ID for scheduler (backward compatibility) - scheduler_cube_id = ( - readable_cube_ids[0] if readable_cube_ids else chat_req.user_id - ) - self._send_message_to_scheduler( - user_id=chat_req.user_id, - mem_cube_id=scheduler_cube_id, - query=chat_req.query, - label=QUERY_TASK_LABEL, - ) - # ====== first search text mem with parse goal ====== search_req = APISearchPlaygroundRequest( query=chat_req.query, @@ -454,6 +443,17 @@ def generate_chat_response() -> Generator[str, None, None]: yield f"data: {json.dumps({'type': 'reference', 'data': reference})}\n\n" + # Use first readable cube ID for scheduler (backward compatibility) + scheduler_cube_id = ( + readable_cube_ids[0] if readable_cube_ids else chat_req.user_id + ) + self._send_message_to_scheduler( + user_id=chat_req.user_id, + mem_cube_id=scheduler_cube_id, + query=chat_req.query, + label=QUERY_TASK_LABEL, + ) + # parse goal for internet search searcher = self.dependencies.searcher parsed_goal = searcher.task_goal_parser.parse( @@ -476,14 +476,14 @@ def generate_chat_response() -> Generator[str, None, None]: # internet status yield f"data: {json.dumps({'type': 'status', 'data': 'start_internet_search'})}\n\n" - # ====== internet search with parse goal ====== + # ====== second deep search ====== search_req = APISearchPlaygroundRequest( query=parsed_goal.rephrased_query or chat_req.query + (f"{parsed_goal.tags}" if parsed_goal.tags else ""), user_id=chat_req.user_id, readable_cube_ids=readable_cube_ids, mode="fast", - internet_search=chat_req.internet_search, + internet_search=chat_req.internet_search or parsed_goal.internet_search, top_k=chat_req.top_k, chat_history=chat_req.history, session_id=chat_req.session_id,