mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +08:00
refactor(ActionExecutor): correct input actions' type in ActionExecutor
This commit is contained in:
@@ -16,8 +16,8 @@ import work.slhaf.partner.module.modules.action.dispatcher.executor.entity.Actio
|
||||
import work.slhaf.partner.module.modules.action.dispatcher.scheduler.ActionScheduler;
|
||||
import work.slhaf.partner.runtime.interaction.data.context.PartnerRunningFlowContext;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
@AgentModule(name = "action_dispatcher", order = 7)
|
||||
@@ -32,7 +32,6 @@ public class ActionDispatcher extends PostRunningModule {
|
||||
private ActionScheduler actionScheduler;
|
||||
|
||||
private ExecutorService executor;
|
||||
private final AssemblyHelper assemblyHelper = new AssemblyHelper();
|
||||
|
||||
@Init
|
||||
public void init() {
|
||||
@@ -49,8 +48,8 @@ public class ActionDispatcher extends PostRunningModule {
|
||||
String userId = context.getUserId();
|
||||
val preparedActions = actionCapability.listActions(ActionData.ActionStatus.PREPARE, userId);
|
||||
// 分类成PLANNING和IMMEDIATE两类
|
||||
List<ScheduledActionData> scheduledActions = new ArrayList<>();
|
||||
List<ImmediateActionData> immediateActions = new ArrayList<>();
|
||||
Set<ScheduledActionData> scheduledActions = new HashSet<>();
|
||||
Set<ImmediateActionData> immediateActions = new HashSet<>();
|
||||
for (ActionData preparedAction : preparedActions) {
|
||||
if (preparedAction instanceof ScheduledActionData actionInfo) {
|
||||
scheduledActions.add(actionInfo);
|
||||
@@ -58,7 +57,11 @@ public class ActionDispatcher extends PostRunningModule {
|
||||
immediateActions.add(actionInfo);
|
||||
}
|
||||
}
|
||||
actionExecutor.execute(assemblyHelper.buildExecutorInput(immediateActions, userId));
|
||||
val actionExecutorInput = ActionExecutorInput.builder()
|
||||
.userId(userId)
|
||||
.actions(immediateActions)
|
||||
.build();
|
||||
actionExecutor.execute(actionExecutorInput);
|
||||
actionScheduler.execute(scheduledActions);
|
||||
});
|
||||
}
|
||||
@@ -68,15 +71,4 @@ public class ActionDispatcher extends PostRunningModule {
|
||||
return false;
|
||||
}
|
||||
|
||||
@SuppressWarnings("InnerClassMayBeStatic")
|
||||
private class AssemblyHelper {
|
||||
|
||||
public ActionExecutorInput buildExecutorInput(List<ImmediateActionData> immediateActions, String userId) {
|
||||
ActionExecutorInput input = new ActionExecutorInput();
|
||||
input.setImmediateActions(immediateActions);
|
||||
input.setUserId(userId);
|
||||
return input;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,8 +9,11 @@ import work.slhaf.partner.api.agent.factory.module.annotation.InjectModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.core.action.ActionCapability;
|
||||
import work.slhaf.partner.core.action.ActionCore;
|
||||
import work.slhaf.partner.core.action.entity.*;
|
||||
import work.slhaf.partner.core.action.entity.ActionData;
|
||||
import work.slhaf.partner.core.action.entity.ActionData.ActionStatus;
|
||||
import work.slhaf.partner.core.action.entity.MetaAction;
|
||||
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
||||
import work.slhaf.partner.core.action.entity.PhaserRecord;
|
||||
import work.slhaf.partner.core.action.runner.RunnerClient;
|
||||
import work.slhaf.partner.core.cognation.CognationCapability;
|
||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||
@@ -63,10 +66,10 @@ public class ActionExecutor extends AgentRunningSubModule<ActionExecutorInput, V
|
||||
*/
|
||||
@Override
|
||||
public Void execute(ActionExecutorInput input) {
|
||||
val immediateActions = input.getImmediateActions();
|
||||
val immediateActions = input.getActions();
|
||||
val userId = input.getUserId();
|
||||
// 异步执行所有行动
|
||||
for (ImmediateActionData actionData : immediateActions) {
|
||||
for (ActionData actionData : immediateActions) {
|
||||
platformExecutor.execute(() -> {
|
||||
if (actionData.getStatus() != ActionData.ActionStatus.PREPARE) {
|
||||
return;
|
||||
@@ -298,7 +301,7 @@ public class ActionExecutor extends AgentRunningSubModule<ActionExecutorInput, V
|
||||
return input;
|
||||
}
|
||||
|
||||
private CorrectorInput buildCorrectorInput(ImmediateActionData actionData, String userId) {
|
||||
private CorrectorInput buildCorrectorInput(ActionData actionData, String userId) {
|
||||
return CorrectorInput.builder()
|
||||
.tendency(actionData.getTendency())
|
||||
.source(actionData.getSource())
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
package work.slhaf.partner.module.modules.action.dispatcher.executor.entity;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import work.slhaf.partner.core.action.entity.ImmediateActionData;
|
||||
import work.slhaf.partner.core.action.entity.ActionData;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class ActionExecutorInput {
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private String userId;
|
||||
/**
|
||||
* 即时行动数据列表
|
||||
* 将执行的行动数据列表
|
||||
*/
|
||||
private List<ImmediateActionData> immediateActions;
|
||||
private Set<? extends ActionData> actions;
|
||||
}
|
||||
|
||||
@@ -369,10 +369,10 @@ class ActionExecutorTest {
|
||||
}
|
||||
|
||||
private ActionExecutorInput buildInput(String userId, ImmediateActionData actionData) {
|
||||
ActionExecutorInput input = new ActionExecutorInput();
|
||||
input.setUserId(userId);
|
||||
input.setImmediateActions(List.of(actionData));
|
||||
return input;
|
||||
return ActionExecutorInput.builder()
|
||||
.userId(userId)
|
||||
.actions(Set.of(actionData))
|
||||
.build();
|
||||
}
|
||||
|
||||
private ImmediateActionData buildActionData(Map<Integer, List<MetaAction>> actionChain) {
|
||||
|
||||
Reference in New Issue
Block a user