@@ -47,7 +47,7 @@ def __init__(
4747
4848 self .stage_retrieve_top = 3
4949 self .process_llm = process_llm
50- self .thinking_stages = 1 # TODO: to increase thinking depth when the algorithm is reliable
50+ self .thinking_stages = 0 # TODO: to increase thinking depth when the algorithm is reliable
5151 self .max_retry_times = 2
5252 self .deep_search_top_k_bar = 2
5353
@@ -226,12 +226,10 @@ def get_final_memories(self, user_id: str, top_k: int, mem_list: list[str]):
226226 def recreate_enhancement (
227227 self ,
228228 query : str ,
229- memories : list [TextualMemoryItem ],
229+ text_memories : list [str ],
230230 retries : int ,
231231 ) -> list :
232232 attempt = 0
233- text_memories = [one .memory for one in memories ]
234-
235233 text_memories = "\n " .join ([f"- [{ i } ] { mem } " for i , mem in enumerate (text_memories )])
236234 prompt_name = "memory_recreate_enhancement"
237235 prompt = self .build_prompt (template_name = prompt_name , query = query , memories = text_memories )
@@ -305,19 +303,13 @@ def deep_search(
305303 f"previous retrieval phrases have been tried: { previous_retrieval_phrases } ; "
306304 f"final can_answer: { can_answer } ; reason: { reason } "
307305 )
308- if len (retrieved_memories_from_deep_search ) == 0 :
309- memories = self .post_retrieve (
310- retrieved_results = retrieved_memories ,
311- top_k = top_k ,
312- user_name = user_name ,
313- info = info ,
314- )
315- return memories [:top_k ]
316- else :
317- enhanced_memories = self .get_final_memories (
318- user_id = user_id , top_k = top_k , mem_list = mem_list
319- )
320- return enhanced_memories
306+ mem_list = self .recreate_enhancement (
307+ query = query , text_memories = mem_list , retries = self .max_retry_times
308+ )
309+ enhanced_memories = self .get_final_memories (
310+ user_id = user_id , top_k = top_k , mem_list = mem_list
311+ )
312+ return enhanced_memories
321313
322314 can_answer , reason , context , retrieval_phrases = self .stage_retrieve (
323315 stage_id = current_stage_id + 1 ,
@@ -330,19 +322,11 @@ def deep_search(
330322 logger .info (
331323 f"Stage { current_stage_id } : determined answer can be provided, creating enhanced memories; reason: { reason } " ,
332324 )
333- if len (retrieved_memories_from_deep_search ) == 0 :
334- memories = self .post_retrieve (
335- retrieved_results = retrieved_memories ,
336- top_k = top_k ,
337- user_name = user_name ,
338- info = info ,
339- )
340- return memories [:top_k ]
341- else :
342- enhanced_memories = self .get_final_memories (
343- user_id = user_id , top_k = top_k , mem_list = mem_list
344- )
345- return enhanced_memories
325+
326+ enhanced_memories = self .get_final_memories (
327+ user_id = user_id , top_k = top_k , mem_list = mem_list
328+ )
329+ return enhanced_memories
346330 else :
347331 previous_retrieval_phrases .extend (retrieval_phrases )
348332 logger .info (
@@ -390,12 +374,9 @@ def deep_search(
390374 len (mem_list ),
391375 )
392376
393- # Summarize memories
394- context , mem_list = self .summarize_memories (
395- query = query ,
396- context = context ,
397- text_memories = "- " + "\n - " .join (mem_list ) + "\n " ,
398- top_k = top_k ,
377+ # enhance memories
378+ mem_list = self .recreate_enhancement (
379+ query = query , text_memories = mem_list , retries = self .max_retry_times
399380 )
400381 logger .info ("After summarization, memory list contains %d items" , len (mem_list ))
401382
0 commit comments