Skip to content

Commit b5daa0f

Browse files
NyakultfridayL
andauthored
fix: date parse error and fix memreader (#132)
* fix n4j cypher query * feat: add llm extra body * feat: update memory extraction prompt and result parser * fix: evaluation locomo search * ci: fix format and update test * feat: update result json parser * feat: recursively cluster nodes to max_cluster_size * fix: fix template * feat: keep default min-group-size 3 * feat: keep default min-group-size 3 * feat: update doc mem reader * test: fix test * fix: date parse error when python<3.11 * fix: update dependencies * fix: TextualMemoryItem pydantic error * fix: TextualMemoryItem pydantic error * fix: TextualMemoryItem pydantic error * fix: TextualMemoryItem pydantic error * fix: prompt example * fix: robuster memory parser --------- Co-authored-by: chunyu li <[email protected]>
1 parent c133eff commit b5daa0f

File tree

5 files changed

+13
-10
lines changed

5 files changed

+13
-10
lines changed

poetry.lock

Lines changed: 1 addition & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ dependencies = [
4444
"sqlalchemy (>=2.0.41,<3.0.0)", # SQL toolkit
4545
"scikit-learn (>=1.7.0,<2.0.0)", # Machine learning
4646
"fastmcp (>=2.10.5,<3.0.0)",
47+
"python-dateutil (>=2.9.0.post0,<3.0.0)",
4748
]
4849

4950
[project.urls]

src/memos/mem_reader/simple_struct.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,13 @@ def _process_chat_data(self, scene_data_info, info):
5858
metadata=TreeNodeTextualMemoryMetadata(
5959
user_id=info.get("user_id"),
6060
session_id=info.get("session_id"),
61-
memory_type=memory_i_raw.get("memory_type", ""),
61+
memory_type=memory_i_raw.get("memory_type", "")
62+
.replace("长期记忆", "LongTermMemory")
63+
.replace("用户记忆", "UserMemory"),
6264
status="activated",
63-
tags=memory_i_raw.get("tags", ""),
65+
tags=memory_i_raw.get("tags", [])
66+
if type(memory_i_raw.get("tags", [])) is list
67+
else [],
6468
key=memory_i_raw.get("key", ""),
6569
embedding=self.embedder.embed([memory_i_raw.get("value", "")])[0],
6670
usage=[],
@@ -214,7 +218,7 @@ def _process_doc_data(self, scene_data_info, info):
214218
session_id=info.get("session_id"),
215219
memory_type="LongTermMemory",
216220
status="activated",
217-
tags=chunk_res["tags"],
221+
tags=chunk_res["tags"] if type(chunk_res["tags"]) is list else [],
218222
key=chunk_res["key"],
219223
embedding=self.embedder.embed([chunk_res["value"]])[0],
220224
usage=[],

src/memos/memories/textual/tree_text_memory/organize/conflict.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import re
33

44
from datetime import datetime
5-
5+
from dateutil import parser
66
from memos.embedders.base import BaseEmbedder
77
from memos.graph_dbs.neo4j import Neo4jGraphDB
88
from memos.llms.base import BaseLLM
@@ -133,8 +133,8 @@ def _hard_update(self, memory_a: TextualMemoryItem, memory_b: TextualMemoryItem)
133133
"""
134134
Hard update: compare updated_at, keep the newer one, overwrite the older one's metadata.
135135
"""
136-
time_a = datetime.fromisoformat(memory_a.metadata.updated_at)
137-
time_b = datetime.fromisoformat(memory_b.metadata.updated_at)
136+
time_a = parser.isoparse(memory_a.metadata.updated_at)
137+
time_b = parser.isoparse(memory_b.metadata.updated_at)
138138

139139
newer_mem = memory_a if time_a >= time_b else memory_b
140140
older_mem = memory_b if time_a >= time_b else memory_a

src/memos/templates/mem_reader_prompts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@
150150
"summary": "Tom is currently focused on managing a new project with a tight schedule. After a team meeting on June 25, 2025, he realized the original deadline of December 15 might not be feasible due to backend delays. Concerned about insufficient testing time, he welcomed Jerry’s suggestion of proposing an extension. Tom plans to raise the idea of shifting the deadline to January 5, 2026 in the next morning’s meeting. His actions reflect both stress about timelines and a proactive, team-oriented problem-solving approach."
151151
}
152152
153-
Another Example in Chinese (注意: 你的输出必须和输入的user语言一致):
153+
Another Example in Chinese (注意: 当user的语言为中文时,你就需要也输出中文):
154154
{
155155
"memory list": [
156156
{

0 commit comments

Comments
 (0)