AI 工作流编辑器
概述
AI 工作流编辑器用于可视化编排 AI 应用的处理流程,支持 35+ 种节点类型,包括 LLM 调用、知识库检索、代码执行、数据库操作、表单/仪表盘自动化等。
组件结构
views/_core/ai-platform/workflow/
├── index.vue # 工作流列表页
├── editor/
│ ├── index.vue # 编辑器入口
│ ├── FlowEditor.vue # 主编辑器(画布 + 面板)
│ ├── BaseNode.vue # 节点基础组件
│ ├── nodes/ # 节点组件
│ │ ├── StartNode.vue
│ │ ├── EndNode.vue
│ │ ├── LLMNode.vue
│ │ ├── KnowledgeRetrievalNode.vue
│ │ ├── CodeNode.vue
│ │ ├── ConditionNode.vue
│ │ ├── ParallelNode.vue
│ │ ├── LoopNode.vue
│ │ ├── SubflowNode.vue
│ │ ├── HttpNode.vue
│ │ ├── DatabaseNode.vue
│ │ ├── TemplateNode.vue
│ │ ├── VariableNode.vue
│ │ ├── IntentNode.vue
│ │ ├── MergeNode.vue
│ │ ├── FormCreateNode.vue
│ │ ├── FormDataNode.vue
│ │ ├── DashboardCreateNode.vue
│ │ ├── TextToSqlNode.vue
│ │ ├── DialogNode.vue
│ │ └── ...
│ └── panels/ # 属性面板
│ ├── Panel.vue # 面板路由
│ ├── LLMPanel.vue
│ ├── KnowledgeRetrievalPanel.vue
│ ├── CodePanel.vue
│ ├── SubflowPanel.vue
│ └── ...节点分类
基础节点
| 节点 | 颜色 | 说明 |
|---|---|---|
start | 绿色 | 开始节点,定义输入变量 |
end | 灰色 | 结束节点,定义输出 |
llm | 蓝色 | LLM 调用(系统提示词 + 用户输入) |
template | 黄色 | Jinja2 模板渲染 |
variable | 紫色 | 变量赋值/转换 |
code | 橙色 | Python 代码执行 |
知识库
| 节点 | 颜色 | 说明 |
|---|---|---|
knowledge_retrieval | 青色 | 知识库检索(支持 Rerank) |
数据操作
| 节点 | 颜色 | 说明 |
|---|---|---|
http | 靛蓝 | HTTP 请求 |
database | 棕色 | 数据库查询/操作 |
text_to_sql | 棕色 | 自然语言转 SQL |
form_data | 粉色 | 表单数据 CRUD |
流程控制
| 节点 | 颜色 | 说明 |
|---|---|---|
condition | 黄色 | 条件分支 |
parallel | 蓝色 | 并行执行 |
merge | 蓝色 | 合并节点 |
loop | 绿色 | 循环节点 |
intent | 紫色 | 意图识别分支 |
subflow | 灰色 | 子流程调用 |
dialog | 橙色 | 对话交互(确认/输入/选择) |
业务自动化
| 节点 | 说明 |
|---|---|
form_create | 创建表单 |
form_basic_info | 设计表单基本信息 |
form_ui_design | 设计表单 UI |
form_database_design | 设计表单数据库 |
form_database_create | 创建数据库表 |
form_list_design | 设计表单列表 |
form_publish | 发布表单 |
dashboard_create | 创建仪表盘 |
dashboard_basic_info | 设计仪表盘基本信息 |
dashboard_design | 设计仪表盘布局 |
dashboard_publish | 发布仪表盘 |
app_create | 创建应用 |
app_design | 设计应用 |
app_settings | 应用设置 |
app_update | 更新应用 |
其他
| 节点 | 说明 |
|---|---|
system_summary | 系统摘要生成 |
snowflake_cortex | Snowflake Cortex 集成 |
编辑器功能
画布操作
- 拖拽节点到画布
- 连线:从节点输出端口拖拽到输入端口
- 缩放/平移/居中
- 框选/多选
- 快捷键支持
属性面板
选中节点后右侧显示属性面板:
LLM 节点 (LLMPanel):
- 选择模型
- 系统提示词(支持变量插入)
- 用户消息模板
- Temperature / Max Tokens
- RAG 提示:集成知识库检索节点
知识库检索节点 (KnowledgeRetrievalPanel):
- 选择知识库(多选)
- 查询变量
- Top K / Score Threshold
- Rerank 开关 + 模型选择
代码节点 (CodePanel):
- Python 代码编辑器(Monaco Editor)
- 输入变量定义
- 输出变量定义
子流程节点 (SubflowPanel):
- 选择已发布的工作流
- 变量传递模式:all / selected / none
- 结果传递模式:all / selected / none
- 循环依赖检测
- 最大嵌套深度:5层
- 内联展开视图(显示子流程节点执行状态)
变量系统
节点之间通过变量传递数据:
StartNode.input_text → LLMNode.user_message
LLMNode.output → ConditionNode.condition_value
KnowledgeRetrievalNode.knowledge_context → LLMNode.context运行调试
- 单步执行
- 查看每个节点的输入/输出
- 变量值实时预览
- 错误定位
AI 应用集成
AI 工作流可作为 AI 应用的执行逻辑:
AI 应用 (AIApp)
├── app_type: 'workflow'
├── 关联 AI 工作流
└── 对话时触发工作流执行
├── 用户消息 → Start 节点
├── 工作流执行各节点
└── End 节点输出 → 返回给用户与审批工作流的区别
| 特性 | AI 工作流 | 审批工作流 |
|---|---|---|
| 用途 | AI 应用编排 | 业务审批流程 |
| 执行方式 | 自动执行 | 人工审批 |
| 节点类型 | LLM/代码/数据库等 | 审批/办理/抄送等 |
| 数据结构 | DAG(有向无环图) | 树形单链表 |
| 设计器风格 | 节点连线式 | 钉钉/飞书式 |
| 存储位置 | ai_workflow 表 | workflow_definition 表 |