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 { +}