推进核心服务与模块注册机制

- 完善Agent流程执行框架
- Api包下新增flow流程包,该部分对应模块的执行流程
- 明确ModuleFactory与CapabilityFactory以及ModuleHook的共同运作流程
- 调整了Hook注解名称
This commit is contained in:
2025-07-24 23:31:02 +08:00
parent effa1df7fa
commit ade922cbc2
113 changed files with 744 additions and 497 deletions

View File

@@ -12,21 +12,6 @@
<artifactId>Partner-Main</artifactId>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.56</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.18.0</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.36</version>
</dependency>
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>

View File

@@ -1,70 +0,0 @@
package work.slhaf.partner.common.chat;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import lombok.Data;
import lombok.NoArgsConstructor;
import work.slhaf.partner.common.chat.constant.ChatConstant;
import work.slhaf.partner.common.chat.pojo.ChatBody;
import work.slhaf.partner.common.chat.pojo.ChatResponse;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.common.chat.pojo.PrimaryChatResponse;
import java.util.List;
@Data
@NoArgsConstructor
public class ChatClient {
private String clientId;
private String url;
private String apikey;
private String model;
private double top_p;
private double temperature;
private int max_tokens;
public ChatClient(String url, String apikey, String model) {
this.url = url;
this.apikey = apikey;
this.model = model;
}
public ChatResponse runChat(List<Message> messages) {
HttpRequest request = HttpRequest.post(url);
request.header("Content-Type", "application/json");
request.header("Authorization", "Bearer " + apikey);
ChatBody body;
if (top_p > 0) {
body = ChatBody.builder()
.model(model)
.messages(messages)
.top_p(top_p)
.temperature(temperature)
.max_tokens(max_tokens)
.build();
} else {
body = ChatBody.builder()
.model(model)
.messages(messages)
.build();
}
HttpResponse response = request.body(JSONUtil.toJsonStr(body)).execute();
ChatResponse finalResponse;
PrimaryChatResponse primaryChatResponse = JSONUtil.toBean(response.body(), PrimaryChatResponse.class);
finalResponse = ChatResponse.builder()
.type(ChatConstant.Response.SUCCESS)
.message(primaryChatResponse.getChoices().get(0).getMessage().getContent())
.usageBean(primaryChatResponse.getUsage())
.build();
response.close();
return finalResponse;
}
}

View File

@@ -1,22 +0,0 @@
package work.slhaf.partner.common.chat.constant;
public class ChatConstant {
public static class Character {
public static final String USER = "user";
public static final String SYSTEM = "system";
public static final String ASSISTANT = "assistant";
}
public static class Model {
public static final String DEEP_SEEK_CHAT = "deepseek-chat";
public static final String GLM_4_FLASH = "glm-4_flash";
public static final String GLM_4_PLUS = "glm-4_plus";
public static final String GLM_4_0520 = "glm-4_0520";
}
public static class Response {
public static final String SUCCESS = "success";
public static final String ERROR = "error";
}
}

View File

@@ -1,25 +0,0 @@
package work.slhaf.partner.common.chat.pojo;
import lombok.*;
import java.util.List;
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ChatBody {
@NonNull
private String model;
@NonNull
private List<Message> messages;
@Builder.Default
private double temperature = 1;
@Builder.Default
private double top_p = 1;
private boolean stream;
@Builder.Default
private int max_tokens = 1024;
private int presence_penalty;
private int frequency_penalty;
}

View File

@@ -1,16 +0,0 @@
package work.slhaf.partner.common.chat.pojo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ChatResponse {
private String type;
private String message;
private PrimaryChatResponse.UsageBean usageBean;
}

View File

@@ -1,22 +0,0 @@
package work.slhaf.partner.common.chat.pojo;
import lombok.*;
import work.slhaf.partner.common.serialize.PersistableObject;
import java.io.Serial;
@EqualsAndHashCode(callSuper = true)
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Message extends PersistableObject {
@Serial
private static final long serialVersionUID = 1L;
@NonNull
private String role;
@NonNull
private String content;
}

View File

@@ -1,20 +0,0 @@
package work.slhaf.partner.common.chat.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import java.io.Serial;
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
public class MetaMessage extends PersistableObject {
@Serial
private static final long serialVersionUID = 1L;
private Message userMessage;
private Message assistantMessage;
}

View File

@@ -1,111 +0,0 @@
package work.slhaf.partner.common.chat.pojo;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class PrimaryChatResponse {
/**
* id
*/
private String id;
/**
* object
*/
private String object;
/**
* created
*/
private int created;
/**
* model
*/
private String model;
/**
* choices
*/
private List<ChoicesBean> choices;
/**
* usage
*/
private UsageBean usage;
/**
* system_fingerprint
*/
private String system_fingerprint;
@Setter
@Getter
public static class UsageBean {
/**
* prompt_tokens
*/
private int prompt_tokens;
/**
* completion_tokens
*/
private int completion_tokens;
/**
* total_tokens
*/
private int total_tokens;
/**
* prompt_cache_hit_tokens
*/
private int prompt_cache_hit_tokens;
/**
* prompt_cache_miss_tokens
*/
private int prompt_cache_miss_tokens;
@Override
public String toString() {
return "UsageBean{" +
"prompt_tokens=" + prompt_tokens +
", completion_tokens=" + completion_tokens +
", total_tokens=" + total_tokens +
", prompt_cache_hit_tokens=" + prompt_cache_hit_tokens +
", prompt_cache_miss_tokens=" + prompt_cache_miss_tokens +
'}';
}
}
@Setter
@Getter
public static class ChoicesBean {
/**
* index
*/
private int index;
/**
* message
*/
private MessageBean message;
/**
* logprobs
*/
private Object logprobs;
/**
* finish_reason
*/
private String finish_reason;
@Setter
@Getter
public static class MessageBean {
/**
* role
*/
private String role;
/**
* content
*/
private String content;
}
}
}

View File

@@ -101,7 +101,6 @@ public class Config {
new ModuleConfig(CoreModel.class.getName(), ModuleConfig.Constant.INTERNAL, null),
new ModuleConfig(PostprocessExecutor.class.getName(),ModuleConfig.Constant.INTERNAL,null),
new ModuleConfig(MemoryUpdater.class.getName(), ModuleConfig.Constant.INTERNAL, null)
// new ModuleConfig(TaskScheduler.class.getName(), ModuleConfig.Constant.INTERNAL, null)
);
config.setModuleConfigList(moduleConfigList);
}

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.common.exception_handler.pojo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.core.cognation.cognation.CognationCore;
import work.slhaf.partner.core.interaction.data.context.InteractionContext;
import work.slhaf.partner.core.session.SessionManager;

View File

@@ -1,6 +0,0 @@
package work.slhaf.partner.common.serialize;
import java.io.Serializable;
public abstract class PersistableObject implements Serializable {
}

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.common.util;
import com.alibaba.fastjson2.JSONArray;
import work.slhaf.partner.Agent;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.Message;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

View File

@@ -2,9 +2,9 @@ package work.slhaf.partner.core.cognation;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.CoordinateManager;
import work.slhaf.partner.api.capability.annotation.Coordinated;
import work.slhaf.partner.common.chat.constant.ChatConstant;
import work.slhaf.partner.api.common.chat.constant.ChatConstant;
import work.slhaf.partner.api.factory.capability.annotation.CoordinateManager;
import work.slhaf.partner.api.factory.capability.annotation.Coordinated;
import work.slhaf.partner.common.exception_handler.GlobalExceptionHandler;
import work.slhaf.partner.common.exception_handler.pojo.GlobalException;
import work.slhaf.partner.core.cognation.cognation.CognationCore;

View File

@@ -1,9 +1,9 @@
package work.slhaf.partner.core.cognation.cognation;
import work.slhaf.partner.api.capability.annotation.Capability;
import work.slhaf.partner.api.capability.annotation.CapabilityMethod;
import work.slhaf.partner.api.capability.annotation.ToCoordinated;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.api.factory.capability.annotation.Capability;
import work.slhaf.partner.api.factory.capability.annotation.CapabilityMethod;
import work.slhaf.partner.api.factory.capability.annotation.ToCoordinated;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.EvaluatedSlice;
import java.util.HashMap;

View File

@@ -4,9 +4,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import work.slhaf.partner.api.capability.annotation.CapabilityCore;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.api.factory.capability.annotation.CapabilityCore;
import work.slhaf.partner.core.cognation.cognation.pojo.ActiveData;
import work.slhaf.partner.core.cognation.submodule.cache.CacheCore;
import work.slhaf.partner.core.cognation.submodule.memory.MemoryCore;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.core.cognation.common.pojo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.MemorySlice;
import java.io.Serial;

View File

@@ -3,7 +3,7 @@ package work.slhaf.partner.core.cognation.common.pojo;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.MemorySlice;
import java.io.Serial;

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.core.cognation.submodule.cache;
import work.slhaf.partner.api.capability.annotation.Capability;
import work.slhaf.partner.api.factory.capability.annotation.Capability;
import java.time.LocalDateTime;
import java.util.HashMap;

View File

@@ -3,9 +3,9 @@ package work.slhaf.partner.core.cognation.submodule.cache;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.CapabilityCore;
import work.slhaf.partner.api.capability.annotation.CapabilityMethod;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.api.factory.capability.annotation.CapabilityCore;
import work.slhaf.partner.api.factory.capability.annotation.CapabilityMethod;
import work.slhaf.partner.core.cognation.common.pojo.MemoryResult;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.MemorySlice;

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.core.cognation.submodule.dispatch;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.core.cognation.submodule.dispatch.pojo.DispatchData;
import java.io.Serial;

View File

@@ -1,7 +1,7 @@
package work.slhaf.partner.core.cognation.submodule.memory;
import work.slhaf.partner.api.capability.annotation.Capability;
import work.slhaf.partner.api.capability.annotation.ToCoordinated;
import work.slhaf.partner.api.factory.capability.annotation.Capability;
import work.slhaf.partner.api.factory.capability.annotation.ToCoordinated;
import work.slhaf.partner.core.cognation.common.pojo.MemoryResult;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.MemorySlice;

View File

@@ -2,9 +2,9 @@ package work.slhaf.partner.core.cognation.submodule.memory;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.capability.annotation.CapabilityCore;
import work.slhaf.partner.api.capability.annotation.CapabilityMethod;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.api.factory.capability.annotation.CapabilityCore;
import work.slhaf.partner.api.factory.capability.annotation.CapabilityMethod;
import work.slhaf.partner.core.cognation.common.pojo.MemoryResult;
import work.slhaf.partner.core.cognation.common.pojo.MemorySliceResult;
import work.slhaf.partner.core.cognation.submodule.memory.exception.UnExistedDateIndexException;

View File

@@ -3,7 +3,7 @@ package work.slhaf.partner.core.cognation.submodule.memory.pojo;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import java.io.Serial;
import java.time.LocalDate;

View File

@@ -3,8 +3,8 @@ package work.slhaf.partner.core.cognation.submodule.memory.pojo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.api.common.entity.PersistableObject;
import java.io.Serial;
import java.util.List;

View File

@@ -3,7 +3,7 @@ package work.slhaf.partner.core.cognation.submodule.memory.pojo.node;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.core.cognation.submodule.memory.exception.NullSliceListException;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.MemorySlice;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.core.cognation.submodule.memory.pojo.node;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import java.io.Serial;
import java.util.concurrent.ConcurrentHashMap;

View File

@@ -1,6 +1,6 @@
package work.slhaf.partner.core.cognation.submodule.perceive;
import work.slhaf.partner.api.capability.annotation.Capability;
import work.slhaf.partner.api.factory.capability.annotation.Capability;
import work.slhaf.partner.core.cognation.submodule.perceive.pojo.User;
@Capability(value = "perceive")

View File

@@ -2,9 +2,9 @@ package work.slhaf.partner.core.cognation.submodule.perceive;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.capability.annotation.CapabilityCore;
import work.slhaf.partner.api.capability.annotation.CapabilityMethod;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.api.factory.capability.annotation.CapabilityCore;
import work.slhaf.partner.api.factory.capability.annotation.CapabilityMethod;
import work.slhaf.partner.core.cognation.cognation.exception.UserNotExistsException;
import work.slhaf.partner.core.cognation.submodule.perceive.pojo.User;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.core.cognation.submodule.perceive.pojo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import java.io.Serial;
import java.time.LocalDate;

View File

@@ -3,7 +3,7 @@ package work.slhaf.partner.core.interaction.data.context;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.core.interaction.data.context.subcontext.CoreContext;
import work.slhaf.partner.core.interaction.data.context.subcontext.ModuleContext;
import work.slhaf.partner.module.common.entity.AppendPromptData;

View File

@@ -3,7 +3,7 @@ package work.slhaf.partner.core.interaction.data.context.subcontext;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import java.io.Serial;
import java.util.HashMap;

View File

@@ -3,7 +3,7 @@ package work.slhaf.partner.core.interaction.data.context.subcontext;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.module.common.entity.AppendPromptData;
import java.io.Serial;

View File

@@ -4,10 +4,10 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.common.chat.pojo.MetaMessage;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.MetaMessage;
import work.slhaf.partner.api.common.entity.PersistableObject;
import work.slhaf.partner.common.config.Config;
import work.slhaf.partner.common.serialize.PersistableObject;
import java.io.*;
import java.nio.file.Files;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.module.common.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.serialize.PersistableObject;
import work.slhaf.partner.api.common.entity.PersistableObject;
import java.io.Serial;
import java.util.HashMap;

View File

@@ -1,75 +0,0 @@
package work.slhaf.partner.module.common.model;
import work.slhaf.partner.common.chat.ChatClient;
import work.slhaf.partner.common.chat.constant.ChatConstant;
import work.slhaf.partner.common.chat.pojo.ChatResponse;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.common.config.ModelConfig;
import work.slhaf.partner.common.util.ResourcesUtil;
import work.slhaf.partner.module.common.module.Module;
import java.util.ArrayList;
import java.util.List;
public interface ActivateModel {
default void modelSettings() {
Model model = new Model();
ModelConfig modelConfig = ModelConfig.load(modelKey());
model.setBaseMessages(withAwareness() ? ResourcesUtil.Prompt.loadPromptWithSelfAwareness(modelKey(), promptModule()) : ResourcesUtil.Prompt.loadPrompt(modelKey(), promptModule()));
model.setChatClient(new ChatClient(modelConfig.getBaseUrl(), modelConfig.getApikey(), modelConfig.getModel()));
}
default ChatResponse chat() {
Model model = getModel();
List<Message> temp = new ArrayList<>();
temp.addAll(model.baseMessages);
temp.addAll(model.chatMessages);
return model.chatClient.runChat(temp);
}
default ChatResponse singleChat(String input) {
Model model = getModel();
List<Message> temp = new ArrayList<>(model.baseMessages);
temp.add(new Message(ChatConstant.Character.USER, input));
return model.chatClient.runChat(temp);
}
default void updateChatClientSettings() {
Model model = getModel();
model.chatClient.setTemperature(0.4);
model.chatClient.setTop_p(0.8);
}
default List<Message> chatMessages() {
return getModel().getChatMessages();
}
default List<Message> baseMessages() {
return getModel().getBaseMessages();
}
default ChatClient chatClient() {
return getModel().getChatClient();
}
/**
* 仅适用Module子类否则需要重写
*
* @return 持有的model实例
*/
default Model getModel() {
return ((Module) this).getModel();
}
default void setModel(Model model) {
((Module) this).setModel(model);
}
String modelKey();
boolean withAwareness();
String promptModule();
}

View File

@@ -1,16 +0,0 @@
package work.slhaf.partner.module.common.model;
import lombok.Data;
import work.slhaf.partner.common.chat.ChatClient;
import work.slhaf.partner.common.chat.pojo.Message;
import java.util.List;
@Data
public class Model {
protected ChatClient chatClient;
protected List<Message> chatMessages;
protected List<Message> baseMessages;
}

View File

@@ -2,6 +2,6 @@ package work.slhaf.partner.module.common.module;
import work.slhaf.partner.core.interaction.module.InteractionFlow;
public abstract class InteractionModule extends Module implements InteractionFlow {
public abstract class InteractionModule/* extends Module*/ implements InteractionFlow {
}

View File

@@ -1,15 +0,0 @@
package work.slhaf.partner.module.common.module;
import lombok.Getter;
import lombok.Setter;
import work.slhaf.partner.api.capability.annotation.CapabilityHolder;
import work.slhaf.partner.module.common.model.Model;
@CapabilityHolder
public abstract class Module {
@Getter
@Setter
protected Model model;
}

View File

@@ -1,13 +0,0 @@
package work.slhaf.partner.module.common.module;
/**
* 子模块基类
* @param <I> 输入类型
* @param <O> 输出类型
*/
public abstract class SubModule<I, O> extends Module {
public abstract O execute(I data);
}

View File

@@ -4,16 +4,16 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
import work.slhaf.partner.common.chat.constant.ChatConstant;
import work.slhaf.partner.common.chat.pojo.ChatResponse;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.common.chat.pojo.MetaMessage;
import work.slhaf.partner.api.common.chat.constant.ChatConstant;
import work.slhaf.partner.api.common.chat.pojo.ChatResponse;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.MetaMessage;
import work.slhaf.partner.api.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.flow.abstracts.ActivateModel;
import work.slhaf.partner.core.cognation.cognation.CognationCapability;
import work.slhaf.partner.core.interaction.data.context.InteractionContext;
import work.slhaf.partner.core.session.SessionManager;
import work.slhaf.partner.module.common.entity.AppendPromptData;
import work.slhaf.partner.module.common.model.ActivateModel;
import work.slhaf.partner.module.common.model.ModelConstant;
import work.slhaf.partner.module.common.module.CoreModule;
@@ -46,7 +46,7 @@ public class CoreModel extends CoreModule implements ActivateModel {
synchronized (CoreModel.class) {
if (coreModel == null) {
coreModel = new CoreModel();
coreModel.model.setChatMessages(coreModel.cognationCapability.getChatMessages());
coreModel.getModel().setChatMessages(coreModel.cognationCapability.getChatMessages());
coreModel.appendedMessages = new ArrayList<>();
coreModel.sessionManager = SessionManager.getInstance();
coreModel.updateChatClientSettings();

View File

@@ -4,7 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
import work.slhaf.partner.api.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.core.cognation.cognation.CognationCapability;
import work.slhaf.partner.core.cognation.common.pojo.MemoryResult;
import work.slhaf.partner.core.cognation.submodule.cache.CacheCapability;

View File

@@ -6,14 +6,14 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.flow.abstracts.ActivateModel;
import work.slhaf.partner.api.flow.abstracts.AgentInteractionSubModule;
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
import work.slhaf.partner.core.cognation.common.pojo.MemoryResult;
import work.slhaf.partner.core.cognation.common.pojo.MemorySliceResult;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.EvaluatedSlice;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.MemorySlice;
import work.slhaf.partner.module.common.model.ActivateModel;
import work.slhaf.partner.module.common.model.ModelConstant;
import work.slhaf.partner.module.common.module.SubModule;
import work.slhaf.partner.module.modules.memory.selector.evaluator.data.EvaluatorBatchInput;
import work.slhaf.partner.module.modules.memory.selector.evaluator.data.EvaluatorInput;
import work.slhaf.partner.module.modules.memory.selector.evaluator.data.EvaluatorResult;
@@ -31,7 +31,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.extractJson;
@EqualsAndHashCode(callSuper = true)
@Data
@Slf4j
public class SliceSelectEvaluator extends SubModule<EvaluatorInput, List<EvaluatedSlice>> implements ActivateModel {
public class SliceSelectEvaluator extends AgentInteractionSubModule<EvaluatorInput, List<EvaluatedSlice>> implements ActivateModel {
private static volatile SliceSelectEvaluator sliceSelectEvaluator;
private InteractionThreadPoolExecutor executor;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.module.modules.memory.selector.evaluator.data;
import lombok.Builder;
import lombok.Data;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.Message;
import java.util.List;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.module.modules.memory.selector.evaluator.data;
import lombok.Builder;
import lombok.Data;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.core.cognation.common.pojo.MemoryResult;
import java.util.List;

View File

@@ -5,9 +5,11 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.common.chat.pojo.MetaMessage;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.MetaMessage;
import work.slhaf.partner.api.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.flow.abstracts.ActivateModel;
import work.slhaf.partner.api.flow.abstracts.AgentInteractionSubModule;
import work.slhaf.partner.common.exception_handler.GlobalExceptionHandler;
import work.slhaf.partner.common.exception_handler.pojo.GlobalException;
import work.slhaf.partner.core.cognation.cognation.CognationCapability;
@@ -15,9 +17,7 @@ import work.slhaf.partner.core.cognation.submodule.memory.MemoryCapability;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.EvaluatedSlice;
import work.slhaf.partner.core.interaction.data.context.InteractionContext;
import work.slhaf.partner.core.session.SessionManager;
import work.slhaf.partner.module.common.model.ActivateModel;
import work.slhaf.partner.module.common.model.ModelConstant;
import work.slhaf.partner.module.common.module.SubModule;
import work.slhaf.partner.module.modules.memory.selector.extractor.data.ExtractorInput;
import work.slhaf.partner.module.modules.memory.selector.extractor.data.ExtractorMatchData;
import work.slhaf.partner.module.modules.memory.selector.extractor.data.ExtractorResult;
@@ -32,7 +32,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.fixTopicPath;
@EqualsAndHashCode(callSuper = true)
@Data
@Slf4j
public class MemorySelectExtractor extends SubModule<InteractionContext, ExtractorResult> implements ActivateModel {
public class MemorySelectExtractor extends AgentInteractionSubModule<InteractionContext, ExtractorResult> implements ActivateModel {
private static volatile MemorySelectExtractor memorySelectExtractor;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.module.modules.memory.selector.extractor.data;
import lombok.Builder;
import lombok.Data;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.core.cognation.submodule.memory.pojo.EvaluatedSlice;
import java.time.LocalDate;

View File

@@ -4,9 +4,9 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
import work.slhaf.partner.common.chat.constant.ChatConstant;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.constant.ChatConstant;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.api.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
import work.slhaf.partner.core.cognation.cognation.CognationCapability;
import work.slhaf.partner.core.cognation.submodule.cache.CacheCapability;

View File

@@ -3,8 +3,8 @@ package work.slhaf.partner.module.modules.memory.updater.summarizer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.flow.abstracts.AgentInteractionSubModule;
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
import work.slhaf.partner.module.common.module.SubModule;
import work.slhaf.partner.module.modules.memory.updater.summarizer.data.SummarizeInput;
import work.slhaf.partner.module.modules.memory.updater.summarizer.data.SummarizeResult;
@@ -13,7 +13,7 @@ import java.util.HashMap;
@EqualsAndHashCode(callSuper = true)
@Data
@Slf4j
public class MemorySummarizer extends SubModule<SummarizeInput,SummarizeResult> {
public class MemorySummarizer extends AgentInteractionSubModule<SummarizeInput,SummarizeResult> {
private static volatile MemorySummarizer memorySummarizer;
public static final String MODEL_KEY = "memory_summarizer";

View File

@@ -5,10 +5,10 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.common.chat.pojo.ChatResponse;
import work.slhaf.partner.module.common.model.ActivateModel;
import work.slhaf.partner.api.common.chat.pojo.ChatResponse;
import work.slhaf.partner.api.flow.abstracts.ActivateModel;
import work.slhaf.partner.api.flow.abstracts.AgentInteractionSubModule;
import work.slhaf.partner.module.common.model.ModelConstant;
import work.slhaf.partner.module.common.module.SubModule;
import work.slhaf.partner.module.modules.memory.updater.summarizer.data.SummarizeInput;
import work.slhaf.partner.module.modules.memory.updater.summarizer.data.SummarizeResult;
@@ -21,7 +21,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.fixTopicPath;
@EqualsAndHashCode(callSuper = true)
@Data
@Slf4j
public class MultiSummarizer extends SubModule<SummarizeInput, SummarizeResult> implements ActivateModel {
public class MultiSummarizer extends AgentInteractionSubModule<SummarizeInput, SummarizeResult> implements ActivateModel {
private static volatile MultiSummarizer multiSummarizer;

View File

@@ -4,13 +4,13 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.common.chat.constant.ChatConstant;
import work.slhaf.partner.common.chat.pojo.ChatResponse;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.constant.ChatConstant;
import work.slhaf.partner.api.common.chat.pojo.ChatResponse;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.api.flow.abstracts.ActivateModel;
import work.slhaf.partner.api.flow.abstracts.AgentInteractionSubModule;
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
import work.slhaf.partner.module.common.model.ActivateModel;
import work.slhaf.partner.module.common.model.ModelConstant;
import work.slhaf.partner.module.common.module.SubModule;
import java.util.ArrayList;
import java.util.List;
@@ -21,7 +21,7 @@ import java.util.concurrent.atomic.AtomicInteger;
@EqualsAndHashCode(callSuper = true)
@Slf4j
@Data
public class SingleSummarizer extends SubModule<List<Message>,Void> implements ActivateModel {
public class SingleSummarizer extends AgentInteractionSubModule<List<Message>,Void> implements ActivateModel {
private static volatile SingleSummarizer singleSummarizer;

View File

@@ -5,10 +5,10 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.common.chat.pojo.ChatResponse;
import work.slhaf.partner.module.common.model.ActivateModel;
import work.slhaf.partner.api.common.chat.pojo.ChatResponse;
import work.slhaf.partner.api.flow.abstracts.ActivateModel;
import work.slhaf.partner.api.flow.abstracts.AgentInteractionSubModule;
import work.slhaf.partner.module.common.model.ModelConstant;
import work.slhaf.partner.module.common.module.SubModule;
import java.util.HashMap;
@@ -17,7 +17,7 @@ import static work.slhaf.partner.common.util.ExtractUtil.extractJson;
@EqualsAndHashCode(callSuper = true)
@Data
@Slf4j
public class TotalSummarizer extends SubModule<HashMap<String, String>, String> implements ActivateModel {
public class TotalSummarizer extends AgentInteractionSubModule<HashMap<String, String>, String> implements ActivateModel {
private static volatile TotalSummarizer totalSummarizer;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.module.modules.memory.updater.summarizer.data;
import lombok.AllArgsConstructor;
import lombok.Data;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.Message;
import java.util.List;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.module.modules.perceive.selector;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
import work.slhaf.partner.api.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.core.cognation.submodule.perceive.PerceiveCapability;
import work.slhaf.partner.core.cognation.submodule.perceive.pojo.User;
import work.slhaf.partner.core.interaction.data.context.InteractionContext;

View File

@@ -3,7 +3,7 @@ package work.slhaf.partner.module.modules.perceive.updater;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
import work.slhaf.partner.api.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
import work.slhaf.partner.core.cognation.cognation.CognationCapability;
import work.slhaf.partner.core.cognation.submodule.perceive.PerceiveCapability;

View File

@@ -3,15 +3,15 @@ package work.slhaf.partner.module.modules.perceive.updater.relation_extractor;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.common.chat.pojo.ChatResponse;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.ChatResponse;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.api.flow.abstracts.ActivateModel;
import work.slhaf.partner.api.flow.abstracts.AgentInteractionSubModule;
import work.slhaf.partner.core.cognation.cognation.CognationCapability;
import work.slhaf.partner.core.cognation.submodule.perceive.PerceiveCapability;
import work.slhaf.partner.core.cognation.submodule.perceive.pojo.User;
import work.slhaf.partner.core.interaction.data.context.InteractionContext;
import work.slhaf.partner.module.common.model.ActivateModel;
import work.slhaf.partner.module.common.model.ModelConstant;
import work.slhaf.partner.module.common.module.SubModule;
import work.slhaf.partner.module.modules.perceive.updater.relation_extractor.pojo.RelationExtractInput;
import work.slhaf.partner.module.modules.perceive.updater.relation_extractor.pojo.RelationExtractResult;
@@ -22,7 +22,7 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
public class RelationExtractor extends SubModule<InteractionContext, RelationExtractResult> implements ActivateModel {
public class RelationExtractor extends AgentInteractionSubModule<InteractionContext, RelationExtractResult> implements ActivateModel {
private static volatile RelationExtractor relationExtractor;

View File

@@ -1,7 +1,7 @@
package work.slhaf.partner.module.modules.perceive.updater.relation_extractor.pojo;
import lombok.Data;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.Message;
import java.util.HashMap;
import java.util.List;

View File

@@ -4,14 +4,14 @@ import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
import work.slhaf.partner.common.chat.pojo.ChatResponse;
import work.slhaf.partner.api.common.chat.pojo.ChatResponse;
import work.slhaf.partner.api.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.flow.abstracts.ActivateModel;
import work.slhaf.partner.api.flow.abstracts.AgentInteractionSubModule;
import work.slhaf.partner.core.cognation.cognation.CognationCapability;
import work.slhaf.partner.core.cognation.submodule.perceive.PerceiveCapability;
import work.slhaf.partner.core.interaction.data.context.InteractionContext;
import work.slhaf.partner.module.common.model.ActivateModel;
import work.slhaf.partner.module.common.model.ModelConstant;
import work.slhaf.partner.module.common.module.SubModule;
import work.slhaf.partner.module.modules.perceive.updater.static_extractor.data.StaticMemoryExtractInput;
import java.io.IOException;
@@ -19,7 +19,7 @@ import java.util.HashMap;
@EqualsAndHashCode(callSuper = true)
@Data
public class StaticMemoryExtractor extends SubModule<InteractionContext, HashMap<String, String>> implements ActivateModel {
public class StaticMemoryExtractor extends AgentInteractionSubModule<InteractionContext, HashMap<String, String>> implements ActivateModel {
private static volatile StaticMemoryExtractor staticMemoryExtractor;

View File

@@ -2,7 +2,7 @@ package work.slhaf.partner.module.modules.perceive.updater.static_extractor.data
import lombok.Builder;
import lombok.Data;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.pojo.Message;
import java.util.List;
import java.util.Map;

View File

@@ -3,7 +3,7 @@ package work.slhaf.partner.module.modules.process;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
import work.slhaf.partner.api.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.core.cognation.cognation.CognationCapability;
import work.slhaf.partner.core.interaction.data.context.InteractionContext;
import work.slhaf.partner.module.common.module.PostModule;

View File

@@ -2,8 +2,8 @@ package work.slhaf.partner.module.modules.process;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.CapabilityHolder;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
import work.slhaf.partner.api.factory.capability.annotation.CapabilityHolder;
import work.slhaf.partner.api.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.core.cognation.cognation.CognationCapability;
import work.slhaf.partner.core.cognation.submodule.perceive.PerceiveCapability;
import work.slhaf.partner.core.cognation.submodule.perceive.pojo.User;

View File

@@ -1,9 +1,9 @@
import cn.hutool.json.JSONUtil;
import org.junit.jupiter.api.Test;
import work.slhaf.partner.common.chat.ChatClient;
import work.slhaf.partner.common.chat.constant.ChatConstant;
import work.slhaf.partner.common.chat.pojo.ChatResponse;
import work.slhaf.partner.common.chat.pojo.Message;
import work.slhaf.partner.api.common.chat.ChatClient;
import work.slhaf.partner.api.common.chat.constant.ChatConstant;
import work.slhaf.partner.api.common.chat.pojo.ChatResponse;
import work.slhaf.partner.api.common.chat.pojo.Message;
import work.slhaf.partner.common.config.ModelConfig;
import work.slhaf.partner.common.util.ResourcesUtil;
import work.slhaf.partner.module.common.model.ModelConstant;