diff --git a/src/main/java/work/slhaf/agent/common/util/ResourcesUtil.java b/src/main/java/work/slhaf/agent/common/util/ResourcesUtil.java new file mode 100644 index 00000000..adcc9642 --- /dev/null +++ b/src/main/java/work/slhaf/agent/common/util/ResourcesUtil.java @@ -0,0 +1,46 @@ +package work.slhaf.agent.common.util; + +import com.alibaba.fastjson2.JSONArray; +import work.slhaf.agent.Agent; +import work.slhaf.agent.common.chat.pojo.Message; + +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; + +public class ResourcesUtil { + + private static final ClassLoader classloader = Agent.class.getClassLoader(); + + public static class Prompt { + private static final String SELF_AWARENESS_PATH = "prompt/self_awareness.json"; + private static final String MODULE_PROMPT_PREFIX_PATH = "prompt/module/"; + + public static List loadPrompt(String modelKey) { + //加载人格引导 + List messages = new ArrayList<>(loadSelfAwareness()); + //加载常规提示 + String path = MODULE_PROMPT_PREFIX_PATH + modelKey + ".json"; + messages.addAll(readPromptFromResources(path)); + return messages; + } + + private static List loadSelfAwareness() { + return readPromptFromResources(SELF_AWARENESS_PATH); + } + + private static List readPromptFromResources(String filePath) { + try { + InputStream inputStream = classloader.getResourceAsStream(filePath); + String content = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); + JSONArray array = JSONArray.parse(content); + inputStream.close(); + return array.toJavaList(Message.class); + } catch (Exception e) { + throw new RuntimeException("读取Resource失败: " + filePath, e); + } + } + } + +} diff --git a/src/main/java/work/slhaf/agent/core/memory/MemoryGraph.java b/src/main/java/work/slhaf/agent/core/memory/MemoryGraph.java index fed34f67..234ee6cb 100644 --- a/src/main/java/work/slhaf/agent/core/memory/MemoryGraph.java +++ b/src/main/java/work/slhaf/agent/core/memory/MemoryGraph.java @@ -1,6 +1,5 @@ package work.slhaf.agent.core.memory; -import cn.hutool.json.JSONUtil; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java b/src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java index 31f6f04a..c4a387e7 100644 --- a/src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java +++ b/src/main/java/work/slhaf/agent/shared/memory/EvaluatedSlice.java @@ -3,7 +3,6 @@ package work.slhaf.agent.shared.memory; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; import work.slhaf.agent.common.chat.pojo.Message; import work.slhaf.agent.common.pojo.PersistableObject; diff --git a/src/main/resources/prompt/self_awareness.json b/src/main/resources/prompt/self_awareness.json new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/src/main/resources/prompt/self_awareness.json @@ -0,0 +1 @@ +[] \ No newline at end of file