Skip to content

Commit 3e4b342

Browse files
Wang-Daojiyuan.wang
andauthored
Feat/dedup playground display (#789)
add dedup to playground tree display Co-authored-by: yuan.wang <[email protected]>
1 parent de0376c commit 3e4b342

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/memos/api/handlers/memory_handler.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
remove_embedding_recursive,
2424
sort_children_by_memory_type,
2525
)
26+
from memos.memories.textual.tree_text_memory.retrieve.retrieve_utils import (
27+
cosine_similarity_matrix,
28+
find_best_unrelated_subgroup,
29+
)
2630

2731

2832
if TYPE_CHECKING:
@@ -37,6 +41,7 @@ def handle_get_all_memories(
3741
mem_cube_id: str,
3842
memory_type: Literal["text_mem", "act_mem", "param_mem", "para_mem"],
3943
naive_mem_cube: Any,
44+
embedder: Any,
4045
) -> MemoryResponse:
4146
"""
4247
Main handler for getting all memories.
@@ -59,6 +64,14 @@ def handle_get_all_memories(
5964
# Get all text memories from the graph database
6065
memories = naive_mem_cube.text_mem.get_all(user_name=mem_cube_id)
6166

67+
mems = [mem.get("memory", "") for mem in memories.get("nodes", [])]
68+
embeddings = embedder.embed(mems)
69+
similarity_matrix = cosine_similarity_matrix(embeddings)
70+
selected_indices, _ = find_best_unrelated_subgroup(
71+
embeddings, similarity_matrix, bar=0.9
72+
)
73+
memories["nodes"] = [memories["nodes"][i] for i in selected_indices]
74+
6275
# Format and convert to tree structure
6376
memories_cleaned = remove_embedding_recursive(memories)
6477
custom_type_ratios = {

src/memos/api/routers/server_router.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
naive_mem_cube = components["naive_mem_cube"]
8484
redis_client = components["redis_client"]
8585
status_tracker = TaskStatusTracker(redis_client=redis_client)
86+
embedder = components["embedder"]
8687

8788

8889
# =============================================================================
@@ -294,6 +295,7 @@ def get_all_memories(memory_req: GetMemoryPlaygroundRequest):
294295
),
295296
memory_type=memory_req.memory_type or "text_mem",
296297
naive_mem_cube=naive_mem_cube,
298+
embedder=embedder,
297299
)
298300

299301

0 commit comments

Comments
 (0)