diff --git a/pom.xml b/pom.xml index b75d12fd..facc723f 100644 --- a/pom.xml +++ b/pom.xml @@ -44,8 +44,12 @@ org.junit.jupiter junit-jupiter - RELEASE - test + 5.13.2 + + + org.reflections + reflections + 0.10.2 org.slf4j diff --git a/src/main/java/work/slhaf/agent/core/cognation/CognationManager.java b/src/main/java/work/slhaf/agent/core/cognation/CognationManager.java index 4f36858b..da8ede0f 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/CognationManager.java +++ b/src/main/java/work/slhaf/agent/core/cognation/CognationManager.java @@ -10,19 +10,22 @@ import work.slhaf.agent.common.config.Config; import work.slhaf.agent.common.exception_handler.GlobalExceptionHandler; import work.slhaf.agent.common.exception_handler.pojo.GlobalException; import work.slhaf.agent.common.serialize.PersistableObject; -import work.slhaf.agent.core.cognation.common.exception.UserNotExistsException; -import work.slhaf.agent.core.cognation.common.pojo.ActiveData; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; +import work.slhaf.agent.core.cognation.cognation.CognationCore; +import work.slhaf.agent.core.cognation.cognation.exception.UserNotExistsException; +import work.slhaf.agent.core.cognation.cognation.pojo.ActiveData; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; import work.slhaf.agent.core.cognation.common.pojo.MemorySliceResult; -import work.slhaf.agent.core.cognation.submodule.cache.CacheCapability; +import work.slhaf.agent.core.cognation.capability.ability.CacheCapability; import work.slhaf.agent.core.cognation.submodule.cache.CacheCore; -import work.slhaf.agent.core.cognation.submodule.memory.MemoryCapability; +import work.slhaf.agent.core.cognation.submodule.dispatch.DispatchCore; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; import work.slhaf.agent.core.cognation.submodule.memory.MemoryCore; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCore; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.io.IOException; import java.io.Serial; @@ -53,6 +56,7 @@ public class CognationManager extends PersistableObject implements CacheCapabili private CacheCore cacheCore; private MemoryCore memoryCore; private PerceiveCore perceiveCore; + private DispatchCore dispatchCore; private ActiveData activeData; diff --git a/src/main/java/work/slhaf/agent/core/cognation/NewCognationManager.java b/src/main/java/work/slhaf/agent/core/cognation/NewCognationManager.java new file mode 100644 index 00000000..802772cb --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/NewCognationManager.java @@ -0,0 +1,5 @@ +package work.slhaf.agent.core.cognation; + +public class NewCognationManager { + +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/CapabilityRegister.java b/src/main/java/work/slhaf/agent/core/cognation/capability/CapabilityRegister.java new file mode 100644 index 00000000..6b7ecf2a --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/CapabilityRegister.java @@ -0,0 +1,67 @@ +package work.slhaf.agent.core.cognation.capability; + +import org.reflections.Reflections; +import work.slhaf.agent.core.cognation.capability.exception.CapabilityRegisterFailedException; +import work.slhaf.agent.core.cognation.capability.interfaces.Capability; +import work.slhaf.agent.core.cognation.capability.interfaces.CapabilityCore; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class CapabilityRegister { + + public static volatile CapabilityRegister capabilityRegister; + + private CapabilityRegister(){ + } + + public static CapabilityRegister getInstance(){ + if (capabilityRegister == null) { + synchronized (CapabilityRegister.class) { + if (capabilityRegister == null) { + capabilityRegister = new CapabilityRegister(); + } + } + } + return capabilityRegister; + } + + public void registerCapabilities(){ + //检查可注册能力是否正常 + statusCheck(); + //扫描现有Capability, value为键,返回函数路由表 + } + + private void statusCheck(){ + Reflections reflections = new Reflections("work.slhaf.agent.core"); + Set> cores = reflections.getTypesAnnotatedWith(CapabilityCore.class); + Set> capabilities = reflections.getTypesAnnotatedWith(Capability.class); + if (cores.size() != capabilities.size()){ + throw new CapabilityRegisterFailedException("Capability 注册异常: 已存在的CapabilityCore与Capability数量不匹配!"); + } + if (checkValuesMatched(cores,capabilities)){ + throw new CapabilityRegisterFailedException("Capability 注册异常: 已存在的CapabilityCore与Capability不匹配!"); + } + } + + + private static boolean checkValuesMatched(Set> cores, Set> capabilities) { + List coresValues = new ArrayList<>(); + List capabilitiesValues = new ArrayList<>(); + for (Class core : cores) { + CapabilityCore annotation = core.getAnnotation(CapabilityCore.class); + if (annotation != null) { + coresValues.add(annotation.value()); + } + } + for (Class capability : capabilities) { + Capability annotation = capability.getAnnotation(Capability.class); + if (annotation != null) { + capabilitiesValues.add(annotation.value()); + } + } + return coresValues.equals(capabilitiesValues); + } +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/CacheCapability.java similarity index 72% rename from src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCapability.java rename to src/main/java/work/slhaf/agent/core/cognation/capability/ability/CacheCapability.java index 3d972e69..e1593bb8 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCapability.java +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/CacheCapability.java @@ -1,9 +1,12 @@ -package work.slhaf.agent.core.cognation.submodule.cache; +package work.slhaf.agent.core.cognation.capability.ability; + +import work.slhaf.agent.core.cognation.capability.interfaces.Capability; import java.time.LocalDateTime; import java.util.HashMap; import java.util.concurrent.ConcurrentHashMap; +@Capability(value = "cache") public interface CacheCapability { HashMap getDialogMap(); ConcurrentHashMap getUserDialogMap(String userId); diff --git a/src/main/java/work/slhaf/agent/core/cognation/CognationCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/CognationCapability.java similarity index 84% rename from src/main/java/work/slhaf/agent/core/cognation/CognationCapability.java rename to src/main/java/work/slhaf/agent/core/cognation/capability/ability/CognationCapability.java index 57ced5eb..0c63fc81 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/CognationCapability.java +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/CognationCapability.java @@ -1,12 +1,11 @@ -package work.slhaf.agent.core.cognation; +package work.slhaf.agent.core.cognation.capability.ability; import work.slhaf.agent.common.chat.pojo.Message; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.util.HashMap; import java.util.List; import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; public interface CognationCapability { List getChatMessages(); diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/ability/DispatchCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/DispatchCapability.java new file mode 100644 index 00000000..a4249709 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/DispatchCapability.java @@ -0,0 +1,4 @@ +package work.slhaf.agent.core.cognation.capability.ability; + +public interface DispatchCapability { +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/MemoryCapability.java similarity index 89% rename from src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCapability.java rename to src/main/java/work/slhaf/agent/core/cognation/capability/ability/MemoryCapability.java index 7607d7e8..9316b113 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCapability.java +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/MemoryCapability.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.submodule.memory; +package work.slhaf.agent.core.cognation.capability.ability; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/perceive/PerceiveCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/PerceiveCapability.java similarity index 83% rename from src/main/java/work/slhaf/agent/core/cognation/submodule/perceive/PerceiveCapability.java rename to src/main/java/work/slhaf/agent/core/cognation/capability/ability/PerceiveCapability.java index 7389aa8b..000af60a 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/perceive/PerceiveCapability.java +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/ability/PerceiveCapability.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.submodule.perceive; +package work.slhaf.agent.core.cognation.capability.ability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/exception/CapabilityRegisterFailedException.java b/src/main/java/work/slhaf/agent/core/cognation/capability/exception/CapabilityRegisterFailedException.java new file mode 100644 index 00000000..f5e7e31c --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/exception/CapabilityRegisterFailedException.java @@ -0,0 +1,7 @@ +package work.slhaf.agent.core.cognation.capability.exception; + +public class CapabilityRegisterFailedException extends RuntimeException { + public CapabilityRegisterFailedException(String message) { + super(message); + } +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/Capability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/Capability.java new file mode 100644 index 00000000..6221b73b --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/Capability.java @@ -0,0 +1,12 @@ +package work.slhaf.agent.core.cognation.capability.interfaces; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface Capability { + String value(); +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/CapabilityCore.java b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/CapabilityCore.java new file mode 100644 index 00000000..4d151170 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/CapabilityCore.java @@ -0,0 +1,12 @@ +package work.slhaf.agent.core.cognation.capability.interfaces; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface CapabilityCore { + String value(); +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/InjectCapability.java b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/InjectCapability.java new file mode 100644 index 00000000..706a9594 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/capability/interfaces/InjectCapability.java @@ -0,0 +1,9 @@ +package work.slhaf.agent.core.cognation.capability.interfaces; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; + +@Target(ElementType.FIELD) +public @interface InjectCapability { + String value(); +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/CognationCore.java b/src/main/java/work/slhaf/agent/core/cognation/cognation/CognationCore.java similarity index 98% rename from src/main/java/work/slhaf/agent/core/cognation/CognationCore.java rename to src/main/java/work/slhaf/agent/core/cognation/cognation/CognationCore.java index de8a422d..02483c4c 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/CognationCore.java +++ b/src/main/java/work/slhaf/agent/core/cognation/cognation/CognationCore.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation; +package work.slhaf.agent.core.cognation.cognation; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UserNotExistsException.java b/src/main/java/work/slhaf/agent/core/cognation/cognation/exception/UserNotExistsException.java similarity index 70% rename from src/main/java/work/slhaf/agent/core/cognation/common/exception/UserNotExistsException.java rename to src/main/java/work/slhaf/agent/core/cognation/cognation/exception/UserNotExistsException.java index da4ee37c..a688636e 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UserNotExistsException.java +++ b/src/main/java/work/slhaf/agent/core/cognation/cognation/exception/UserNotExistsException.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.common.exception; +package work.slhaf.agent.core.cognation.cognation.exception; public class UserNotExistsException extends RuntimeException { public UserNotExistsException(String message) { diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/pojo/ActiveData.java b/src/main/java/work/slhaf/agent/core/cognation/cognation/pojo/ActiveData.java similarity index 88% rename from src/main/java/work/slhaf/agent/core/cognation/common/pojo/ActiveData.java rename to src/main/java/work/slhaf/agent/core/cognation/cognation/pojo/ActiveData.java index a9f2da38..bb97363f 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/pojo/ActiveData.java +++ b/src/main/java/work/slhaf/agent/core/cognation/cognation/pojo/ActiveData.java @@ -1,7 +1,7 @@ -package work.slhaf.agent.core.cognation.common.pojo; +package work.slhaf.agent.core.cognation.cognation.pojo; import lombok.Data; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.util.HashMap; import java.util.List; diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCore.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCore.java index 50f1ba96..2dbe3f07 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCore.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/cache/CacheCore.java @@ -4,6 +4,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.common.serialize.PersistableObject; +import work.slhaf.agent.core.cognation.capability.interfaces.CapabilityCore; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; @@ -16,6 +17,7 @@ import java.util.concurrent.ConcurrentHashMap; @EqualsAndHashCode(callSuper = true) @Data @Slf4j +@CapabilityCore(value = "cache") public class CacheCore extends PersistableObject { @Serial diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/DispatchCore.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/DispatchCore.java new file mode 100644 index 00000000..3f2ff198 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/DispatchCore.java @@ -0,0 +1,32 @@ +package work.slhaf.agent.core.cognation.submodule.dispatch; + +import work.slhaf.agent.common.serialize.PersistableObject; +import work.slhaf.agent.core.cognation.submodule.dispatch.pojo.DispatchData; + +import java.io.Serial; + +public class DispatchCore extends PersistableObject { + + @Serial + private static final long serialVersionUID = 1L; + public static volatile DispatchCore dispatchCore; + + public static DispatchCore getInstance() { + if (dispatchCore == null) { + synchronized (DispatchCore.class) { + if (dispatchCore == null) { + dispatchCore = new DispatchCore(); + } + } + } + return dispatchCore; + } + + public void dispatch(DispatchData dispatchData){ + + } + + public void listDispatchData(){ + + } +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/pojo/DispatchData.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/pojo/DispatchData.java new file mode 100644 index 00000000..04560722 --- /dev/null +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/dispatch/pojo/DispatchData.java @@ -0,0 +1,15 @@ +package work.slhaf.agent.core.cognation.submodule.dispatch.pojo; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class DispatchData { + private LocalDateTime dateTime; + private String userId; + private String comment; + + //TODO 替换为<执行器>或者<插件> + private String executor; +} diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCore.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCore.java index b2e5c5a9..2722de71 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCore.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/MemoryCore.java @@ -3,8 +3,8 @@ package work.slhaf.agent.core.cognation.submodule.memory; import lombok.Data; import lombok.EqualsAndHashCode; import work.slhaf.agent.common.serialize.PersistableObject; -import work.slhaf.agent.core.cognation.common.exception.UnExistedDateIndexException; -import work.slhaf.agent.core.cognation.common.exception.UnExistedTopicException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedDateIndexException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedTopicException; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; import work.slhaf.agent.core.cognation.common.pojo.MemorySliceResult; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/exception/NullSliceListException.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/NullSliceListException.java similarity index 68% rename from src/main/java/work/slhaf/agent/core/cognation/common/exception/NullSliceListException.java rename to src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/NullSliceListException.java index d9c33cb2..f8eafd8d 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/exception/NullSliceListException.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/NullSliceListException.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.common.exception; +package work.slhaf.agent.core.cognation.submodule.memory.exception; public class NullSliceListException extends RuntimeException { public NullSliceListException(String message) { diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedDateIndexException.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedDateIndexException.java similarity index 69% rename from src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedDateIndexException.java rename to src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedDateIndexException.java index 25afdd18..6944cca2 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedDateIndexException.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedDateIndexException.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.common.exception; +package work.slhaf.agent.core.cognation.submodule.memory.exception; public class UnExistedDateIndexException extends RuntimeException { public UnExistedDateIndexException(String message) { diff --git a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedTopicException.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedTopicException.java similarity index 68% rename from src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedTopicException.java rename to src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedTopicException.java index d151f58d..727d47e2 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/common/exception/UnExistedTopicException.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/exception/UnExistedTopicException.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.core.cognation.common.exception; +package work.slhaf.agent.core.cognation.submodule.memory.exception; public class UnExistedTopicException extends RuntimeException { public UnExistedTopicException(String message) { diff --git a/src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/EvaluatedSlice.java similarity index 88% rename from src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java rename to src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/EvaluatedSlice.java index 45b4e07a..eb746db4 100644 --- a/src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/EvaluatedSlice.java @@ -1,4 +1,4 @@ -package work.slhaf.agent.shared.memory; +package work.slhaf.agent.core.cognation.submodule.memory.pojo; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/node/MemoryNode.java b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/node/MemoryNode.java index 17ba1e57..1a58b3c8 100644 --- a/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/node/MemoryNode.java +++ b/src/main/java/work/slhaf/agent/core/cognation/submodule/memory/pojo/node/MemoryNode.java @@ -4,7 +4,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.common.serialize.PersistableObject; -import work.slhaf.agent.core.cognation.common.exception.NullSliceListException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.NullSliceListException; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; import java.io.*; diff --git a/src/main/java/work/slhaf/agent/module/modules/core/CoreModel.java b/src/main/java/work/slhaf/agent/module/modules/core/CoreModel.java index 82c1e559..3bce7663 100644 --- a/src/main/java/work/slhaf/agent/module/modules/core/CoreModel.java +++ b/src/main/java/work/slhaf/agent/module/modules/core/CoreModel.java @@ -8,7 +8,7 @@ import work.slhaf.agent.common.chat.constant.ChatConstant; import work.slhaf.agent.common.chat.pojo.ChatResponse; import work.slhaf.agent.common.chat.pojo.Message; import work.slhaf.agent.common.chat.pojo.MetaMessage; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.module.InteractionModule; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/selector/MemorySelector.java b/src/main/java/work/slhaf/agent/module/modules/memory/selector/MemorySelector.java index 178fbbf9..ff53efc7 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/selector/MemorySelector.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/selector/MemorySelector.java @@ -3,13 +3,13 @@ package work.slhaf.agent.module.modules.memory.selector; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.extern.slf4j.Slf4j; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.common.exception.UnExistedDateIndexException; -import work.slhaf.agent.core.cognation.common.exception.UnExistedTopicException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedDateIndexException; +import work.slhaf.agent.core.cognation.submodule.memory.exception.UnExistedTopicException; import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; -import work.slhaf.agent.core.cognation.submodule.cache.CacheCapability; -import work.slhaf.agent.core.cognation.submodule.memory.MemoryCapability; +import work.slhaf.agent.core.cognation.capability.ability.CacheCapability; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.session.SessionManager; @@ -19,7 +19,7 @@ import work.slhaf.agent.module.modules.memory.selector.evaluator.data.EvaluatorI import work.slhaf.agent.module.modules.memory.selector.extractor.MemorySelectExtractor; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorMatchData; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorResult; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.io.IOException; import java.time.LocalDate; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java b/src/main/java/work/slhaf/agent/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java index d89163a1..75e8d6b5 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/selector/evaluator/SliceSelectEvaluator.java @@ -16,7 +16,7 @@ import work.slhaf.agent.module.modules.memory.selector.evaluator.data.EvaluatorB import work.slhaf.agent.module.modules.memory.selector.evaluator.data.EvaluatorInput; import work.slhaf.agent.module.modules.memory.selector.evaluator.data.EvaluatorResult; import work.slhaf.agent.module.modules.memory.selector.evaluator.data.SliceSummary; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.io.IOException; import java.util.*; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/MemorySelectExtractor.java b/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/MemorySelectExtractor.java index 4dd1db8b..e810b0ab 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/MemorySelectExtractor.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/MemorySelectExtractor.java @@ -9,9 +9,9 @@ import work.slhaf.agent.common.chat.pojo.Message; import work.slhaf.agent.common.chat.pojo.MetaMessage; import work.slhaf.agent.common.exception_handler.GlobalExceptionHandler; import work.slhaf.agent.common.exception_handler.pojo.GlobalException; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.memory.MemoryCapability; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.session.SessionManager; import work.slhaf.agent.module.common.Model; @@ -19,7 +19,7 @@ import work.slhaf.agent.module.common.ModelConstant; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorInput; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorMatchData; import work.slhaf.agent.module.modules.memory.selector.extractor.data.ExtractorResult; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.io.IOException; import java.util.ArrayList; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/data/ExtractorInput.java b/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/data/ExtractorInput.java index 4c093317..36adc323 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/data/ExtractorInput.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/selector/extractor/data/ExtractorInput.java @@ -3,7 +3,7 @@ package work.slhaf.agent.module.modules.memory.selector.extractor.data; import lombok.Builder; import lombok.Data; import work.slhaf.agent.common.chat.pojo.Message; -import work.slhaf.agent.shared.memory.EvaluatedSlice; +import work.slhaf.agent.core.cognation.submodule.memory.pojo.EvaluatedSlice; import java.time.LocalDate; import java.util.List; diff --git a/src/main/java/work/slhaf/agent/module/modules/memory/updater/MemoryUpdater.java b/src/main/java/work/slhaf/agent/module/modules/memory/updater/MemoryUpdater.java index 94c4bf9d..35bf6b09 100644 --- a/src/main/java/work/slhaf/agent/module/modules/memory/updater/MemoryUpdater.java +++ b/src/main/java/work/slhaf/agent/module/modules/memory/updater/MemoryUpdater.java @@ -6,12 +6,12 @@ import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.common.chat.constant.ChatConstant; import work.slhaf.agent.common.chat.pojo.Message; import work.slhaf.agent.common.thread.InteractionThreadPoolExecutor; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.cache.CacheCapability; -import work.slhaf.agent.core.cognation.submodule.memory.MemoryCapability; +import work.slhaf.agent.core.cognation.capability.ability.CacheCapability; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; import work.slhaf.agent.core.cognation.submodule.memory.pojo.MemorySlice; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.module.InteractionModule; import work.slhaf.agent.core.session.SessionManager; diff --git a/src/main/java/work/slhaf/agent/module/modules/perceive/selector/PerceiveSelector.java b/src/main/java/work/slhaf/agent/module/modules/perceive/selector/PerceiveSelector.java index 27574b43..0c672427 100644 --- a/src/main/java/work/slhaf/agent/module/modules/perceive/selector/PerceiveSelector.java +++ b/src/main/java/work/slhaf/agent/module/modules/perceive/selector/PerceiveSelector.java @@ -3,7 +3,7 @@ package work.slhaf.agent.module.modules.perceive.selector; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.module.common.PreModule; diff --git a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/PerceiveUpdater.java b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/PerceiveUpdater.java index 13d8722e..958ade73 100644 --- a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/PerceiveUpdater.java +++ b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/PerceiveUpdater.java @@ -4,9 +4,9 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import work.slhaf.agent.common.thread.InteractionThreadPoolExecutor; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.module.InteractionModule; diff --git a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/relation_extractor/RelationExtractor.java b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/relation_extractor/RelationExtractor.java index 949231a4..8325551e 100644 --- a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/relation_extractor/RelationExtractor.java +++ b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/relation_extractor/RelationExtractor.java @@ -4,9 +4,9 @@ import com.alibaba.fastjson2.JSONObject; import lombok.Data; import work.slhaf.agent.common.chat.pojo.ChatResponse; import work.slhaf.agent.common.chat.pojo.Message; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.module.common.Model; diff --git a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java index fd29647c..e714ed69 100644 --- a/src/main/java/work/slhaf/agent/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java +++ b/src/main/java/work/slhaf/agent/module/modules/perceive/updater/static_extractor/StaticMemoryExtractor.java @@ -5,9 +5,9 @@ import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.EqualsAndHashCode; import work.slhaf.agent.common.chat.pojo.ChatResponse; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.module.common.Model; import work.slhaf.agent.module.common.ModelConstant; diff --git a/src/main/java/work/slhaf/agent/module/modules/process/PostprocessExecutor.java b/src/main/java/work/slhaf/agent/module/modules/process/PostprocessExecutor.java index cd8deb4d..abf7f291 100644 --- a/src/main/java/work/slhaf/agent/module/modules/process/PostprocessExecutor.java +++ b/src/main/java/work/slhaf/agent/module/modules/process/PostprocessExecutor.java @@ -2,7 +2,7 @@ package work.slhaf.agent.module.modules.process; import lombok.Data; import lombok.extern.slf4j.Slf4j; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; import work.slhaf.agent.core.interaction.data.context.InteractionContext; import work.slhaf.agent.core.interaction.module.InteractionModule; diff --git a/src/main/java/work/slhaf/agent/module/modules/process/PreprocessExecutor.java b/src/main/java/work/slhaf/agent/module/modules/process/PreprocessExecutor.java index 17e5fe28..cf042ae5 100644 --- a/src/main/java/work/slhaf/agent/module/modules/process/PreprocessExecutor.java +++ b/src/main/java/work/slhaf/agent/module/modules/process/PreprocessExecutor.java @@ -2,9 +2,9 @@ package work.slhaf.agent.module.modules.process; import lombok.Data; import lombok.extern.slf4j.Slf4j; -import work.slhaf.agent.core.cognation.CognationCapability; +import work.slhaf.agent.core.cognation.capability.ability.CognationCapability; import work.slhaf.agent.core.cognation.CognationManager; -import work.slhaf.agent.core.cognation.submodule.perceive.PerceiveCapability; +import work.slhaf.agent.core.cognation.capability.ability.PerceiveCapability; import work.slhaf.agent.core.cognation.submodule.perceive.pojo.User; import work.slhaf.agent.core.interaction.data.InteractionInputData; import work.slhaf.agent.core.interaction.data.context.InteractionContext; diff --git a/src/test/java/ReflectionTest.java b/src/test/java/ReflectionTest.java new file mode 100644 index 00000000..4adc632f --- /dev/null +++ b/src/test/java/ReflectionTest.java @@ -0,0 +1,30 @@ +import org.junit.jupiter.api.Test; +import work.slhaf.agent.core.cognation.capability.CapabilityRegister; +import work.slhaf.agent.core.cognation.capability.ability.MemoryCapability; +import work.slhaf.agent.core.cognation.common.pojo.MemoryResult; + +import java.lang.reflect.Proxy; +import java.util.function.Function; + +public class ReflectionTest { + + @Test + public void test1() { + } + + @Test + public void proxyTest() { + MemoryCapability memory = (MemoryCapability) Proxy.newProxyInstance(this.getClass().getClassLoader(), new Class[]{MemoryCapability.class}, (proxy, method, args) -> { + if ("selectMemory".equals(method.getName())){ + System.out.println(111); + return new MemoryResult(); + } + return null; + }); + memory.selectMemory("111"); + + Function function = s -> { + return s.length(); + }; + } +}