From ae4859004f93769de0ac1ffe6e0ae9efc177842a Mon Sep 17 00:00:00 2001 From: slhaf Date: Fri, 11 Apr 2025 22:02:07 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E6=96=B0=E5=A2=9E=20PersistableObject=20?= =?UTF-8?q?=E6=8A=BD=E8=B1=A1=E7=B1=BB=E4=BB=A5=E7=BB=9F=E4=B8=80=E6=8C=81?= =?UTF-8?q?=E4=B9=85=E5=8C=96=E5=AF=B9=E8=B1=A1=20-=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=20MemoryGraph=E3=80=81MemoryNode=E3=80=81MemorySlice=20?= =?UTF-8?q?=E5=92=8C=20TopicNode=20=E7=BB=A7=E6=89=BF=20PersistableObject?= =?UTF-8?q?=20-=20=E6=B7=BB=E5=8A=A0=20serialVersionUID=20=E4=BB=A5?= =?UTF-8?q?=E4=BF=9D=E8=AF=81=E5=BA=8F=E5=88=97=E5=8C=96=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/work/slhaf/memory/MemoryGraph.java | 6 +++++- .../java/work/slhaf/memory/content/MemorySlice.java | 10 ++++++++-- src/main/java/work/slhaf/memory/node/MemoryNode.java | 8 +++++++- src/main/java/work/slhaf/memory/node/TopicNode.java | 11 +++++++++-- .../work/slhaf/memory/pojo/PersistableObject.java | 7 +++++++ 5 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 src/main/java/work/slhaf/memory/pojo/PersistableObject.java diff --git a/src/main/java/work/slhaf/memory/MemoryGraph.java b/src/main/java/work/slhaf/memory/MemoryGraph.java index 8a066169..f26409ee 100644 --- a/src/main/java/work/slhaf/memory/MemoryGraph.java +++ b/src/main/java/work/slhaf/memory/MemoryGraph.java @@ -1,11 +1,13 @@ package work.slhaf.memory; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import work.slhaf.memory.content.MemorySlice; import work.slhaf.memory.exception.UnExistedTopicException; import work.slhaf.memory.node.MemoryNode; import work.slhaf.memory.node.TopicNode; +import work.slhaf.memory.pojo.PersistableObject; import java.io.*; import java.nio.file.Files; @@ -15,12 +17,14 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; +@EqualsAndHashCode(callSuper = true) @Data @Slf4j -public class MemoryGraph implements Serializable { +public class MemoryGraph extends PersistableObject { @Serial private static final long serialVersionUID = 1L; + private static final String STORAGE_DIR = "./data/memory/"; //todo: 实现记忆的短期缓存机制 private String id; diff --git a/src/main/java/work/slhaf/memory/content/MemorySlice.java b/src/main/java/work/slhaf/memory/content/MemorySlice.java index 6c73901d..f2f3abbc 100644 --- a/src/main/java/work/slhaf/memory/content/MemorySlice.java +++ b/src/main/java/work/slhaf/memory/content/MemorySlice.java @@ -1,13 +1,19 @@ package work.slhaf.memory.content; import lombok.Data; +import lombok.EqualsAndHashCode; import work.slhaf.chat.pojo.Message; +import work.slhaf.memory.pojo.PersistableObject; -import java.io.Serializable; +import java.io.Serial; import java.util.List; +@EqualsAndHashCode(callSuper = true) @Data -public class MemorySlice implements Serializable, Comparable { +public class MemorySlice extends PersistableObject implements Comparable { + + @Serial + private static final long serialVersionUID = 1L; /** * 关联的完整对话的id diff --git a/src/main/java/work/slhaf/memory/node/MemoryNode.java b/src/main/java/work/slhaf/memory/node/MemoryNode.java index b13297c3..8090fa2e 100644 --- a/src/main/java/work/slhaf/memory/node/MemoryNode.java +++ b/src/main/java/work/slhaf/memory/node/MemoryNode.java @@ -1,18 +1,24 @@ package work.slhaf.memory.node; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import work.slhaf.memory.content.MemorySlice; import work.slhaf.memory.exception.NullSliceListException; +import work.slhaf.memory.pojo.PersistableObject; import java.io.*; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; +@EqualsAndHashCode(callSuper = true) @Data @Slf4j -public class MemoryNode implements Serializable, Comparable { +public class MemoryNode extends PersistableObject implements Comparable { + + @Serial + private static final long serialVersionUID = 1L; private static String SLICE_DATA_DIR = "./data/slice/"; diff --git a/src/main/java/work/slhaf/memory/node/TopicNode.java b/src/main/java/work/slhaf/memory/node/TopicNode.java index 6ebbc969..3cf8e36c 100644 --- a/src/main/java/work/slhaf/memory/node/TopicNode.java +++ b/src/main/java/work/slhaf/memory/node/TopicNode.java @@ -1,13 +1,20 @@ package work.slhaf.memory.node; import lombok.Data; +import lombok.EqualsAndHashCode; +import work.slhaf.memory.pojo.PersistableObject; -import java.io.Serializable; +import java.io.Serial; import java.util.HashMap; import java.util.List; +@EqualsAndHashCode(callSuper = true) @Data -public class TopicNode implements Serializable { +public class TopicNode extends PersistableObject { + + @Serial + private static final long serialVersionUID = 1L; + private HashMap topicNodes; private List memoryNodes; } diff --git a/src/main/java/work/slhaf/memory/pojo/PersistableObject.java b/src/main/java/work/slhaf/memory/pojo/PersistableObject.java new file mode 100644 index 00000000..434cb4ec --- /dev/null +++ b/src/main/java/work/slhaf/memory/pojo/PersistableObject.java @@ -0,0 +1,7 @@ +package work.slhaf.memory.pojo; + +import java.io.Serial; +import java.io.Serializable; + +public abstract class PersistableObject implements Serializable { +}