fix(memory_system): 修复即时记忆的 orjson 编码与解码问题

`orjson.dumps` 返回 `bytes` 类型,在存入数据库前需要解码为 `str`。

同时,将关键词的反序列化库从标准 `json` 统一为 `orjson`,以保持序列化和反序列化操作的一致性。
This commit is contained in:
minecraft1024a
2025-08-27 18:01:12 +08:00
parent 5076410a00
commit be114223b4

View File

@@ -108,7 +108,7 @@ class InstantMemory:
memory_id=memory_item.memory_id,
chat_id=memory_item.chat_id,
memory_text=memory_item.memory_text,
keywords=orjson.dumps(memory_item.keywords),
keywords=orjson.dumps(memory_item.keywords).decode('utf-8'),
create_time=memory_item.create_time,
last_view_time=memory_item.last_view_time,
)
@@ -172,8 +172,8 @@ class InstantMemory:
# 对每条记忆
mem_keywords_str = mem.keywords or "[]"
try:
mem_keywords = json.loads(mem_keywords_str)
except json.JSONDecodeError:
mem_keywords = orjson.loads(mem_keywords_str)
except orjson.JSONDecodeError:
mem_keywords = []
# logger.info(f"mem_keywords: {mem_keywords}")
# logger.info(f"keywords_list: {keywords_list}")