
## 已实现的节点类型

### 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 中添加了新节点类型到允许列表

## 使用方式

1. 在节点工具箱中找到新节点（Switch、Merge、等待、JSON处理、文本处理、缓存）

2. 拖拽到画布创建节点

3. 点击节点配置参数（在右侧属性面板）

4. 连接节点并执行工作流

所有节点已实现并通过 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 中添加了新节点类型到允许列表

## 使用说明

1. 向量数据库节点：用于 RAG 应用和语义搜索

- 先使用 upsert 存储向量

- 使用 search 进行相似度搜索

1. 日志节点：用于调试和监控

- 设置日志级别和消息模板

- 可选择是否包含数据

1. 错误处理节点：用于错误捕获和处理

- 配置重试次数和延迟

- 选择错误处理模式

1. CSV处理节点：用于数据处理

- parse：将 CSV 文本解析为数组

- generate：将数据生成为 CSV 文本

1. 对象存储节点：用于文件存储

- 当前为接口框架，实际使用需要：

- 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，可继续迭代。