mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
- 新增 PersistableObject 抽象类以统一持久化对象
- 修改 MemoryGraph、MemoryNode、MemorySlice 和 TopicNode 继承 PersistableObject - 添加 serialVersionUID 以保证序列化兼容性
This commit is contained in:
@@ -1,11 +1,13 @@
|
|||||||
package work.slhaf.memory;
|
package work.slhaf.memory;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import work.slhaf.memory.content.MemorySlice;
|
import work.slhaf.memory.content.MemorySlice;
|
||||||
import work.slhaf.memory.exception.UnExistedTopicException;
|
import work.slhaf.memory.exception.UnExistedTopicException;
|
||||||
import work.slhaf.memory.node.MemoryNode;
|
import work.slhaf.memory.node.MemoryNode;
|
||||||
import work.slhaf.memory.node.TopicNode;
|
import work.slhaf.memory.node.TopicNode;
|
||||||
|
import work.slhaf.memory.pojo.PersistableObject;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
@@ -15,12 +17,14 @@ import java.time.LocalDate;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class MemoryGraph implements Serializable {
|
public class MemoryGraph extends PersistableObject {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private static final String STORAGE_DIR = "./data/memory/";
|
private static final String STORAGE_DIR = "./data/memory/";
|
||||||
//todo: 实现记忆的短期缓存机制
|
//todo: 实现记忆的短期缓存机制
|
||||||
private String id;
|
private String id;
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
package work.slhaf.memory.content;
|
package work.slhaf.memory.content;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import work.slhaf.chat.pojo.Message;
|
import work.slhaf.chat.pojo.Message;
|
||||||
|
import work.slhaf.memory.pojo.PersistableObject;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serial;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class MemorySlice implements Serializable, Comparable<MemorySlice> {
|
public class MemorySlice extends PersistableObject implements Comparable<MemorySlice> {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关联的完整对话的id
|
* 关联的完整对话的id
|
||||||
|
|||||||
@@ -1,18 +1,24 @@
|
|||||||
package work.slhaf.memory.node;
|
package work.slhaf.memory.node;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import work.slhaf.memory.content.MemorySlice;
|
import work.slhaf.memory.content.MemorySlice;
|
||||||
import work.slhaf.memory.exception.NullSliceListException;
|
import work.slhaf.memory.exception.NullSliceListException;
|
||||||
|
import work.slhaf.memory.pojo.PersistableObject;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class MemoryNode implements Serializable, Comparable<MemoryNode> {
|
public class MemoryNode extends PersistableObject implements Comparable<MemoryNode> {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private static String SLICE_DATA_DIR = "./data/slice/";
|
private static String SLICE_DATA_DIR = "./data/slice/";
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,20 @@
|
|||||||
package work.slhaf.memory.node;
|
package work.slhaf.memory.node;
|
||||||
|
|
||||||
import lombok.Data;
|
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.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class TopicNode implements Serializable {
|
public class TopicNode extends PersistableObject {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private HashMap<String,TopicNode> topicNodes;
|
private HashMap<String,TopicNode> topicNodes;
|
||||||
private List<MemoryNode> memoryNodes;
|
private List<MemoryNode> memoryNodes;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package work.slhaf.memory.pojo;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public abstract class PersistableObject implements Serializable {
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user