Skip to content

Commit 321d5e0

Browse files
authored
Merge branch 'dev' into feat/evaluation_doc_qa
2 parents eb426a2 + b1efa60 commit 321d5e0

File tree

3 files changed

+34
-11
lines changed

3 files changed

+34
-11
lines changed

src/memos/api/handlers/chat_handler.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -688,14 +688,24 @@ def generate_chat_response() -> Generator[str, None, None]:
688688
def _dedup_and_supplement_memories(
689689
self, first_filtered_memories: list, second_filtered_memories: list
690690
) -> list:
691-
"""Remove memory from second_filtered_memories that already exists in first_filtered_memories, return remaining memories"""
692-
# Create a set of IDs from first_filtered_memories for efficient lookup
693-
first_memory_ids = {memory["id"] for memory in first_filtered_memories}
691+
"""
692+
Remove memories from second_filtered_memories whose content already exists in
693+
first_filtered_memories, return the remaining list.
694+
"""
695+
696+
def _norm(text: str) -> str:
697+
# Use normalized text as the dedup key; keep original text in the payload.
698+
return " ".join(text.split())
699+
700+
first_memory_texts = {_norm(memory.get("memory", "")) for memory in first_filtered_memories}
694701

695702
remaining_memories = []
696703
for memory in second_filtered_memories:
697-
if memory["id"] not in first_memory_ids:
698-
remaining_memories.append(memory)
704+
key = _norm(memory.get("memory", ""))
705+
if key in first_memory_texts:
706+
continue
707+
first_memory_texts.add(key)
708+
remaining_memories.append(memory)
699709
return remaining_memories
700710

701711
def _get_internet_reference(

src/memos/graph_dbs/polardb.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ def _get_connection(self):
252252
if attempt < max_retries - 1:
253253
# Exponential backoff: 0.1s, 0.2s, 0.4s
254254
"""time.sleep(0.1 * (2**attempt))"""
255-
time.sleep(0.01)
255+
time.sleep(0.003)
256256
continue
257257
else:
258258
raise RuntimeError("Pool returned a closed connection after all retries")
@@ -284,7 +284,7 @@ def _get_connection(self):
284284
if attempt < max_retries - 1:
285285
# Exponential backoff: 0.1s, 0.2s, 0.4s
286286
"""time.sleep(0.1 * (2**attempt))"""
287-
time.sleep(0.01)
287+
time.sleep(0.003)
288288
continue
289289
else:
290290
raise RuntimeError(
@@ -317,7 +317,7 @@ def _get_connection(self):
317317
wait_time = 0.5 * (2**attempt)
318318
logger.info(f"[_get_connection] Waiting {wait_time}s before retry...")
319319
"""time.sleep(wait_time)"""
320-
time.sleep(0.01)
320+
time.sleep(0.003)
321321
continue
322322
else:
323323
raise RuntimeError(
@@ -329,7 +329,7 @@ def _get_connection(self):
329329
# Other pool errors - retry with normal backoff
330330
if attempt < max_retries - 1:
331331
"""time.sleep(0.1 * (2**attempt))"""
332-
time.sleep(0.01)
332+
time.sleep(0.003)
333333
continue
334334
else:
335335
raise RuntimeError(
@@ -356,7 +356,7 @@ def _get_connection(self):
356356
else:
357357
# Exponential backoff: 0.1s, 0.2s, 0.4s
358358
"""time.sleep(0.1 * (2**attempt))"""
359-
time.sleep(0.01)
359+
time.sleep(0.003)
360360
continue
361361

362362
# Should never reach here, but just in case

src/memos/multi_mem_cube/single_cube.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,20 @@ def _fine_search(
360360
logger.info(
361361
f"Added {len(additional_memories)} more memories. Total enhanced memories: {len(enhanced_memories)}"
362362
)
363-
formatted_memories = [format_memory_item(data) for data in enhanced_memories]
363+
364+
def _dedup_by_content(memories: list) -> list:
365+
seen = set()
366+
unique_memories = []
367+
for mem in memories:
368+
key = " ".join(mem.memory.split())
369+
if key in seen:
370+
continue
371+
seen.add(key)
372+
unique_memories.append(mem)
373+
return unique_memories
374+
375+
deduped_memories = _dedup_by_content(enhanced_memories)
376+
formatted_memories = [format_memory_item(data) for data in deduped_memories]
364377

365378
logger.info(f"Found {len(formatted_memories)} memories for user {search_req.user_id}")
366379

0 commit comments

Comments
 (0)