mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
完成了本体与框架的适配工作,并修复了某些问题。需要进一步进行测试
- 修复了 CognationCapability 相关的注解使用错误 - 将前置模块中的 setAppendedPrompt 与 setActiveModule 方法抽取到 execute 模板方法中 - 完善了已有模块的适配工作, 并去除了不必要的单例配置
This commit is contained in:
@@ -14,8 +14,8 @@ import work.slhaf.partner.api.agent.factory.module.ModuleInitHookExecuteFactory;
|
||||
import work.slhaf.partner.api.agent.factory.module.ModuleProxyFactory;
|
||||
import work.slhaf.partner.api.agent.factory.module.ModuleRegisterFactory;
|
||||
import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule;
|
||||
import work.slhaf.partner.api.agent.runtime.data.AgentContext;
|
||||
import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager;
|
||||
import work.slhaf.partner.api.agent.runtime.data.AgentContext;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.AgentRunningFlow;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@@ -9,7 +9,6 @@ import work.slhaf.partner.api.agent.factory.capability.exception.UnMatchedCapabi
|
||||
import work.slhaf.partner.api.agent.factory.capability.exception.UnMatchedCoordinatedMethodException;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.context.CapabilityFactoryContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.ModuleCheckFactory;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.util.AgentUtil;
|
||||
|
||||
@@ -3,8 +3,6 @@ package work.slhaf.partner.api.agent.factory.context;
|
||||
import lombok.Data;
|
||||
import work.slhaf.partner.api.agent.factory.module.pojo.MetaModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.pojo.MetaSubModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -4,7 +4,10 @@ import cn.hutool.core.util.ClassUtil;
|
||||
import org.reflections.Reflections;
|
||||
import work.slhaf.partner.api.agent.factory.AgentBaseFactory;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.*;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AfterExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.BeforeExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.exception.ModuleCheckException;
|
||||
import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.ActivateModel;
|
||||
|
||||
@@ -14,7 +14,10 @@ import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunn
|
||||
import work.slhaf.partner.api.agent.util.AgentUtil;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static work.slhaf.partner.api.agent.util.AgentUtil.collectExtendedClasses;
|
||||
|
||||
@@ -21,7 +21,6 @@ import work.slhaf.partner.api.agent.factory.module.pojo.MetaSubModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.Module;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.Callable;
|
||||
@@ -146,8 +145,8 @@ public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
List<MetaMethod> pre = new ArrayList<>();
|
||||
//获取该类本身的hook逻辑
|
||||
collectHookMethods(post, pre, clazz);
|
||||
//获取它所继承、实现的抽象类或接口, 以AgentInteractionModule、ActiveModel为终点
|
||||
Set<Class<?>> classes = collectExtendedClasses(clazz, AgentRunningModule.class);
|
||||
//获取它所继承、实现的抽象类或接口, 以Module为终点,收集继承链上所有父类和接口
|
||||
Set<Class<?>> classes = collectExtendedClasses(clazz, Module.class);
|
||||
//获取这些类中的hook逻辑
|
||||
collectHookMethods(post, pre, classes);
|
||||
return new MethodsListRecord(post, pre);
|
||||
|
||||
@@ -3,7 +3,10 @@ package work.slhaf.partner.api.agent.factory.module.annotation;
|
||||
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.CapabilityHolder;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* 用于注解执行模块
|
||||
|
||||
@@ -2,7 +2,10 @@ package work.slhaf.partner.api.agent.factory.module.annotation;
|
||||
|
||||
import work.slhaf.partner.api.agent.factory.capability.annotation.CapabilityHolder;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target(ElementType.TYPE)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package work.slhaf.partner.api.agent.factory.module.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.Module;
|
||||
|
||||
@Data
|
||||
|
||||
@@ -2,6 +2,7 @@ package work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import work.slhaf.partner.api.agent.factory.config.pojo.ModelConfig;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.agent.runtime.config.AgentConfigManager;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.Model;
|
||||
@@ -87,7 +88,9 @@ public interface ActivateModel {
|
||||
((Module) this).setModel(model);
|
||||
}
|
||||
|
||||
String modelKey();
|
||||
default String modelKey(){
|
||||
return this.getClass().getAnnotation(AgentModule.class).name();
|
||||
}
|
||||
|
||||
boolean withBasicPrompt();
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package work.slhaf.partner.api.agent.util;
|
||||
|
||||
import org.reflections.Reflections;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
@@ -40,8 +40,8 @@ public final class AgentUtil {
|
||||
collectInterfaces(clazz, classes);
|
||||
}
|
||||
|
||||
public static Set<Class<?>> getMethodAnnotationTypeSet(Class<?> clazz, Reflections reflections){
|
||||
Set<Method> methods = reflections.getMethodsAnnotatedWith(Init.class);
|
||||
public static Set<Class<?>> getMethodAnnotationTypeSet(Class<? extends Annotation> clazz, Reflections reflections){
|
||||
Set<Method> methods = reflections.getMethodsAnnotatedWith(clazz);
|
||||
return methods.stream()
|
||||
.map(Method::getDeclaringClass)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
Reference in New Issue
Block a user