refactor(chat): use Message.Character enum for roles and remove unused prompt helpers

This commit is contained in:
2026-03-09 22:12:35 +08:00
parent 1b2ccaee9c
commit 5db533f823
25 changed files with 103 additions and 222 deletions

View File

@@ -1,50 +0,0 @@
package work.slhaf.partner.common.util;
import com.alibaba.fastjson2.JSONArray;
import work.slhaf.partner.api.agent.Agent;
import work.slhaf.partner.api.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/basic_prompt.json";
private static final String MODULE_PROMPT_PREFIX_PATH = "prompt/component/";
public static List<Message> loadPromptWithSelfAwareness(String modelKey, String promptType) {
//加载人格引导
List<Message> messages = new ArrayList<>(loadSelfAwareness());
//加载常规提示
String path = MODULE_PROMPT_PREFIX_PATH + promptType + "/" + modelKey + ".json";
messages.addAll(readPromptFromResources(path));
return messages;
}
public static List<Message> loadSelfAwareness() {
return readPromptFromResources(SELF_AWARENESS_PATH);
}
public static List<Message> loadPrompt(String modelKey, String promptType) {
return new ArrayList<>(readPromptFromResources(MODULE_PROMPT_PREFIX_PATH + promptType + "/" + modelKey + ".json"));
}
private static List<Message> 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);
}
}
}
}

View File

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSONObject;
import lombok.val;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.module.modules.action.executor.entity.CorrectorInput;
import work.slhaf.partner.module.modules.action.executor.entity.CorrectorResult;
@@ -18,7 +17,7 @@ public class ActionCorrector extends AbstractAgentModule.Sub<CorrectorInput, Cor
@Override
public CorrectorResult execute(CorrectorInput input) {
val prompt = buildPrompt(input);
return formattedChat(List.of(new Message(ChatConstant.Character.USER, prompt)), CorrectorResult.class);
return formattedChat(List.of(new Message(Message.Character.USER, prompt)), CorrectorResult.class);
}
private String buildPrompt(CorrectorInput input) {

View File

@@ -9,7 +9,6 @@ import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentMod
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
import work.slhaf.partner.api.agent.factory.component.annotation.InjectModule;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.action.ActionCapability;
import work.slhaf.partner.core.action.ActionCore.ExecutorType;
@@ -63,7 +62,7 @@ public class ActionRepairer extends AbstractAgentModule.Sub<RepairerInput, Repai
try {
String prompt = assemblyHelper.buildPrompt(data, null);
RepairerData repairerData = formattedChat(
List.of(new Message(ChatConstant.Character.USER, prompt)),
List.of(new Message(Message.Character.USER, prompt)),
RepairerData.class
);
result = switch (repairerData.getRepairerType()) {
@@ -79,7 +78,7 @@ public class ActionRepairer extends AbstractAgentModule.Sub<RepairerInput, Repai
log.warn("常规行动修复失败,将尝试自对话通道");
prompt = assemblyHelper.buildPrompt(data, "常规行动修复失败,请尝试通过自对话通道获取必要的信息以完成行动参数的修复");
repairerData = formattedChat(
List.of(new Message(ChatConstant.Character.USER, prompt)),
List.of(new Message(Message.Character.USER, prompt)),
RepairerData.class
);
handleUserInteraction(repairerData.getData());

View File

@@ -6,7 +6,6 @@ import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapabili
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.action.ActionCapability;
import work.slhaf.partner.core.action.entity.GeneratedData;
@@ -40,7 +39,7 @@ public class DynamicActionGenerator extends AbstractAgentModule.Sub<GeneratorInp
String prompt = buildPrompt(input);
// 响应结果需要包含几个特殊数据: 依赖项、代码内容、是否序列化、响应数据释义
GeneratedData generatorData = formattedChat(
List.of(new Message(ChatConstant.Character.USER, prompt)),
List.of(new Message(Message.Character.USER, prompt)),
GeneratedData.class
);
val location = runnerClient.buildTmpPath(input.getActionName(), generatorData.getCodeType());

View File

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.action.entity.MetaActionInfo;
import work.slhaf.partner.module.modules.action.executor.entity.ExtractorInput;
@@ -23,7 +22,7 @@ public class ParamsExtractor extends AbstractAgentModule.Sub<ExtractorInput, Ext
String prompt = buildPrompt(input);
ExtractorResult result;
try {
result = formattedChat(List.of(new Message(ChatConstant.Character.USER, prompt)), ExtractorResult.class);
result = formattedChat(List.of(new Message(Message.Character.USER, prompt)), ExtractorResult.class);
} catch (Exception e) {
log.error("ParamsExtractor解析结果失败", e);
result = new ExtractorResult();

View File

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSONObject;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.action.ActionCapability;
import work.slhaf.partner.core.action.ActionCore.ExecutorType;
@@ -54,7 +53,7 @@ public class InterventionEvaluator extends AbstractAgentModule.Sub<EvaluatorInpu
try {
String prompt = buildPrompt(input.getRecentMessages(), input.getActivatedSlices(), actionData, tendency);
EvaluatedInterventionData evaluatedData = formattedChat(
List.of(new Message(ChatConstant.Character.USER, prompt)),
List.of(new Message(Message.Character.USER, prompt)),
EvaluatedInterventionData.class);
synchronized (evaluatedDataList) {
evaluatedDataList.add(evaluatedData);

View File

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSONObject;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.action.ActionCapability;
import work.slhaf.partner.core.action.ActionCore;
@@ -50,7 +49,7 @@ public class InterventionRecognizer extends AbstractAgentModule.Sub<RecognizerIn
try {
String prompt = buildPrompt(data, input);
MetaRecognizerResult result = formattedChat(
List.of(new Message(ChatConstant.Character.USER, prompt)),
List.of(new Message(Message.Character.USER, prompt)),
MetaRecognizerResult.class
);
if (result.isOk()) {

View File

@@ -5,7 +5,6 @@ import com.alibaba.fastjson2.JSONObject;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.action.ActionCapability;
import work.slhaf.partner.core.action.ActionCore;
@@ -39,7 +38,7 @@ public class ActionConfirmer extends AbstractAgentModule.Sub<ConfirmerInput, Con
ExecutableAction executableAction = pendingAction.getExecutableAction();
String prompt = buildPrompt(executableAction, data.getInput(), data.getRecentMessages());
DecisionResponse tempResult = formattedChat(
List.of(new Message(ChatConstant.Character.USER, prompt)),
List.of(new Message(Message.Character.USER, prompt)),
DecisionResponse.class
);
PendingActionRecord.Decision decision = parseDecision(tempResult);

View File

@@ -7,7 +7,6 @@ import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapabili
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
import work.slhaf.partner.core.action.ActionCapability;
@@ -50,7 +49,7 @@ public class ActionEvaluator extends AbstractAgentModule.Sub<EvaluatorInput, Lis
for (EvaluatorBatchInput batchInput : batchInputs) {
list.add(() -> {
EvaluatorResult evaluatorResult = formattedChat(
List.of(new Message(ChatConstant.Character.USER, buildPrompt(batchInput))),
List.of(new Message(Message.Character.USER, buildPrompt(batchInput))),
EvaluatorResult.class
);
evaluatorResult.setTendency(batchInput.getTendency());

View File

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSONObject;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.action.ActionCapability;
import work.slhaf.partner.module.modules.action.planner.extractor.entity.ExtractorInput;
@@ -27,7 +26,7 @@ public class ActionExtractor extends AbstractAgentModule.Sub<ExtractorInput, Ext
for (int i = 0; i < 3; i++) {
try {
return formattedChat(
List.of(new Message(ChatConstant.Character.USER, JSONObject.toJSONString(data))),
List.of(new Message(Message.Character.USER, JSONObject.toJSONString(data))),
ExtractorResult.class
);
} catch (Exception e) {

View File

@@ -8,7 +8,6 @@ import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapabili
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.api.chat.pojo.MetaMessage;
import work.slhaf.partner.core.cognation.CognationCapability;
@@ -143,7 +142,7 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
private void updateModuleContextAndChatMessages(PartnerRunningFlowContext runningFlowContext, String response) {
cognationCapability.getMessageLock().lock();
chatMessages.removeIf(m -> {
if (m.getRole().equals(ChatConstant.Character.ASSISTANT)) {
if (m.getRole() == Message.Character.ASSISTANT) {
return false;
}
try {
@@ -156,9 +155,9 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
//添加时间标志
// TODO 此处的时间标识应当采用 RunningFlowContext 携带时间
String dateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("\r\n**[yyyy-MM-dd HH:mm:ss]"));
Message primaryUserMessage = new Message(ChatConstant.Character.USER, runningFlowContext.getCoreContext().getText() + dateTime);
Message primaryUserMessage = new Message(Message.Character.USER, runningFlowContext.getCoreContext().getText() + dateTime);
chatMessages.add(primaryUserMessage);
Message assistantMessage = new Message(ChatConstant.Character.ASSISTANT, response);
Message assistantMessage = new Message(Message.Character.ASSISTANT, response);
chatMessages.add(assistantMessage);
cognationCapability.getMessageLock().unlock();
//区分单人聊天场景
@@ -169,7 +168,7 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
}
private void setMessage(String coreContextStr) {
Message userMessage = new Message(ChatConstant.Character.USER, coreContextStr);
Message userMessage = new Message(Message.Character.USER, coreContextStr);
chatMessages.add(userMessage);
}
@@ -183,7 +182,7 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
}
private void setAppendedPromptMessage(List<AppendPromptData> appendPrompt) {
Message appendDeclareMessage = new Message(ChatConstant.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + "认知补充开始");
Message appendDeclareMessage = new Message(Message.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + "认知补充开始");
this.appendedMessages.add(appendDeclareMessage);
for (AppendPromptData data : appendPrompt) {
setStartMessage(data);
@@ -191,29 +190,29 @@ public class CommunicationProducer extends AbstractAgentModule.Running<PartnerRu
setEndMessage(data);
setAssistantMessage();
}
Message appendEndMessage = new Message(ChatConstant.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + "认知补充结束");
Message appendEndMessage = new Message(Message.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + "认知补充结束");
this.appendedMessages.add(appendEndMessage);
}
private void setAssistantMessage() {
Message message = new Message(ChatConstant.Character.ASSISTANT, "嗯,明白了");
Message message = new Message(Message.Character.ASSISTANT, "嗯,明白了");
appendedMessages.add(message);
}
private void setEndMessage(AppendPromptData data) {
Message endMessage = new Message(ChatConstant.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + data.getModuleName() + "认知补充结束.");
Message endMessage = new Message(Message.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + data.getModuleName() + "认知补充结束.");
appendedMessages.add(endMessage);
}
private void setContentMessage(AppendPromptData data) {
data.getAppendedPrompt().forEach((k, v) -> {
Message contentMessage = new Message(ChatConstant.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + k + v + "\r\n");
Message contentMessage = new Message(Message.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + k + v + "\r\n");
appendedMessages.add(contentMessage);
});
}
private void setStartMessage(AppendPromptData data) {
Message startMessage = new Message(ChatConstant.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + data.getModuleName() + "以下为" + data.getModuleName() + "相关认知.");
Message startMessage = new Message(Message.Character.USER, ModelConstant.CharacterPrefix.SYSTEM + data.getModuleName() + "以下为" + data.getModuleName() + "相关认知.");
appendedMessages.add(startMessage);
}

View File

@@ -5,7 +5,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.annotation.InjectModule;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.cognation.CognationCapability;
import work.slhaf.partner.core.memory.MemoryCapability;
import work.slhaf.partner.core.memory.exception.UnExistedDateIndexException;
@@ -147,7 +147,7 @@ public class MemorySelector extends PreRunningAbstractAgentModuleAbstract {
private boolean isSingleUser() {
Set<String> userIdSet = new HashSet<>();
cognationCapability.getChatMessages().forEach(m -> {
if (m.getRole().equals(ChatConstant.Character.ASSISTANT)) {
if (m.getRole() == Message.Character.ASSISTANT) {
return;
}
String userId = extractUserId(m.getContent());

View File

@@ -8,7 +8,6 @@ import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
import work.slhaf.partner.core.memory.pojo.EvaluatedSlice;
@@ -62,7 +61,7 @@ public class SliceSelectEvaluator extends AbstractAgentModule.Sub<EvaluatorInput
.build();
log.debug("[SliceSelectEvaluator] 评估[{}]输入: {}", thisCount, JSONObject.toJSONString(batchInput));
EvaluatorResult evaluatorResult = formattedChat(
List.of(new Message(ChatConstant.Character.USER, JSONUtil.toJsonStr(batchInput))),
List.of(new Message(Message.Character.USER, JSONUtil.toJsonStr(batchInput))),
EvaluatorResult.class
);
log.debug("[SliceSelectEvaluator] 评估[{}]结果: {}", thisCount, JSONObject.toJSONString(evaluatorResult));

View File

@@ -6,7 +6,6 @@ import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.api.chat.pojo.MetaMessage;
import work.slhaf.partner.core.cognation.CognationCapability;
@@ -53,7 +52,7 @@ public class MemorySelectExtractor extends AbstractAgentModule.Sub<PartnerRunnin
.build();
log.debug("[MemorySelectExtractor] 主题提取输入: {}", JSONUtil.toJsonStr(extractorInput));
extractorResult = formattedChat(
List.of(new Message(ChatConstant.Character.USER, JSONUtil.toJsonPrettyStr(extractorInput))),
List.of(new Message(Message.Character.USER, JSONUtil.toJsonPrettyStr(extractorInput))),
ExtractorResult.class
);
log.debug("[MemorySelectExtractor] 主题提取结果: {}", extractorResult);

View File

@@ -7,7 +7,6 @@ import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
import work.slhaf.partner.api.agent.factory.component.annotation.InjectModule;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.api.chat.pojo.MetaMessage;
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
@@ -215,7 +214,7 @@ public class MemoryUpdater extends PostRunningAgentModule {
private List<Message> getCleanedMessages(List<Message> chatMessages) {
return chatMessages.stream()
.map(message -> {
if (message.getRole().equals(ChatConstant.Character.ASSISTANT)) {
if (message.getRole() == Message.Character.ASSISTANT) {
return message;
}
List<String> splitResult = Arrays.stream(message.getContent().split("\\*\\*")).toList();
@@ -223,13 +222,13 @@ public class MemoryUpdater extends PostRunningAgentModule {
return message;
}
String time = splitResult.getLast();
return new Message(ChatConstant.Character.USER, message.getContent().replace("\r\n**" + time, ""));
return new Message(Message.Character.USER, message.getContent().replace("\r\n**" + time, ""));
}).toList();
}
private void setInvolvedUserId(String startUserId, MemorySlice memorySlice, List<Message> chatMessages) {
for (Message chatMessage : chatMessages) {
if (chatMessage.getRole().equals(ChatConstant.Character.ASSISTANT)) {
if (chatMessage.getRole() == Message.Character.ASSISTANT) {
continue;
}
// 匹配userId

View File

@@ -6,7 +6,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.module.modules.memory.updater.summarizer.entity.SummarizeInput;
import work.slhaf.partner.module.modules.memory.updater.summarizer.entity.SummarizeResult;
@@ -23,7 +22,7 @@ public class MultiSummarizer extends AbstractAgentModule.Sub<SummarizeInput, Sum
public SummarizeResult execute(SummarizeInput input) {
log.debug("[MemorySummarizer] 整体摘要开始...");
SummarizeResult result = formattedChat(
List.of(new Message(ChatConstant.Character.USER, JSONUtil.toJsonPrettyStr(input))),
List.of(new Message(Message.Character.USER, JSONUtil.toJsonPrettyStr(input))),
SummarizeResult.class
);
log.debug("[MemorySummarizer] 整体摘要结果: {}", JSONObject.toJSONString(result));

View File

@@ -6,7 +6,6 @@ import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.agent.factory.component.annotation.Init;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.common.thread.InteractionThreadPoolExecutor;
@@ -33,7 +32,7 @@ public class SingleSummarizer extends AbstractAgentModule.Sub<List<Message>, Voi
AtomicInteger counter = new AtomicInteger();
for (int i = 0; i < chatMessages.size(); i++) {
Message chatMessage = chatMessages.get(i);
if (chatMessage.getRole().equals(ChatConstant.Character.ASSISTANT)) {
if (chatMessage.getRole() == Message.Character.ASSISTANT) {
String content = chatMessage.getContent();
if (chatMessage.getContent().length() > 500) {
int index = i;
@@ -41,7 +40,7 @@ public class SingleSummarizer extends AbstractAgentModule.Sub<List<Message>, Voi
int thisCount = counter.incrementAndGet();
log.debug("[MemorySummarizer] 长文本摘要[{}]启动", thisCount);
String summarized = singleExecute(JSONObject.of("content", content).toString());
chatMessages.set(index, new Message(chatMessage.getRole(), summarized));
chatMessages.set(index, new Message(Message.Character.ASSISTANT, summarized));
log.debug("[MemorySummarizer] 长文本摘要[{}]完成", thisCount);
return null;
});
@@ -55,7 +54,7 @@ public class SingleSummarizer extends AbstractAgentModule.Sub<List<Message>, Voi
private String singleExecute(String primaryContent) {
try {
return chat(List.of(new Message(ChatConstant.Character.USER, primaryContent)));
return chat(List.of(new Message(Message.Character.USER, primaryContent)));
} catch (Exception e) {
log.error("[SingleSummarizer] 单消息总结出错: ", e);
return primaryContent;

View File

@@ -5,7 +5,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import java.util.HashMap;
@@ -16,7 +15,7 @@ import java.util.List;
public class TotalSummarizer extends AbstractAgentModule.Sub<HashMap<String, String>, String> implements ActivateModel {
public String execute(HashMap<String, String> singleMemorySummary) {
return formattedChat(
List.of(new Message(ChatConstant.Character.USER, JSONUtil.toJsonPrettyStr(singleMemorySummary))),
List.of(new Message(Message.Character.USER, JSONUtil.toJsonPrettyStr(singleMemorySummary))),
SummaryContent.class
).getContent();
}

View File

@@ -6,7 +6,6 @@ import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.cognation.CognationCapability;
import work.slhaf.partner.core.perceive.PerceiveCapability;
@@ -50,7 +49,7 @@ public class RelationExtractor extends AbstractAgentModule.Sub<PartnerRunningFlo
private RelationExtractResult getRelationResult(RelationExtractInput input) {
return formattedChat(
List.of(new Message(ChatConstant.Character.USER, JSONObject.toJSONString(input))),
List.of(new Message(Message.Character.USER, JSONObject.toJSONString(input))),
RelationExtractResult.class
);
}

View File

@@ -7,7 +7,6 @@ import lombok.EqualsAndHashCode;
import work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability;
import work.slhaf.partner.api.agent.factory.component.abstracts.AbstractAgentModule;
import work.slhaf.partner.api.agent.factory.component.abstracts.ActivateModel;
import work.slhaf.partner.api.chat.constant.ChatConstant;
import work.slhaf.partner.api.chat.pojo.Message;
import work.slhaf.partner.core.cognation.CognationCapability;
import work.slhaf.partner.core.perceive.PerceiveCapability;
@@ -32,7 +31,7 @@ public class StaticMemoryExtractor extends AbstractAgentModule.Sub<PartnerRunnin
.messages(cognationCapability.getChatMessages())
.existedStaticMap(perceiveCapability.getUser(context.getSource()).getStaticMemory())
.build();
String response = chat(List.of(new Message(ChatConstant.Character.USER, JSONUtil.toJsonPrettyStr(input))));
String response = chat(List.of(new Message(Message.Character.USER, JSONUtil.toJsonPrettyStr(input))));
JSONObject jsonObject = JSONObject.parseObject(response);
HashMap<String, String> result = new HashMap<>();
jsonObject.forEach((k, v) -> result.put(k, (String) v));