Files
yunhai-agent-service/src/main/java/com/yunhai/agent/tool/FormRequest.java
T
lijing 8303b857e9
build / build-push (push) Successful in 40s
feat: 提交校园智能助手后端工程源码(Spring Boot 2.7.18 + 平台 starter + JPA + Nacos)
- com.yunhai.agent,端口 8093,context-path /agent,制品 target/agent.jar;与 NoticeService 同构
- CAS 单点登录 + 三层角色权限(学生/教师/管理员/访客)+ 会话与工具调用审计落库
- DeepSeek 大模型编排 + 7 个业务模块工具(请假/公告/宿舍/活动/作业/资源库/教师发展)
- 浏览器代执行协议(服务端挂起 → 前端用登录态代调 → toolResult 续跑)+ 调用失败深链兜底
- 登出修复:服务端真正 session.invalidate() + 前端两步登出 + logout-guard
- 保留 projman 注入的 .gitea/workflows/build.yml 与 docker/Dockerfile;docker/application-prod.yml、run-app.sh 随工程入库
2026-10-12 11:18:29 +08:00

55 lines
2.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.yunhai.agent.tool;
import lombok.Data;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* 「信息不全」时下发给前端的补全表单。
*
* <p>设计意图:用户说「我要请假」时,与其让大模型自由发挥去追问(格式、必填项都不稳定),
* 不如由后端从工具定义里**确定性地**推导出还缺哪些字段,连同中文名、格式示例、下拉选项
* 一起交给前端渲染成表单 —— 用户填完即提交,链路最短、最准确。
*/
@Data
public class FormRequest {
/** 目标工具名,如 leave.submit */
private String tool;
/** 表单标题,如「提交请假申请」 */
private String title;
/** 引导语,如「这些信息填好我就直接帮你提交」 */
private String description;
private String module;
/** 是否写操作(前端据此做「提交」的视觉强调与二次确认) */
private boolean write;
/** 提交成功后建议跳转的路由 */
private String landingPath;
/** 待补全的字段(只含缺失的必填项;已由用户说出的参数放在 preset 里回显) */
private List<FormField> fields = new ArrayList<>();
/** 已经从对话里确定的参数(表单里以只读方式回显,用户可确认后提交;提交时原样带上) */
private Map<String, Object> preset = new LinkedHashMap<>();
/**
* 上述 preset 的「可读版」:[{name,label,text}],其中 text 已按字典翻译成中文
* (如 leaveType=1 → 病假)。前端直接展示,不用自己维护中文映射。
*/
private List<Map<String, String>> recognized = new ArrayList<>();
/** 缺失字段的中文名,用于生成「还差:开始时间、事由」这类话术 */
private List<String> missing = new ArrayList<>();
/** 补充提示(可选),如「时间格式为 2026-10-11 08:00:00」 */
private String hint;
}