@@ -69,14 +69,20 @@ def retrieve(
6969 mode = "fast" ,
7070 memory_type = "All" ,
7171 search_filter : dict | None = None ,
72+ search_priority : dict | None = None ,
7273 user_name : str | None = None ,
7374 ** kwargs ,
7475 ) -> list [tuple [TextualMemoryItem , float ]]:
7576 logger .info (
7677 f"[RECALL] Start query='{ query } ', top_k={ top_k } , mode={ mode } , memory_type={ memory_type } "
7778 )
7879 parsed_goal , query_embedding , context , query = self ._parse_task (
79- query , info , mode , search_filter = search_filter , user_name = user_name
80+ query ,
81+ info ,
82+ mode ,
83+ search_filter = search_filter ,
84+ search_priority = search_priority ,
85+ user_name = user_name ,
8086 )
8187 results = self ._retrieve_paths (
8288 query ,
@@ -87,6 +93,7 @@ def retrieve(
8793 mode ,
8894 memory_type ,
8995 search_filter ,
96+ search_priority ,
9097 user_name ,
9198 )
9299 return results
@@ -112,6 +119,7 @@ def search(
112119 mode = "fast" ,
113120 memory_type = "All" ,
114121 search_filter : dict | None = None ,
122+ search_priority : dict | None = None ,
115123 user_name : str | None = None ,
116124 ) -> list [TextualMemoryItem ]:
117125 """
@@ -128,6 +136,7 @@ def search(
128136 memory_type (str): Type restriction for search.
129137 ['All', 'WorkingMemory', 'LongTermMemory', 'UserMemory']
130138 search_filter (dict, optional): Optional metadata filters for search results.
139+ search_priority (dict, optional): Optional metadata priority for search results.
131140 Returns:
132141 list[TextualMemoryItem]: List of matching memories.
133142 """
@@ -147,6 +156,7 @@ def search(
147156 mode = mode ,
148157 memory_type = memory_type ,
149158 search_filter = search_filter ,
159+ search_priority = search_priority ,
150160 user_name = user_name ,
151161 )
152162
@@ -174,6 +184,7 @@ def _parse_task(
174184 mode ,
175185 top_k = 5 ,
176186 search_filter : dict | None = None ,
187+ search_priority : dict | None = None ,
177188 user_name : str | None = None ,
178189 ):
179190 """Parse user query, do embedding search and create context"""
@@ -192,7 +203,8 @@ def _parse_task(
192203 query_embedding ,
193204 top_k = top_k ,
194205 status = "activated" ,
195- search_filter = search_filter ,
206+ search_filter = search_priority ,
207+ filter = search_filter ,
196208 user_name = user_name ,
197209 )
198210 ]
@@ -244,6 +256,7 @@ def _retrieve_paths(
244256 mode ,
245257 memory_type ,
246258 search_filter : dict | None = None ,
259+ search_priority : dict | None = None ,
247260 user_name : str | None = None ,
248261 ):
249262 """Run A/B/C retrieval paths in parallel"""
@@ -264,6 +277,7 @@ def _retrieve_paths(
264277 top_k ,
265278 memory_type ,
266279 search_filter ,
280+ search_priority ,
267281 user_name ,
268282 id_filter ,
269283 )
@@ -277,6 +291,7 @@ def _retrieve_paths(
277291 top_k ,
278292 memory_type ,
279293 search_filter ,
294+ search_priority ,
280295 user_name ,
281296 id_filter ,
282297 mode = mode ,
@@ -313,6 +328,7 @@ def _retrieve_from_working_memory(
313328 top_k ,
314329 memory_type ,
315330 search_filter : dict | None = None ,
331+ search_priority : dict | None = None ,
316332 user_name : str | None = None ,
317333 id_filter : dict | None = None ,
318334 ):
@@ -326,6 +342,7 @@ def _retrieve_from_working_memory(
326342 top_k = top_k ,
327343 memory_scope = "WorkingMemory" ,
328344 search_filter = search_filter ,
345+ search_priority = search_priority ,
329346 user_name = user_name ,
330347 id_filter = id_filter ,
331348 use_fast_graph = self .use_fast_graph ,
@@ -349,6 +366,7 @@ def _retrieve_from_long_term_and_user(
349366 top_k ,
350367 memory_type ,
351368 search_filter : dict | None = None ,
369+ search_priority : dict | None = None ,
352370 user_name : str | None = None ,
353371 id_filter : dict | None = None ,
354372 mode : str = "fast" ,
@@ -378,6 +396,7 @@ def _retrieve_from_long_term_and_user(
378396 top_k = top_k * 2 ,
379397 memory_scope = "LongTermMemory" ,
380398 search_filter = search_filter ,
399+ search_priority = search_priority ,
381400 user_name = user_name ,
382401 id_filter = id_filter ,
383402 use_fast_graph = self .use_fast_graph ,
@@ -393,6 +412,7 @@ def _retrieve_from_long_term_and_user(
393412 top_k = top_k * 2 ,
394413 memory_scope = "UserMemory" ,
395414 search_filter = search_filter ,
415+ search_priority = search_priority ,
396416 user_name = user_name ,
397417 id_filter = id_filter ,
398418 use_fast_graph = self .use_fast_graph ,
0 commit comments