AI 工作流专栏
AI 工作流专栏
本专栏系统介绍 ZRAdmin 工作流模块中 AI 智能能力的设计、接口、前端入口与配置,覆盖设计 → 发起 → 审批 → 治理全流程。 基础流程概念请先读《名词术语表》《模块说明》《操作手册》;引擎实现细节见《引擎设计文档》。
一、能力总览
AI 助手由后端 ZR.Workflow 工程中的 WfAiService(业务) + WfAiController(路由 workflow/ai/*)承载,大模型推理通过 Infrastructure/Helper/AiLlmClient 统一封装(支持 AiOptions.Providers 多供应商兜底)。所有提示词(prompt)以 Markdown 文件形式存放在 ZR.Admin.WebApi/Prompts/,由 PromptLoader 从磁盘 AiOptions.PromptDir 读取(留空取程序基目录 Prompts/)。
| # | 能力 | 阶段 | 前端入口 | 是否落库 |
|---|---|---|---|---|
| 1 | 自然语言生成流程 | 设计 | 设计器「AI 生成」 | 否(仅返回草稿) |
| 2 | 审批智能建议 | 审批 | 待办详情「AI 建议」 | 否(可编辑后采纳) |
| 3 | 审批摘要 | 审批/记录 | 审批记录(自动)+ 实例「AI 摘要」卡片 | 是(WfFlowRecord.AiSummary) |
| 4 | 流程体检 | 治理 | 流程定义「AI 体检」 | 否 |
| 5 | 自然语言填单 | 发起 | 发起页「AI 帮我填」 | 否(回填表单后由用户提交) |
| 6 | AI 风险检查 | 审批 | 待办详情「AI 风险检查」 | 否(仅展示) |
💡 所有能力受
AiOptions.Enable总开关控制:Enable=false时,前端隐藏全部 AI 入口,且后端接口直接返回"AI 未启用",不影响任何现有流程功能。
二、各能力详解
2.1 自然语言生成流程(设计助手)

- 入口:流程设计器顶部「AI 生成」按钮 → 弹出
AiGenerateDialog.vue。 - 输入:一句自然语言业务描述,例如:
员工请假 3 天以内直属主管审批,超过 3 天加部门经理审批,最后人事备案。
- 输出:
WfAiExtendDto.AiGenerateResult- 完整的流程定义草稿(节点
nodes+ 连线links+ 审批人来源approverType+ 签类型signType+ 条件分支); - 自动推断所需表单字段
formItems(请假类型 / 天数 / 事由等),前端给出「采纳表单」勾选项。
- 完整的流程定义草稿(节点
- 采纳:
- 勾选「采纳流程定义」→ 覆盖进当前设计器(Simple / LogicFlow 皆可);
- 勾选「采纳表单」→ 合并推断字段进表单定义;
- 采纳后建议人工复核审批人(尤其指定用户/角色)是否准确。
- 模型参数:temperature = 0.2(低随机,保证结构稳定);超时 120s。
- 提示词:
Prompts/flow-generate.md。
AI 生成是"起点"不是"终点"。它擅长搭骨架,但关键审批人来源务必人工核对后再发布。
2.2 审批智能建议(审批助手)

- 入口:待办详情页「AI 建议」按钮(
workflow/ai/approval-suggest)。 - 输入:当前节点名 + 申请人填写的表单内容 + 流转路径;可选附一句"批示语"。
- 输出:AI 生成的审批参考意见(通过/驳回的措辞建议),审批人可一键采纳到审批意见框,再自行点「通过 / 驳回」。
- 重生成:
?regenerate=true忽略之前缓存的建议,用更完整上下文重新调用模型。 - 提示词:
Prompts/approval-suggest.md。
2.3 审批摘要(记录助手)

审批摘要分两层:
- 逐节点自动摘要(落库):每次审批动作(通过/驳回/转办…)时,引擎在流转事务后台自动调用摘要生成(temperature 0.3),把「动作 + 节点 + 意见 + 表单」压缩成一句话,写入一条
Action=0(系统生成)的WfFlowRecord的AiSummary字段,与人工审批记录并列展示。该路径无独立前端按钮,摘要随审批动作自动生成。 - 实例级连贯摘要(按需):实例详情页「AI 摘要」卡片按时间拼接各节点局部摘要;可点「重新生成摘要」调用
POST workflow/ai/instance-summary/{instanceId}?regenerate=true,以完整全量记录重新汇总(忽略已有局部摘要),一次性产出整条审批链路总结。
- 适用:大段表单(如报销明细)快速回看上下文,无需逐条翻记录。
- 提示词:
Prompts/approval-suggest.md(复用建议模板的摘要段落)。
2.4 流程体检(治理助手)

- 入口:流程定义详情「AI 体检」(
workflow/ai/flow-analyze)。 - 输出:对当前流程做合规性/合理性体检,常见检查点:
- 是否缺少结束节点、是否有孤立节点;
- 条件分支是否覆盖默认分支(避免死路);
- 审批人来源是否为空 / 是否会解析不到人;
- 并行汇聚是否配对。
- 结果列出问题点,帮助在发布前消灭"发布后才发现跑不通"的坑。
2.5 自然语言填单(发起助手)

- 入口:发起申请页「AI 帮我填」(
workflow/ai/match-fill)。 - 怎么用:把业务诉求(如"我要请 3 天病假,因为感冒")贴进去,AI 自动匹配最合适流程并抽取字段回填到对应表单控件(请假类型=病假、天数=3…),用户确认即可提交,省去逐项手填。
2.6 AI 风险检查(审批卫士)

- 入口:待办详情页「AI 风险检查」按钮(
workflow/ai/risk-check/{taskId})。 - 作用:基于当前节点 + 表单内容 + 流转路径,AI 研判本次审批是否存在风险点(如金额与历史偏差、字段缺失、越权、合规冲突等),输出 风险等级 + 风险说明 + 处置建议,辅助审批人谨慎拍板。
- 结果仅在审批端展示,不影响流程流转。
- 提示词:
Prompts/risk-check.md(与approval-suggest.md分离,便于分别调优)。
三、接口清单(workflow/ai)
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| POST | generate | definition:ai | 自然语言生成流程草稿(节点/连线/表单字段),仅返回不落库 |
| POST | approval-suggest | task:ai | 审批意见话术建议(不落库,可编辑);?regenerate=true 重生成 |
| POST | approval-summary | — | 审批动作后引擎后台自动调用,写入 WfFlowRecord.AiSummary(落痕),无独立前端入口 |
| POST | instance-summary/{instanceId} | instance:ai-summary | 汇总整条实例审批链路;?regenerate=true 全量重汇总 |
| POST | flow-analyze | definition:ai-analyze | 流程优化体检 |
| POST | match-fill | instance:ai-fill | 自然语言发起申请:匹配流程并预填表单 |
| POST | risk-check/{taskId} | task:ai-risk | 审批风险研判(仅展示) |
权限编码由
WorkflowSeedService.EnsureMenuSeedData()种子化为 F 类型按钮并默认授权所有角色;新增 AI 接口若需新权限,须在此补齐,否则前端入口因缺权限而不显示。
四、前端入口与实现
前端工程 ZRAdmin-Vue3(src/views/workflow/):
| 能力 | 文件 | 说明 |
|---|---|---|
| 流程生成 | flowDefinition/components/AiGenerateDialog.vue | 设计器顶部「AI 生成」弹窗 |
| 审批建议 | 待办详情 WfApprovalDialog 内「AI 建议」按钮 | 调用 aiApprovalSuggest |
| 风险检查 | 待办详情「AI 风险检查」按钮 | 调用 aiRiskCheck |
| 实例摘要 | 实例详情「AI 摘要」卡片 | 调用 aiInstanceSummary |
| 流程体检 | 流程定义详情「AI 体检」 | 调用 aiFlowAnalyze |
| 自然语言填单 | 发起页「AI 帮我填」 | 调用 aiMatchFill |
- 统一请求封装:
src/api/workflow/ai.js,各调用带timeout(生成 120s,其余 60s)。 - 统一的 AI loading/错误分发:
src/views/workflow/composables/ai/useAiRequest.js(错误提示由src/utils/request.js响应拦截器统一弹出,避免重复提示)。 - AI 入口显隐由
AiOptions.Enable驱动:前端读取全局配置后隐藏所有 AI 按钮。
五、配置(管理员)
ZR.Admin.WebApi/appsettings.json 的 AiOptions:
"AiOptions": {
"Enable": true, // false 则前端隐藏所有 AI 入口
"Endpoint": "https://...", // 大模型推理端点
"ApiKey": "xxx", // 服务商密钥(生产建议用环境变量覆盖,勿明文提交)
"Model": "gpt-4o-mini", // 模型名
"PromptDir": "", // AI 提示词目录;留空取程序基目录 Prompts/
"Providers": [ ... ] // 多供应商兜底配置
}
Enable=false:前端 AI 按钮自动隐藏,不影响任何现有流程功能。- 密钥建议通过环境变量 / UserSecrets 注入,不要明文提交到仓库。
- 提示词文件(
Prompts/*.md)可热更新:修改后无需重新编译,下次调用即生效;文件缺失时对应能力调用返回友好提示而非报错。
