mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +08:00
refactor(action): adjust pending action block content and make full-expanded block as SUPPLY block
This commit is contained in:
@@ -85,8 +85,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void appendTendencyBlock(List<String> tendencies, String input) {
|
private void appendTendencyBlock(List<String> tendencies, String input) {
|
||||||
input = input.trim();
|
input = trimInput(input);
|
||||||
input = input.length() <= 100 ? input : input.substring(0, 100);
|
|
||||||
String datetime = ZonedDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
String datetime = ZonedDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
||||||
buildTendenciesEvaluatingFullBlock(tendencies),
|
buildTendenciesEvaluatingFullBlock(tendencies),
|
||||||
@@ -137,7 +136,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
executor.execute(() -> {
|
executor.execute(() -> {
|
||||||
EvaluatorInput evaluatorInput = assemblyHelper.buildEvaluatorInput(extractorResult);
|
EvaluatorInput evaluatorInput = assemblyHelper.buildEvaluatorInput(extractorResult);
|
||||||
List<EvaluatorResult> evaluatorResults = actionEvaluator.execute(evaluatorInput); // 并发操作均为访问
|
List<EvaluatorResult> evaluatorResults = actionEvaluator.execute(evaluatorInput); // 并发操作均为访问
|
||||||
handleEvaluatorResults(evaluatorResults, source);
|
handleEvaluatorResults(evaluatorResults, source, input);
|
||||||
updateTendencyCache(evaluatorResults, input, extractorResult);
|
updateTendencyCache(evaluatorResults, input, extractorResult);
|
||||||
|
|
||||||
cognitionCapability.contextWorkspace().expire(TENDENCIES_EVALUATING_BLOCK_NAME, BLOCK_SOURCE);
|
cognitionCapability.contextWorkspace().expire(TENDENCIES_EVALUATING_BLOCK_NAME, BLOCK_SOURCE);
|
||||||
@@ -165,7 +164,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleEvaluatorResults(List<EvaluatorResult> evaluatorResults, String source) {
|
private void handleEvaluatorResults(List<EvaluatorResult> evaluatorResults, String source, String input) {
|
||||||
for (EvaluatorResult evaluatorResult : evaluatorResults) {
|
for (EvaluatorResult evaluatorResult : evaluatorResults) {
|
||||||
expireResolvedPending(evaluatorResult);
|
expireResolvedPending(evaluatorResult);
|
||||||
if (!evaluatorResult.isOk()) {
|
if (!evaluatorResult.isOk()) {
|
||||||
@@ -173,7 +172,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
}
|
}
|
||||||
ExecutableAction executableAction = assemblyHelper.buildActionData(evaluatorResult, source);
|
ExecutableAction executableAction = assemblyHelper.buildActionData(evaluatorResult, source);
|
||||||
if (evaluatorResult.isNeedConfirm()) {
|
if (evaluatorResult.isNeedConfirm()) {
|
||||||
registerPendingContextBlock(executableAction, evaluatorResult);
|
registerPendingContextBlock(executableAction, evaluatorResult, input);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
executeOrSchedule(executableAction);
|
executeOrSchedule(executableAction);
|
||||||
@@ -194,12 +193,13 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerPendingContextBlock(ExecutableAction executableAction, EvaluatorResult evaluatorResult) {
|
private void registerPendingContextBlock(ExecutableAction executableAction, EvaluatorResult evaluatorResult, String input) {
|
||||||
String blockName = buildPendingBlockName(executableAction);
|
String blockName = buildPendingBlockName(executableAction);
|
||||||
|
input = trimInput(input);
|
||||||
ContextBlock block = new ContextBlock(
|
ContextBlock block = new ContextBlock(
|
||||||
buildPendingBlock(blockName, executableAction, evaluatorResult),
|
buildPendingBlock(blockName, executableAction, evaluatorResult),
|
||||||
buildPendingCompactBlock(blockName, executableAction, evaluatorResult),
|
buildPendingCompactBlock(blockName, executableAction, evaluatorResult, input),
|
||||||
buildPendingAbstractBlock(blockName, executableAction, evaluatorResult),
|
buildPendingAbstractBlock(blockName, executableAction, evaluatorResult, input),
|
||||||
Set.of(ContextBlock.VisibleDomain.ACTION),
|
Set.of(ContextBlock.VisibleDomain.ACTION),
|
||||||
PENDING_REPLACE_FADE_FACTOR,
|
PENDING_REPLACE_FADE_FACTOR,
|
||||||
PENDING_TIME_FADE_FACTOR,
|
PENDING_TIME_FADE_FACTOR,
|
||||||
@@ -213,7 +213,7 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
}
|
}
|
||||||
|
|
||||||
private BlockContent buildPendingBlock(String blockName, ExecutableAction executableAction, EvaluatorResult evaluatorResult) {
|
private BlockContent buildPendingBlock(String blockName, ExecutableAction executableAction, EvaluatorResult evaluatorResult) {
|
||||||
return new BlockContent(blockName, BLOCK_SOURCE, BlockContent.Urgency.HIGH) {
|
return new CommunicationBlockContent(blockName, BLOCK_SOURCE, BlockContent.Urgency.HIGH, CommunicationBlockContent.Projection.SUPPLY) {
|
||||||
@Override
|
@Override
|
||||||
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
||||||
appendTextElement(document, root, "state", "waiting_confirm");
|
appendTextElement(document, root, "state", "waiting_confirm");
|
||||||
@@ -252,11 +252,12 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private BlockContent buildPendingCompactBlock(String blockName, ExecutableAction executableAction, EvaluatorResult evaluatorResult) {
|
private BlockContent buildPendingCompactBlock(String blockName, ExecutableAction executableAction, EvaluatorResult evaluatorResult, String input) {
|
||||||
return new BlockContent(blockName, BLOCK_SOURCE, BlockContent.Urgency.HIGH) {
|
return new BlockContent(blockName, BLOCK_SOURCE, BlockContent.Urgency.HIGH) {
|
||||||
@Override
|
@Override
|
||||||
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
||||||
appendTextElement(document, root, "state", "waiting_confirm");
|
appendTextElement(document, root, "state", "waiting_confirm");
|
||||||
|
appendTextElement(document, root, "related_input", input);
|
||||||
appendTextElement(document, root, "tendency", executableAction.getTendency());
|
appendTextElement(document, root, "tendency", executableAction.getTendency());
|
||||||
appendTextElement(document, root, "description", executableAction.getDescription());
|
appendTextElement(document, root, "description", executableAction.getDescription());
|
||||||
appendTextElement(document, root, "action_type", evaluatorResult.getType());
|
appendTextElement(document, root, "action_type", evaluatorResult.getType());
|
||||||
@@ -264,10 +265,12 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private BlockContent buildPendingAbstractBlock(String blockName, ExecutableAction executableAction, EvaluatorResult evaluatorResult) {
|
private BlockContent buildPendingAbstractBlock(String blockName, ExecutableAction executableAction, EvaluatorResult evaluatorResult, String input) {
|
||||||
return new BlockContent(blockName, BLOCK_SOURCE, BlockContent.Urgency.HIGH) {
|
return new BlockContent(blockName, BLOCK_SOURCE, BlockContent.Urgency.HIGH) {
|
||||||
@Override
|
@Override
|
||||||
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
||||||
|
appendTextElement(document, root, "state", "waiting_confirm");
|
||||||
|
appendTextElement(document, root, "related_input", input);
|
||||||
appendTextElement(document, root, "pending_tendency", executableAction.getTendency());
|
appendTextElement(document, root, "pending_tendency", executableAction.getTendency());
|
||||||
appendTextElement(document, root, "summary", "exists pending action waiting for confirmation");
|
appendTextElement(document, root, "summary", "exists pending action waiting for confirmation");
|
||||||
appendTextElement(document, root, "action_type", evaluatorResult.getType());
|
appendTextElement(document, root, "action_type", evaluatorResult.getType());
|
||||||
@@ -336,6 +339,12 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
|
|||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String trimInput(@NotNull String input) {
|
||||||
|
input = input.trim();
|
||||||
|
input = input.length() <= 100 ? input : input.substring(0, 100);
|
||||||
|
return input;
|
||||||
|
}
|
||||||
|
|
||||||
private final class ActionAssemblyHelper {
|
private final class ActionAssemblyHelper {
|
||||||
private ActionAssemblyHelper() {
|
private ActionAssemblyHelper() {
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user