refactor(framework): remove module enabled-status loading and persistence from config loaders

This commit is contained in:
2026-02-28 21:19:58 +08:00
parent 0870d7bc0e
commit 33fdc61eff
2 changed files with 2 additions and 90 deletions

View File

@@ -3,13 +3,12 @@ package work.slhaf.partner.api.agent.runtime.config;
import lombok.Data;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.agent.factory.component.pojo.MetaModule;
import work.slhaf.partner.api.agent.factory.config.exception.ConfigUpdateFailedException;
import work.slhaf.partner.api.agent.factory.config.exception.PromptNotExistException;
import work.slhaf.partner.api.agent.factory.config.pojo.ModelConfig;
import work.slhaf.partner.api.chat.pojo.Message;
import java.util.*;
import java.util.HashMap;
import java.util.List;
@Slf4j
@Data
@@ -20,9 +19,6 @@ public abstract class AgentConfigLoader {
public static AgentConfigLoader INSTANCE;
protected HashMap<String, ModelConfig> modelConfigMap;
protected HashMap<String, List<Message>> modelPromptMap;
protected HashMap<String, Boolean> moduleEnabledStatus;
protected Map<Integer, List<MetaModule>> moduleOrderedMap = new LinkedHashMap<>();
protected Map<String, MetaModule> moduleMap = new HashMap<>();
public void load() {
modelConfigMap = loadModelConfig();
@@ -35,42 +31,6 @@ public abstract class AgentConfigLoader {
public abstract void dumpModelConfig(String key);
protected abstract void dumpModuleEnabledStatus();
protected abstract HashMap<String, Boolean> loadModuleEnabledStatusMap(List<MetaModule> moduleList);
public void moduleEnabledStatusFilterAndRecord(List<MetaModule> moduleList) {
updateModuleMap(moduleList);
updateModuleEnabledStatus(moduleList);
}
private void updateModuleMap(List<MetaModule> moduleList) {
//在ModuleRegisterFactory已进行过排序操作
for (MetaModule module : moduleList) {
int k = module.getOrder();
moduleOrderedMap.computeIfAbsent(k, order -> new ArrayList<>()).add(module);
moduleMap.put(module.getName(), module);
}
}
private void updateModuleEnabledStatus(List<MetaModule> moduleList) {
this.moduleEnabledStatus = loadModuleEnabledStatusMap(moduleList);
boolean unmatch = false;
for (MetaModule metaModule : moduleList) {
String moduleName = metaModule.getName();
if (moduleEnabledStatus.containsKey(moduleName)) {
metaModule.setEnabled(moduleEnabledStatus.get(moduleName));
} else {
log.warn("缺少Module {} 启用配置! 将触发更新操作!", moduleName);
unmatch = true;
}
}
if (unmatch) {
dumpModuleEnabledStatus();
}
}
public List<Message> loadModelPrompt(String modelKey) {
if (!modelPromptMap.containsKey(modelKey)) {
throw new PromptNotExistException("不存在的modelPrompt: " + modelKey);
@@ -90,13 +50,4 @@ public abstract class AgentConfigLoader {
dumpModelConfig(modelKey);
}
public void updateModuleEnabledStatus(String key, boolean status) {
if (!moduleEnabledStatus.containsKey(key)) {
throw new ConfigUpdateFailedException("模块状态更新失败! 不存在的ModuleKey: " + key);
}
moduleEnabledStatus.put(key, status);
dumpModuleEnabledStatus();
moduleMap.get(key).setEnabled(status);
}
}

View File

@@ -1,10 +1,8 @@
package work.slhaf.partner.api.agent.runtime.config;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import work.slhaf.partner.api.agent.factory.component.pojo.MetaModule;
import work.slhaf.partner.api.agent.factory.config.exception.*;
import work.slhaf.partner.api.agent.factory.config.pojo.ModelConfig;
import work.slhaf.partner.api.agent.factory.config.pojo.PrimaryModelConfig;
@@ -12,7 +10,6 @@ import work.slhaf.partner.api.agent.factory.config.pojo.PrimaryModelPrompt;
import work.slhaf.partner.api.chat.pojo.Message;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
@@ -27,8 +24,6 @@ public class FileAgentConfigLoader extends AgentConfigLoader {
protected static final String CONFIG_DIR = "./config/";
protected static final String MODEL_CONFIG_DIR = "./config/model/";
protected static final String PROMPT_CONFIG_DIR = "./config/prompt/";
protected static final String MODULE_ENABLED_STATUS_CONFIG_FILE = CONFIG_DIR + "module_enabled_status.json";
@Override
protected HashMap<String, List<Message>> loadModelPrompt() {
@@ -73,30 +68,6 @@ public class FileAgentConfigLoader extends AgentConfigLoader {
return configMap;
}
@Override
protected HashMap<String, Boolean> loadModuleEnabledStatusMap(List<MetaModule> moduleList) {
File file = new File(MODULE_ENABLED_STATUS_CONFIG_FILE);
try {
moduleEnabledStatus = new HashMap<>();
if (!file.exists()) {
file.createNewFile();
for (MetaModule module : moduleList) {
moduleEnabledStatus.put(module.getName(), module.isEnabled());
}
dumpModuleEnabledStatus();
} else {
JSONObject obj = JSONUtil.readJSONObject(file, StandardCharsets.UTF_8);
for (String s : obj.keySet()) {
moduleEnabledStatus.put(s, obj.getBool(s));
}
log.info("ModuleEnabledStatusConfig 配置文件已成功读取!");
}
return moduleEnabledStatus;
} catch (Exception e) {
throw new ConfigGenerateFailedException("ModuleEnabledStatusConfig 配置文件创建失败!", e);
}
}
@Override
public void dumpModelConfig(String key) {
try {
@@ -109,14 +80,4 @@ public class FileAgentConfigLoader extends AgentConfigLoader {
throw new ConfigUpdateFailedException("ModelConfig 配置文件更新失败!");
}
}
@Override
protected void dumpModuleEnabledStatus() {
try {
File file = new File(MODULE_ENABLED_STATUS_CONFIG_FILE);
FileUtils.writeStringToFile(file, JSONUtil.toJsonPrettyStr(moduleEnabledStatus), StandardCharsets.UTF_8, false);
} catch (IOException e) {
throw new ConfigGenerateFailedException("ModuleEnabledStatus 配置文件更新失败!");
}
}
}