Merge branch 'feature_20250930_work_flow' of https://github.com/MuSan-Li/ruoyi-ai into main

# Conflicts:
#	pom.xml
#	ruoyi-admin/pom.xml
#	ruoyi-modules/pom.xml
#	ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/DeepSeekChatImpl.java
This commit is contained in:
lihao05
2025-10-21 10:17:50 +08:00
116 changed files with 6839 additions and 25 deletions

View File

@@ -0,0 +1,162 @@
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
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT ='工作流定义(用户定义的工作流)| Workflow Definition';
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,
INDEX idx_workflow_node_workflow_id (workflow_id)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT ='工作流定义的节点 | Node of Workflow Definition';
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,
INDEX idx_workflow_edge_workflow_id (workflow_id)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;
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 COMMENT '执行状态1就绪2执行中3成功4失败',
status_remark VARCHAR(250) NOT NULL DEFAULT '' COMMENT '状态备注',
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,
INDEX idx_workflow_runtime_workflow_id (workflow_id),
INDEX idx_workflow_runtime_user_id (user_id)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT ='工作流实例(运行时)| Workflow Runtime';
CREATE TABLE t_workflow_runtime_node
(
id BIGINT AUTO_INCREMENT PRIMARY KEY,
uuid VARCHAR(32) NOT NULL DEFAULT '',
user_id BIGINT NOT NULL DEFAULT 0,
workflow_runtime_id BIGINT NOT NULL DEFAULT 0,
node_id BIGINT NOT NULL DEFAULT 0,
input JSON NOT NULL DEFAULT ('{}'),
output JSON NOT NULL DEFAULT ('{}'),
status SMALLINT NOT NULL DEFAULT 1 COMMENT '执行状态1进行中2失败3成功',
status_remark VARCHAR(250) NOT NULL DEFAULT '' COMMENT '状态备注',
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,
INDEX idx_runtime_node_runtime_id (workflow_runtime_id),
INDEX idx_runtime_node_node_id (node_id)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT ='工作流实例(运行时)- 节点 | Workflow Runtime Node';
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,
INDEX idx_display_order (display_order)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT '工作流组件库 | Workflow Component';
-- workflow
-- 如果不定义输入的变量名则默认设置为input
-- 如果不定义输出的变量名则默认设置为output
insert into t_workflow_component(uuid, name, title, remark, is_enable)
values (replace(uuid(), '-', ''), 'Start', '开始', '流程由此开始', true);
insert into t_workflow_component(uuid, name, title, remark, is_enable)
values (replace(uuid(), '-', ''), 'End', '结束', '流程由此结束', true);
insert into t_workflow_component(uuid, name, title, remark, is_enable)
values (replace(uuid(), '-', ''), 'Answer', '生成回答', '调用大语言模型回答问题', true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'Dalle3', 'DALL-E 3 画图', '调用Dall-e-3生成图片', 11, true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'DocumentExtractor', '文档提取', '从文档中提取信息', 4, true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'KeywordExtractor', '关键词提取',
'从内容中提取关键词Top N指定需要提取的关键词数量', 5, true);
insert into t_workflow_component(uuid, name, title, remark, is_enable)
values (replace(uuid(), '-', ''), 'KnowledgeRetrieval', '知识检索', '从知识库中检索信息,需选中知识库',
true);
insert into t_workflow_component(uuid, name, title, remark, is_enable)
values (replace(uuid(), '-', ''), 'Switcher', '条件分支', '根据设置的条件引导执行不同的流程', true);
insert into t_workflow_component(uuid, name, title, remark, is_enable)
values (replace(uuid(), '-', ''), 'Classifier', '内容归类',
'使用大语言模型对输入信息进行分析并归类,根据类别调用对应的下游节点', true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'Template', '模板转换',
'将多个变量合并成一个输出内容', 10, true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'Google', 'Google搜索', '从Google中检索信息', 13, true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'FaqExtractor', '常见问题提取',
'从内容中提取出常见问题及对应的答案Top N为提取的数量',
6, true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'Tongyiwanx', '通义万相-画图', '调用文生图模型生成图片', 12, true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'HumanFeedback', '人机交互',
'中断执行中的流程并等待用户的输入,用户输入后继续执行后续流程', 10, true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'MailSend', '邮件发送', '发送邮件到指定邮箱', 10, true);
insert into t_workflow_component(uuid, name, title, remark, display_order, is_enable)
values (replace(uuid(), '-', ''), 'HttpRequest', 'Http请求',
'通过Http协议发送请求可将其他组件的输出作为参数也可设置常量作为参数。', 10, true);
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) VALUES (1976160997656043521, '流程管理', 0, 1, 'flow', '', null, 1, 0, 'M', '0', '0', null, 'ph:user-fill', null, null, '2025-10-09 13:41:12', 1, '2025-10-20 20:59:25', '');
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) VALUES (1976161221409579010, '工作流编排', 1976160997656043521, 0, 'workflow', 'workflow/index', null, 1, 0, 'C', '0', '0', null, 'ph:user-fill', null, null, '2025-10-09 13:42:05', 1, '2025-10-20 20:59:16', '');