|
18 | 18 | from memos.api.product_models import APISearchRequest, SearchResponse |
19 | 19 | from memos.context.context import ContextThreadPoolExecutor |
20 | 20 | from memos.log import get_logger |
21 | | -from memos.mem_scheduler.schemas.general_schemas import FINE_STRATEGY, FineStrategy, SearchMode |
22 | | -from memos.types import MOSSearchResult, UserContext |
| 21 | +from memos.types import FINE_STRATEGY, FineStrategy, MOSSearchResult, SearchMode, UserContext |
23 | 22 |
|
24 | 23 |
|
25 | 24 | logger = get_logger(__name__) |
@@ -212,10 +211,29 @@ def _fast_search( |
212 | 211 | return formatted_memories |
213 | 212 |
|
214 | 213 | def _deep_search( |
215 | | - self, search_req: APISearchRequest, user_context: UserContext, max_thinking_depth: int |
| 214 | + self, |
| 215 | + search_req: APISearchRequest, |
| 216 | + user_context: UserContext, |
216 | 217 | ) -> list: |
217 | | - logger.error("waiting to be implemented") |
218 | | - return [] |
| 218 | + target_session_id = search_req.session_id or "default_session" |
| 219 | + search_filter = {"session_id": search_req.session_id} if search_req.session_id else None |
| 220 | + |
| 221 | + info = { |
| 222 | + "user_id": search_req.user_id, |
| 223 | + "session_id": target_session_id, |
| 224 | + "chat_history": search_req.chat_history, |
| 225 | + } |
| 226 | + |
| 227 | + return self.searcher.deep_search( |
| 228 | + query=search_req.query, |
| 229 | + user_name=user_context.mem_cube_id, |
| 230 | + top_k=search_req.top_k, |
| 231 | + mode=SearchMode.FINE, |
| 232 | + manual_close_internet=not search_req.internet_search, |
| 233 | + moscube=search_req.moscube, |
| 234 | + search_filter=search_filter, |
| 235 | + info=info, |
| 236 | + ) |
219 | 237 |
|
220 | 238 | def _fine_search( |
221 | 239 | self, |
|
0 commit comments