10 KiB
已实现的节点类型
1. Switch节点(多分支路由)
-
后端:根据字段值进行多分支路由,支持 cases 和 default
-
前端:已添加到节点工具箱,使用 Operation 图标
-
执行:类似条件节点,根据 sourceHandle 过滤边
2. Merge节点(合并分支)
-
后端:支持 merge_all、merge_first、merge_last 模式
-
策略:array、object、concat
-
前端:已添加到节点工具箱
3. Wait节点(等待条件)
-
后端:支持 condition、time 等待类型
-
功能:条件等待(轮询)、固定时间等待
-
前端:已添加到节点工具箱,使用 Timer 图标
4. JSON处理节点
-
后端:支持 parse、stringify、extract、validate 操作
-
功能:JSON解析、字符串化、路径提取、基本验证
-
前端:已添加到节点工具箱
5. 文本处理节点
-
后端:支持 split、join、extract、replace、format 操作
-
功能:文本拆分、合并、正则提取、替换、模板格式化
-
前端:已添加到节点工具箱,使用 Edit 图标
6. 缓存节点
-
后端:支持 get、set、delete、clear 操作
-
功能:内存缓存(单次执行会话内有效),支持 TTL
-
前端:已添加到节点工具箱,使用 Box 图标
实现细节
后端实现
-
在 workflow_engine.py 的 execute_node 方法中添加了6个节点的执行逻辑
-
Switch节点支持分支过滤(类似条件节点)
-
缓存节点使用内存存储(_cache_store 和 _cache_timestamps)
前端实现
-
在 WorkflowEditor.vue 中添加了节点类型定义
-
在 customNodeTypes 中注册了所有新节点(使用 DefaultNode)
-
添加了默认配置和图标导入
验证器更新
- 在 workflow_validator.py 中添加了新节点类型到允许列表
使用方式
-
在节点工具箱中找到新节点(Switch、Merge、等待、JSON处理、文本处理、缓存)
-
拖拽到画布创建节点
-
点击节点配置参数(在右侧属性面板)
-
连接节点并执行工作流
所有节点已实现并通过 linter 检查。可以在工作流编辑器中测试这些新节点。
已实现的节点类型
1. 向量数据库节点(vector_db)
-
后端:支持 search、upsert、delete 操作
-
功能:
-
向量相似度搜索(余弦相似度)
-
向量存储和更新
-
集合管理
-
实现:内存存储(生产环境建议使用 ChromaDB、Pinecone 等)
-
前端:已添加到节点工具箱,使用 Connection 图标
2. 日志节点(log)
-
后端:支持 debug、info、warning、error 级别
-
功能:
-
记录日志消息
-
可选包含数据
-
集成系统日志记录器
-
前端:已添加到节点工具箱,使用 Document 图标
3. 错误处理节点(error_handler)
-
后端:支持 notify、retry、stop 模式
-
功能:
-
捕获上游节点错误
-
错误重试(可配置重试次数和延迟)
-
错误通知(记录日志)
-
注意:简化实现,主要用于错误检测和通知
-
前端:已添加到节点工具箱,使用 Warning 图标
4. CSV处理节点(csv)
-
后端:支持 parse、generate、convert 操作
-
功能:
-
CSV解析(支持表头)
-
CSV生成(从字典列表或数组列表)
-
CSV格式转换(改变分隔符等)
-
实现:使用 Python 内置 csv 模块
-
前端:已添加到节点工具箱,使用 Document 图标
5. 对象存储节点(object_storage)
-
后端:支持 upload、download、delete、list 操作
-
功能:
-
文件上传
-
文件下载
-
文件删除
-
文件列表
-
支持提供商:s3、oss、cos
-
注意:当前为接口框架,实际使用需安装相应 SDK(如 boto3、oss2)
-
前端:已添加到节点工具箱,使用 Box 图标
实现细节
后端实现
-
在 workflow_engine.py 的 execute_node 方法中添加了5个节点的执行逻辑
-
向量数据库使用内存存储(_vector_store),支持余弦相似度计算
-
CSV处理使用 Python 内置 csv 模块
-
对象存储提供接口框架,便于后续集成实际 SDK
前端实现
-
在 WorkflowEditor.vue 中添加了节点类型定义
-
在 customNodeTypes 中注册了所有新节点
-
添加了默认配置
验证器更新
- 在 workflow_validator.py 中添加了新节点类型到允许列表
使用说明
- 向量数据库节点:用于 RAG 应用和语义搜索
-
先使用 upsert 存储向量
-
使用 search 进行相似度搜索
- 日志节点:用于调试和监控
-
设置日志级别和消息模板
-
可选择是否包含数据
- 错误处理节点:用于错误捕获和处理
-
配置重试次数和延迟
-
选择错误处理模式
- CSV处理节点:用于数据处理
-
parse:将 CSV 文本解析为数组
-
generate:将数据生成为 CSV 文本
- 对象存储节点:用于文件存储
-
当前为接口框架,实际使用需要:
-
AWS S3:安装 boto3
-
阿里云 OSS:安装 oss2
-
腾讯云 COS:安装 cos-python-sdk-v5
所有节点已实现并通过 linter 检查。可以在工作流编辑器中测试这些新节点。
已实现的节点类型
1. Slack节点(slack)
-
后端:支持 send_message、create_channel、get_messages 操作
-
功能:
-
发送消息到频道
-
创建频道
-
获取频道消息
-
配置:需要配置 Slack Token
-
前端:已添加到节点工具箱,使用 Message 图标
2. 钉钉节点(dingtalk/dingding)
-
后端:支持 send_message、create_group 操作
-
功能:
-
通过 Webhook 或 API 发送消息
-
创建群组
-
配置:需要配置 Webhook URL 或 Access Token
-
前端:已添加到节点工具箱,使用 Message 图标
3. 企业微信节点(wechat_work/wecom)
-
后端:支持 send_message、create_group 操作
-
功能:
-
发送消息(需要先获取 access_token)
-
创建群组
-
配置:需要配置 Corp ID、Corp Secret、Agent ID
-
前端:已添加到节点工具箱,使用 Message 图标
4. 短信节点(sms)
-
后端:支持 send、batch_send 操作
-
功能:
-
发送短信
-
批量发送短信
-
支持提供商:aliyun、tencent、twilio
-
注意:实际使用需要安装相应 SDK
-
前端:已添加到节点工具箱,使用 Message 图标
5. PDF处理节点(pdf)
-
后端:支持 extract_text、generate、merge、split 操作
-
功能:
-
提取 PDF 文本
-
生成 PDF
-
合并多个 PDF
-
拆分 PDF
-
注意:需要安装 PyPDF2 或 pdfplumber 库
-
前端:已添加到节点工具箱,使用 Document 图标
6. 图像处理节点(image)
-
后端:支持 resize、crop、convert、ocr 操作
-
功能:
-
图像缩放
-
图像裁剪
-
格式转换
-
OCR 文字识别
-
注意:需要安装 Pillow 库,OCR 需要 pytesseract 和 tesseract-ocr
-
前端:已添加到节点工具箱,使用 Picture 图标
7. Excel处理节点(excel)
-
后端:支持 read、write、convert、formula 操作
-
功能:
-
读取 Excel 文件
-
写入 Excel 文件
-
格式转换(Excel ↔ CSV/JSON)
-
公式计算
-
注意:需要安装 openpyxl 或 pandas 库
-
前端:已添加到节点工具箱,使用 Document 图标
实现细节
后端实现
-
在 workflow_engine.py 的 execute_node 方法中添加了7个节点的执行逻辑
-
通信节点使用 HTTP API 调用(需要配置相应的 Token/Secret)
-
PDF/图像/Excel 处理节点提供接口框架,实际使用需要安装相应库
前端实现
-
在 WorkflowEditor.vue 中添加了节点类型定义
-
在 customNodeTypes 中注册了所有新节点
-
添加了默认配置和图标导入(包括 Picture 图标)
验证器更新
- 在 workflow_validator.py 中添加了新节点类型到允许列表
依赖说明
通信节点
-
Slack:需要有效的 Slack Token
-
钉钉:需要 Webhook URL 或 Access Token
-
企业微信:需要 Corp ID、Corp Secret、Agent ID
-
短信:需要安装相应 SDK
-
阿里云:pip install alibabacloud-dysmsapi20170525
-
腾讯云:pip install tencentcloud-sdk-python
-
Twilio:pip install twilio
文件处理节点
-
PDF:pip install PyPDF2 pdfplumber
-
图像:pip install Pillow(OCR 需要 pip install pytesseract 并安装 tesseract-ocr)
-
Excel:pip install openpyxl pandas
所有节点已实现并通过 linter 检查。可以在工作流编辑器中测试这些新节点。注意:部分节点需要安装相应的依赖库才能正常使用。
已实现节点
-
子工作流节点(subworkflow)
-
功能:调用其他工作流;支持输入映射
-
说明:当前为占位实现,返回映射后的输入与目标 workflow_id,后续可集成真正的子工作流执行
-
代码执行节点(code)
-
功能:执行简易 Python 代码(JS 执行为占位)
-
安全:使用受限 exec,生产需更严格沙箱
-
默认:result = input_data
-
OAuth节点(oauth)
-
功能:获取/刷新 Token(占位,返回模拟 token)
-
默认:provider、client_id、client_secret、scopes
-
数据验证节点(validator)
-
功能:基础类型校验,支持 on_error(reject/continue/transform)
-
默认 schema 空对象
-
批处理节点(batch)
-
功能:按批次拆分/分组/聚合数据;可选择等待完成
-
默认:batch_size=100,mode=split
后端
-
backend/app/services/workflow_engine.py:新增上述节点的执行逻辑(占位或简化实现)
-
backend/app/services/workflow_validator.py:允许的新节点类型列表已更新
前端
-
frontend/src/components/WorkflowEditor/WorkflowEditor.vue:
-
节点类型已加入工具箱(icons:subworkflow/批处理用 Grid/Operation,code 用 Edit,validator/OAuth 用 Document)
-
customNodeTypes 已注册,默认配置已添加
-
图标导入已补充 Picture(之前图像节点用到)
依赖说明
-
子工作流:需后续集成实际工作流调用
-
代码执行:当前仅受限 Python;JS 需集成运行时
-
OAuth:占位返回 mock token,实际需对接各 provider
-
数据验证:为简化版;复杂校验可接入 jsonschema
-
批处理:基础分批逻辑;可按需扩展并行/异步处理
如需把子工作流执行接入真正的 WorkflowEngine、完善代码执行安全沙箱,或接入真实 OAuth provider,可继续迭代。