AI 工作流
AI 工作流用于把多个 AI 节点、内部节点和变量处理步骤编排成可测试、可复用的链路。当前后端接口位于 AiWorkflowController,数据保存在 ai_workflow,前端页面位于 apps/web-antd/src/views/ai/workflow,流程图 JSON 存储在 graph 字段中。
页面与接口
| 能力 | 前端文件 | 后端接口 |
|---|---|---|
| 工作流列表 | views/ai/workflow/index.vue | GET /ai/workflow/page |
| 新增/编辑 | views/ai/workflow/form/index.vue | POST /ai/workflow/create、PUT /ai/workflow/update |
| 删除 | 列表操作列 | DELETE /ai/workflow/delete?id= |
| 测试执行 | 表单设计区 | POST /ai/workflow/test |
数据模型
| 字段 | 说明 | 建议 |
|---|---|---|
name | 工作流名称 | 面向业务人员可读,例如“合同摘要生成” |
code | 工作流标识 | 保持唯一,推荐英文小写加短横线或下划线 |
graph | 工作流模型 JSON | 由设计器维护,不建议手工改库 |
remark | 备注 | 记录适用场景、输入输出和风险边界 |
status | 状态 | 未验证通过前不要启用到生产链路 |
执行链路
设计建议
- 先定义输入输出:在画流程前先写清楚入参、最终输出和失败兜底,避免节点堆叠后难以测试。
- 模型节点单独验证:
llmNode会根据节点数据中的llmId绑定模型,模型不可用会直接影响测试结果。 - 保留 graph 变更记录:生产工作流建议通过导出 JSON 或备注记录关键版本,方便回滚。
- 区分测试与启用:
/test可以传当前编辑中的graph,不必先保存覆盖线上版本;验证通过后再保存启用。
排查清单
| 现象 | 优先检查 |
|---|---|
| 保存时报流程标识重复 | code 已存在,修改为唯一标识 |
| 测试执行无结果 | graph 是否为空;输入 params 是否匹配节点变量 |
| LLM 节点报错 | 节点的 llmId 是否对应可用模型;API Key 与额度是否正常 |
| 线上输出与测试不一致 | 是否测试了未保存 graph;状态与实际调用的工作流 ID 是否一致 |
