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