From fec64ff07146cd0e8f2d8951b0e677e63db27f5b Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Mon, 26 May 2025 21:57:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E8=A1=8C:=20=E6=8A=BD=E5=8F=96?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=8D=E8=87=B3resources=E5=86=85=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=8F=90=E7=A4=BA=E8=AF=8D=E5=BC=95=E5=AF=BC?= =?UTF-8?q?=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加了ResourceUtil,用于读取prompt --- .../agent/common/util/ResourcesUtil.java | 46 +++++++++++++++++++ .../slhaf/agent/core/memory/MemoryGraph.java | 1 - .../agent/shared/memory/EvaluatedSlice.java | 1 - src/main/resources/prompt/self_awareness.json | 1 + 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/main/java/work/slhaf/agent/common/util/ResourcesUtil.java create mode 100644 src/main/resources/prompt/self_awareness.json 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