diff --git a/README.md b/README.md
index 80b2be9e..b74d166e 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@
### 企业级AI助手平台
-*开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模型,提供先进的RAG技术和可视化流程编排能力*
+*开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模式、RAG技术和流程编排能力*
**[English](README_EN.md)** | **[📖 使用文档](https://doc.pandarobot.chat)** |
**[🚀 在线体验](https://web.pandarobot.chat)** | **[🐛 问题反馈](https://github.com/ageerle/ruoyi-ai/issues)** | **[💡 功能建议](https://github.com/ageerle/ruoyi-ai/issues)**
@@ -27,17 +27,15 @@
-
-
## ✨ 核心亮点
-| 模块 | 现有能力 | 扩展方向 |
-|:----------:|---|------------------------|
-| **模型管理** | 多模型接入(OpenAI/DeepSeek/通义/智谱)、多模态理解、Coze/DIFY/FastGPT平台集成 | 自动模式、容错机制、计费管理 |
-| **知识管理** | 本地RAG + 向量库(Milvus/Weaviate) + 文档解析 | 多模态、知识出处、知识图谱、重排序 |
-| **工具管理** | Mcp协议集成、Skills能力 + 可扩展工具生态 | 工具插件市场、 |
-| **流程编排** | 可视化工作流设计器、节点拖拽编排、SSE流式执行,目前已经支持模型调用,邮件发送,人工审核等节点 | 更多节点类型 |
-| **多智能体** | 基于Langchain4j的Agent框架、Supervisor模式编排,支持多种决策模型 | 智能体可配置 |
+| 模块 | 现有能力
+|:----------:|---
+| **模型管理** | 多模型接入(OpenAI/DeepSeek/通义/智谱)、多模态理解、Coze/DIFY/FastGPT平台集成
+| **知识管理** | 本地RAG + 向量库(Milvus/Weaviate) + 文档解析
+| **工具管理** | Mcp协议集成、Skills能力 + 可扩展工具生态
+| **流程编排** | 可视化工作流设计器、节点拖拽编排、SSE流式执行,目前已经支持模型调用,邮件发送,人工审核等节点
+| **多智能体** | 基于Langchain4j的Agent框架、Supervisor模式编排,支持多种决策模型
## 🚀 快速体验
@@ -246,30 +244,6 @@ docker-compose -f docker-compose-all.yaml restart [服务名]
---
-
-
-## 📺 视频教程
-
-
-
-
-
-
-
-打开抖音扫一扫
-获取免费视频教程
- |
-
-
-打开B站扫一扫
-获取免费视频教程
- |
-
-
-
-
-
-
**[⭐ 点个Star支持一下](https://github.com/ageerle/ruoyi-ai)** • **[ Fork 开始贡献](https://github.com/ageerle/ruoyi-ai/fork)** • **[📚 English](README_EN.md)** • **[📖 查看完整文档](https://doc.pandarobot.chat)**
diff --git a/Dockerfile.backend b/docs/docker/ruoyi-ai/Dockerfile.backend
similarity index 100%
rename from Dockerfile.backend
rename to docs/docker/ruoyi-ai/Dockerfile.backend
diff --git a/Dockerfile.mysql b/docs/docker/ruoyi-ai/Dockerfile.mysql
similarity index 100%
rename from Dockerfile.mysql
rename to docs/docker/ruoyi-ai/Dockerfile.mysql
diff --git a/docker-compose-all.yaml b/docs/docker/ruoyi-ai/docker-compose-all.yaml
similarity index 100%
rename from docker-compose-all.yaml
rename to docs/docker/ruoyi-ai/docker-compose-all.yaml
diff --git a/docker-compose.yaml b/docs/docker/ruoyi-ai/docker-compose.yaml
similarity index 100%
rename from docker-compose.yaml
rename to docs/docker/ruoyi-ai/docker-compose.yaml
diff --git a/ruoyi-modules/ruoyi-aiflow/流程编排模块说明.md b/ruoyi-modules/ruoyi-aiflow/流程编排模块说明.md
new file mode 100644
index 00000000..d65a33ba
--- /dev/null
+++ b/ruoyi-modules/ruoyi-aiflow/流程编排模块说明.md
@@ -0,0 +1,425 @@
+# Ruoyi-AI 流程编排模块详细说明文档
+
+## 概述
+
+Ruoyi-AI 工作流模块是一个基于 LangGraph4j 的智能工作流引擎,支持可视化工作流设计、AI 模型集成、条件分支、人机交互等高级功能。该模块采用微服务架构,提供完整的
+RESTful API 和流式响应支持。
+
+## 模块架构
+
+### 1. 核心依赖
+
+- **LangGraph4j**: 1.5.3 - 工作流图执行引擎
+- **LangChain4j**: 1.11.0 - AI 模型集成框架
+- **Spring Boot**: 3.5.8 - 应用框架
+- **MyBatis Plus**: 数据访问层
+- **Redis**: 缓存和状态管理
+- **OpenAPI**: API 文档
+
+## 核心功能
+
+### 1. 工作流管理
+
+#### 1.1 工作流定义
+
+- **创建工作流**: 支持自定义标题、描述、公开性设置
+- **编辑工作流**: 可视化节点编辑、连接线配置
+- **版本控制**: 支持工作流的版本管理和回滚
+- **权限管理**: 支持公开/私有工作流设置
+
+#### 1.2 工作流执行
+
+- **流式执行**: 基于 SSE 的实时流式响应
+- **状态管理**: 完整的执行状态跟踪
+- **错误处理**: 详细的错误信息和异常处理
+- **中断恢复**: 支持工作流中断和恢复执行
+
+### 2. 节点类型
+
+#### 2.1 基础节点
+
+- **Start**: 开始节点,定义工作流入口
+- **End**: 结束节点,定义工作流出口
+
+
+#### 2.2 AI 模型节点
+
+- **Answer**: 大语言模型问答节点
+- **Dalle3**: DALL-E 3 图像生成
+- **Tongyiwanx**: 通义万相图像生成
+- **Classifier**: 内容分类节点
+
+#### 2.3 数据处理节点
+
+- **DocumentExtractor**: 文档信息提取
+- **KeywordExtractor**: 关键词提取
+- **FaqExtractor**: 常见问题提取
+- **KnowledgeRetrieval**: 知识库检索
+
+#### 2.4 控制流节点
+
+- **Switcher**: 条件分支节点
+- **HumanFeedback**: 人机交互节点
+
+#### 2.5 外部集成节点
+
+- **Google**: Google 搜索集成
+- **MailSend**: 邮件发送
+- **HttpRequest**: HTTP 请求
+- **Template**: 模板转换
+
+### 3. 数据流管理
+
+#### 3.1 输入输出定义
+
+```java
+// 节点输入输出数据结构
+public class NodeIOData {
+ private String name; // 参数名称
+ private NodeIODataContent content; // 参数内容
+}
+
+// 支持的数据类型
+public enum WfIODataTypeEnum {
+ TEXT, // 文本
+ NUMBER, // 数字
+ BOOLEAN, // 布尔值
+ FILES, // 文件
+ OPTIONS // 选项
+}
+```
+
+#### 3.2 参数引用
+
+- **节点间引用**: 支持上游节点输出作为下游节点输入
+- **参数映射**: 自动处理参数名称映射
+- **类型转换**: 自动进行数据类型转换
+
+## 数据库设计
+
+### 1. 核心表结构
+
+#### 1.1 工作流定义表 (t_workflow)
+
+```sql
+CREATE TABLE t_workflow (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ uuid VARCHAR(32) NOT NULL DEFAULT '',
+ title VARCHAR(100) NOT NULL DEFAULT '',
+ remark TEXT NOT NULL DEFAULT '',
+ user_id BIGINT NOT NULL DEFAULT 0,
+ is_public TINYINT(1) NOT NULL DEFAULT 0,
+ is_enable TINYINT(1) NOT NULL DEFAULT 1,
+ create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ is_deleted TINYINT(1) NOT NULL DEFAULT 0
+);
+```
+
+#### 1.2 工作流节点表 (t_workflow_node)
+
+```sql
+CREATE TABLE t_workflow_node (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ uuid VARCHAR(32) NOT NULL DEFAULT '',
+ workflow_id BIGINT NOT NULL DEFAULT 0,
+ workflow_component_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ title VARCHAR(100) NOT NULL DEFAULT '',
+ remark VARCHAR(500) NOT NULL DEFAULT '',
+ input_config JSON NOT NULL DEFAULT ('{}'),
+ node_config JSON NOT NULL DEFAULT ('{}'),
+ position_x DOUBLE NOT NULL DEFAULT 0,
+ position_y DOUBLE NOT NULL DEFAULT 0,
+ create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ is_deleted TINYINT(1) NOT NULL DEFAULT 0
+);
+```
+
+#### 1.3 工作流边表 (t_workflow_edge)
+
+```sql
+CREATE TABLE t_workflow_edge (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ uuid VARCHAR(32) NOT NULL DEFAULT '',
+ workflow_id BIGINT NOT NULL DEFAULT 0,
+ source_node_uuid VARCHAR(32) NOT NULL DEFAULT '',
+ source_handle VARCHAR(32) NOT NULL DEFAULT '',
+ target_node_uuid VARCHAR(32) NOT NULL DEFAULT '',
+ create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ is_deleted TINYINT(1) NOT NULL DEFAULT 0
+);
+```
+
+#### 1.4 工作流运行时表 (t_workflow_runtime)
+
+```sql
+CREATE TABLE t_workflow_runtime (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ uuid VARCHAR(32) NOT NULL DEFAULT '',
+ user_id BIGINT NOT NULL DEFAULT 0,
+ workflow_id BIGINT NOT NULL DEFAULT 0,
+ input JSON NOT NULL DEFAULT ('{}'),
+ output JSON NOT NULL DEFAULT ('{}'),
+ status SMALLINT NOT NULL DEFAULT 1,
+ status_remark VARCHAR(250) NOT NULL DEFAULT '',
+ create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ is_deleted TINYINT(1) NOT NULL DEFAULT 0
+);
+```
+
+#### 1.5 工作流组件表 (t_workflow_component)
+
+```sql
+CREATE TABLE t_workflow_component (
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
+ uuid VARCHAR(32) DEFAULT '' NOT NULL,
+ name VARCHAR(32) DEFAULT '' NOT NULL,
+ title VARCHAR(100) DEFAULT '' NOT NULL,
+ remark TEXT NOT NULL,
+ display_order INT DEFAULT 0 NOT NULL,
+ is_enable TINYINT(1) DEFAULT 0 NOT NULL,
+ create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ update_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ is_deleted TINYINT(1) DEFAULT 0 NOT NULL
+);
+```
+
+## API 接口
+
+### 1. 工作流管理接口
+
+#### 1.1 基础操作
+
+```http
+# 创建工作流
+POST /workflow/add
+Content-Type: application/json
+{
+ "title": "工作流标题",
+ "remark": "工作流描述",
+ "isPublic": false
+}
+
+# 更新工作流
+POST /workflow/update
+Content-Type: application/json
+{
+ "uuid": "工作流UUID",
+ "title": "新标题",
+ "remark": "新描述"
+}
+
+# 删除工作流
+POST /workflow/del/{uuid}
+
+# 启用/禁用工作流
+POST /workflow/enable/{uuid}?enable=true
+```
+
+#### 1.2 搜索和查询
+
+```http
+# 搜索我的工作流
+GET /workflow/mine/search?keyword=关键词&isPublic=true¤tPage=1&pageSize=10
+
+# 搜索公开工作流
+GET /workflow/public/search?keyword=关键词¤tPage=1&pageSize=10
+
+# 获取工作流组件列表
+GET /workflow/public/component/list
+```
+
+### 2. 工作流执行接口
+
+#### 2.1 流式执行
+
+```http
+# 流式执行工作流
+POST /workflow/run
+Content-Type: application/json
+Accept: text/event-stream
+{
+ "uuid": "工作流UUID",
+ "inputs": [
+ {
+ "name": "input",
+ "content": {
+ "type": 1,
+ "textContent": "用户输入内容"
+ }
+ }
+ ]
+}
+```
+
+#### 2.2 运行时管理
+
+```http
+# 恢复中断的工作流
+POST /workflow/runtime/resume/{runtimeUuid}
+Content-Type: application/json
+{
+ "feedbackContent": "用户反馈内容"
+}
+
+# 查询工作流执行历史
+GET /workflow/runtime/page?wfUuid=工作流UUID¤tPage=1&pageSize=10
+
+# 查询运行时节点详情
+GET /workflow/runtime/nodes/{runtimeUuid}
+
+# 清理运行时数据
+POST /workflow/runtime/clear?wfUuid=工作流UUID
+```
+
+### 3. 管理端接口
+
+#### 3.1 工作流管理
+
+```http
+# 搜索所有工作流
+POST /admin/workflow/search
+Content-Type: application/json
+{
+ "title": "搜索关键词",
+ "isPublic": true,
+ "isEnable": true
+}
+
+# 启用/禁用工作流
+POST /admin/workflow/enable?uuid=工作流UUID&isEnable=true
+```
+
+## 核心实现
+
+### 1. 工作流引擎 (WorkflowEngine)
+
+工作流引擎是整个模块的核心,负责:
+
+- 工作流图的构建和编译
+- 节点执行调度
+- 状态管理和持久化
+- 流式输出处理
+
+```java
+public class WorkflowEngine {
+ // 核心执行方法
+ public void run(User user, List userInputs, SseEmitter sseEmitter) {
+ // 1. 验证工作流状态
+ // 2. 创建运行时实例
+ // 3. 构建状态图
+ // 4. 执行工作流
+ // 5. 处理流式输出
+ }
+
+ // 恢复执行方法
+ public void resume(String userInput) {
+ // 1. 更新状态
+ // 2. 继续执行
+ }
+}
+```
+
+### 2. 节点工厂 (WfNodeFactory)
+
+节点工厂负责根据组件类型创建对应的节点实例:
+
+```java
+public class WfNodeFactory {
+ public static AbstractWfNode create(WorkflowComponent component,
+ WorkflowNode node,
+ WfState wfState,
+ WfNodeState nodeState) {
+ // 根据组件类型创建对应的节点实例
+ switch (component.getName()) {
+ case "Answer":
+ return new LLMAnswerNode(component, node, wfState, nodeState);
+ case "Switcher":
+ return new SwitcherNode(component, node, wfState, nodeState);
+ // ... 其他节点类型
+ }
+ }
+}
+```
+
+### 3. 图构建器 (WorkflowGraphBuilder)
+
+图构建器负责将工作流定义转换为可执行的状态图:
+
+```java
+public class WorkflowGraphBuilder {
+ public StateGraph build(WorkflowNode startNode) {
+ // 1. 构建编译节点树
+ // 2. 转换为状态图
+ // 3. 添加节点和边
+ // 4. 处理条件分支
+ // 5. 处理并行执行
+ }
+}
+```
+
+## 流式响应机制
+
+### 1. SSE 事件类型
+
+工作流执行过程中会发送多种类型的 SSE 事件:
+
+```javascript
+// 节点开始执行
+[NODE_RUN_节点UUID] - 节点执行开始事件
+
+// 节点输入数据
+[NODE_INPUT_节点UUID] - 节点输入数据事件
+
+// 节点输出数据
+[NODE_OUTPUT_节点UUID] - 节点输出数据事件
+
+// 流式内容块
+[NODE_CHUNK_节点UUID] - 流式内容块事件
+
+// 等待用户输入
+[NODE_WAIT_FEEDBACK_BY_节点UUID] - 等待用户输入事件
+```
+
+### 2. 流式处理流程
+
+1. **初始化**: 创建工作流运行时实例
+2. **节点执行**: 逐个执行工作流节点
+3. **实时输出**: 通过 SSE 实时推送执行结果
+4. **状态更新**: 实时更新节点和工作流状态
+5. **错误处理**: 捕获并处理执行过程中的错误
+
+## 扩展开发
+
+### 1. 自定义节点开发
+
+要开发自定义工作流节点,需要:
+
+1. **创建节点类**:继承 `AbstractWfNode`
+2. **实现处理逻辑**:重写 `onProcess()` 方法
+3. **定义配置类**:创建节点配置类
+4. **注册组件**:在组件表中注册新组件
+
+```java
+public class CustomNode extends AbstractWfNode {
+ @Override
+ protected NodeProcessResult onProcess() {
+ // 实现自定义处理逻辑
+ List outputs = new ArrayList<>();
+ // ... 处理逻辑
+ return NodeProcessResult.success(outputs);
+ }
+}
+```
+
+### 2. 自定义组件注册
+
+```sql
+-- 在 t_workflow_component 表中添加新组件
+INSERT INTO t_workflow_component (uuid, name, title, remark, is_enable)
+VALUES (REPLACE(UUID(), '-', ''), 'CustomNode', '自定义节点', '自定义节点描述', true);
+```