diff --git a/src/memos/api/handlers/chat_handler.py b/src/memos/api/handlers/chat_handler.py index 83b8556e8..c609bbb2b 100644 --- a/src/memos/api/handlers/chat_handler.py +++ b/src/memos/api/handlers/chat_handler.py @@ -21,7 +21,6 @@ from memos.api.product_models import ( APIADDRequest, APIChatCompleteRequest, - APISearchPlaygroundRequest, APISearchRequest, ChatPlaygroundRequest, ChatRequest, @@ -397,7 +396,7 @@ def generate_chat_response() -> Generator[str, None, None]: ) # ====== first search text mem with parse goal ====== - search_req = APISearchPlaygroundRequest( + search_req = APISearchRequest( query=chat_req.query, user_id=chat_req.user_id, readable_cube_ids=readable_cube_ids, @@ -476,14 +475,14 @@ def generate_chat_response() -> Generator[str, None, None]: yield f"data: {json.dumps({'type': 'status', 'data': 'start_internet_search'})}\n\n" # ====== second deep search ====== - search_req = APISearchPlaygroundRequest( + search_req = APISearchRequest( 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 or parsed_goal.internet_search, - top_k=chat_req.top_k, + top_k=100, # for playground, we need to search more memories chat_history=chat_req.history, session_id=chat_req.session_id, include_preference=False, @@ -504,12 +503,14 @@ def generate_chat_response() -> Generator[str, None, None]: if text_mem_results and text_mem_results[0].get("memories"): memories_list = text_mem_results[0]["memories"] - # Filter memories by threshold - second_filtered_memories = self._filter_memories_by_threshold(memories_list, 15) + # Filter memories by threshold, min_num is the min number of memories for playground + second_filtered_memories = self._filter_memories_by_threshold( + memories_list, min_num=15 + ) # dedup and supplement memories fast_length = len(filtered_memories) - supplement_length = max(0, chat_req.top_k - fast_length) + supplement_length = max(0, 25 - fast_length) # 25 is the max mem for playground filtered_memories = self._dedup_and_supplement_memories( filtered_memories, second_filtered_memories )[:supplement_length] diff --git a/src/memos/api/product_models.py b/src/memos/api/product_models.py index a3fa6d2d9..5c55c6871 100644 --- a/src/memos/api/product_models.py +++ b/src/memos/api/product_models.py @@ -458,10 +458,6 @@ def _convert_deprecated_fields(self) -> "APISearchRequest": return self -class APISearchPlaygroundRequest(APISearchRequest): - """Request model for searching memories in playground.""" - - class APIADDRequest(BaseRequest): """Request model for creating memories.""" diff --git a/src/memos/templates/mos_prompts.py b/src/memos/templates/mos_prompts.py index 88f554336..e77179a40 100644 --- a/src/memos/templates/mos_prompts.py +++ b/src/memos/templates/mos_prompts.py @@ -261,7 +261,7 @@ - 避免无意义的空行 - 保持回复语言与用户查询语言一致 - **绝不**在对用户的回复中提及内部机制,如"检索的记忆"、"数据库"、"AI观点"、"记忆系统"或类似技术术语 -- 回复内容的最后不要出现`(注: ...)`或`(根据...)`等解释 +- 回复内容的结尾不要出现`(注: ...)`或`(根据...)`等解释 ## 核心原则 - 仅引用相关记忆以避免信息过载