package com.xly.agent; import java.util.ArrayList; import java.util.List; /** * 第 0 阶段「意图 + 实体」抽取结果(架构 §5 的 intent gate)。 * *
由 {@code IntentService} 用受约束 JSON 一次得出:把一句自然语言压成
* {意图, 单据/实体类型, 带业务角色的实体清单, 还缺什么}。下游据此做**确定性路由**:
* 新增→确定性表单、操作已有单据→写槽位抽取+确定性 proposeWrite、查询/其他→ReAct agent。
* 具体写动作(update/invalid/examine…)由路由层从原话推出,不在门里细分。
*/
public class Intent {
/** 操作意图(4 类)。 */
public static final String QUERY = "查询";
public static final String CREATE = "新增";
public static final String OPERATE = "操作已有单据";
public static final String OTHER = "其他";
public static class Entity {
public String value;
public String role; // 客户/产品/物料/供应商/数量/尺寸/日期/金额/其他/未知
public Entity() {}
public Entity(String value, String role) { this.value = value; this.role = role; }
}
/** 写操作(修改/删除/审核)的专用槽位:比通用 entities 更贴合 propose* 工具的入参。 */
public static class WriteSlots {
public String entityType = ""; // 记录所属实体:客户/供应商/物料/产品/单据…
public String record = ""; // 要操作的记录名(公司名/物料名/单号)
public String field = ""; // 要修改的字段中文名(删除/审核留空)
public String newValue = ""; // 修改后的新值(删除/审核留空)
}
public String intent = OTHER;
public boolean failed = false; // true = 意图门本身失败(模型不可达/解析异常),非真实「其他」
public String danju = ""; // 单据/实体类型,如 报价/客户/物料/销售订单
public List