ソースを参照

新增 PlanContext 类

alibct 2 ヶ月 前
コミット
6744cfad5f

+ 63 - 0
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/core/agent/planner/PlanContext.java

@@ -0,0 +1,63 @@
+package com.pavis.admin.aigc.core.agent.planner;
+
+import com.pavis.admin.aigc.model.resp.AgentPlanResp;
+import lombok.Data;
+
+/**
+ * 规划上下文类
+ * 用于在计划的创建、执行和总结过程中传递和维护状态信息
+ * 该类作为计划执行流程中的核心数据载体,在的各个阶段之间传递
+ * 主要职责:
+ * - 存储计划ID和计划实体信息
+ * - 保存用户原始请求
+ * - 维护计划执行状态
+ * - 存储执行结果摘要
+ * - 控制是否需要生成执行总结
+ */
+@Data
+public class PlanContext {
+
+    /**
+     * 计划的唯一标识符
+     */
+    private Long planId;
+
+    /**
+     * 执行计划实体,包含计划的详细信息和执行步骤
+     */
+    private AgentPlanResp plan;
+
+    /**
+     * 用户的消息内容
+     */
+    private String userMessage;
+
+    /**
+     * 计划执行完成后的结果摘要
+     */
+    private String resultSummary;
+
+    /**
+     * 是否需要为执行结果调用大模型生成摘要,true是调用大模型,false是不调用直接输出结果
+     */
+    private boolean needSummary;
+
+    /**
+     * 计划执行是否成功的标志
+     */
+    private boolean success = false;
+
+    /**
+     * 使用另一个ExecutionContext实例的内容更新当前实例
+     * <p>
+     * 此方法会复制传入context的计划实体、用户请求和结果摘要到当前实例
+     *
+     * @param context 源执行上下文实例
+     */
+    public void updateContext(PlanContext context) {
+        this.plan = context.getPlan();
+        this.userMessage = context.getUserMessage();
+        this.resultSummary = context.getResultSummary();
+    }
+
+}