zhangjinyang
2025-04-09 4f4e5d74b8b254028803bf295bcd96328a15d72c
init
3个文件已修改
2个文件已添加
793 ■■■■■ 已修改文件
aiflowy-starter/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
aiflowy-ui-react/src/pages/system/ModelConfig.tsx 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aiflowy-ui-react/src/pages/system/VectorStoreConfig.tsx 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/aiflowy.data.init.sql 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/aiflowy.ddl.sql 504 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aiflowy-starter/src/main/resources/application.yml
@@ -5,7 +5,7 @@
  profiles:
    active: dev
  datasource:
    url: jdbc:mysql://192.168.2.6:3306/aiflowy?useInformationSchema=true&characterEncoding=utf-8
    url: jdbc:mysql://192.168.2.6:3306/test?useInformationSchema=true&characterEncoding=utf-8
    username: root
    password: 123456
  servlet:
aiflowy-ui-react/src/pages/system/ModelConfig.tsx
New file
@@ -0,0 +1,138 @@
import React from 'react';
import {Alert, Form, Input, Select} from "antd";
import FormTitle from "../../components/FormTitle";
import OptionsPage from "../../components/OptionsPage";
const ModelConfig: React.FC = () => {
    return (
        <OptionsPage>
            <FormTitle style={{marginTop: "0"}}>大模型配置</FormTitle>
            <Form.Item label="对话模型" name="model_of_chat">
                <Select>
                    <Select.Option value="chatglm">智普 AI (ChatGLM) </Select.Option>
                    <Select.Option value="spark">星火大模型</Select.Option>
                    <Select.Option value="yiyan">文心一言</Select.Option>
                    <Select.Option value="tongyi">通义大模型</Select.Option>
                    <Select.Option value="chatgpt">ChatGPT</Select.Option>
                    <Select.Option value="ollama">Ollama</Select.Option>
                </Select>
            </Form.Item>
            <Form.Item label="Function Calling 模型" name="model_of_funcation_calling">
                <Select>
                    <Select.Option value="chatgpt">ChatGPT</Select.Option>
                    <Select.Option value="chatglm">智普 AI (ChatGLM) </Select.Option>
                    <Select.Option value="spark">星火大模型</Select.Option>
                </Select>
            </Form.Item>
            <Form.Item label="Embedding 模型" name="model_of_embedding">
                <Select>
                    <Select.Option value="chatgpt">ChatGPT</Select.Option>
                    <Select.Option value="chatglm">智普 AI (ChatGLM) </Select.Option>
                    <Select.Option value="spark">星火大模型</Select.Option>
                    <Select.Option value="ollama">Ollama</Select.Option>
                </Select>
            </Form.Item>
            <Form.Item label="AI 编辑器使用模型" name="model_of_aieditor">
                <Select>
                    <Select.Option value="chatgpt">ChatGPT</Select.Option>
                    <Select.Option value="chatglm">智普 AI (ChatGLM) </Select.Option>
                    <Select.Option value="spark">星火大模型</Select.Option>
                </Select>
            </Form.Item>
            <FormTitle>ChatGPT 配置</FormTitle>
            <Form.Item wrapperCol={{span: 12, offset: 4}}>
                <Alert
                    message="注意:有很多大模型(比如:暗月之面等)都是兼容 ChatGPT 的,因此可以在这里进行配置。"
                    type="info"/>
            </Form.Item>
            <Form.Item label="Endpoint" name="chatgpt_endpoint">
                <Input placeholder="请输入 ChatGPT 的服务域名"/>
            </Form.Item>
            <Form.Item label="ApiKey" name="chatgpt_api_key">
                <Input placeholder="请输入 ChatGPT 的 Api Key"/>
            </Form.Item>
            <Form.Item label="模型名称" name="chatgpt_model_name">
                <Input placeholder="请输入 ChatGPT 的 模型名称"/>
            </Form.Item>
            <FormTitle>Ollama 配置</FormTitle>
            <Form.Item label="Endpoint" name="ollama_endpoint">
                <Input placeholder="请输入 Ollama 的服务域名"/>
            </Form.Item>
            <Form.Item label="模型名称" name="ollama_model_name">
                <Input placeholder="请输入 Ollama 的 模型名称"/>
            </Form.Item>
            <FormTitle>智普 AI 配置</FormTitle>
            <Form.Item wrapperCol={{span: 12, offset: 4}}>
                <Alert
                    message="注意:智普的 API Key 同时包含 “用户标识 id” 和 “签名密钥 secret”,即格式为 {id}.{secret}"
                    type="info"/>
            </Form.Item>
            <Form.Item label="ApiKey" name="chatglm_api_key" extra={<>智普 AI 的 Api Key 请去
                <a href='https://open.bigmodel.cn/usercenter/apikeys'
                   target='_blank'>https://open.bigmodel.cn/usercenter/apikeys</a> 获取,同时保证其账户还有可用余额。</>}>
                <Input placeholder="请输入智普 AI 的 Api Key"/>
            </Form.Item>
            <FormTitle>星火大模型配置</FormTitle>
            <Form.Item wrapperCol={{span: 12, offset: 4}}>
                <Alert message={<>注意:以下的星火大模型内容请到网址
                    <a href='https://console.xfyun.cn/services/bm35'
                       target='_blank'>https://console.xfyun.cn/services/bm35</a> 获取</>}
                       type="info"/>
            </Form.Item>
            <Form.Item label="AppId" name="spark_ai_app_id">
                <Input placeholder="请输入星火大模型 AppId"/>
            </Form.Item>
            <Form.Item label="ApiKey" name="spark_ai_api_key">
                <Input placeholder="请输入星火大模型 ApiKey"/>
            </Form.Item>
            <Form.Item label="ApiSecret" name="spark_ai_app_secret">
                <Input placeholder="请输入星火大模型 ApiSecret"/>
            </Form.Item>
            <Form.Item label="星火大模型版本" name="spark_ai_version">
                <Select>
                    <Select.Option value="v3.5">v3.5</Select.Option>
                    <Select.Option value="v3.0">v3.0</Select.Option>
                    <Select.Option value="v2.0">v2.0</Select.Option>
                    <Select.Option value="v1.5">v1.5</Select.Option>
                </Select>
            </Form.Item>
        </OptionsPage>
    );
};
export default {
    path: "config/model",
    element: ModelConfig
};
aiflowy-ui-react/src/pages/system/VectorStoreConfig.tsx
New file
@@ -0,0 +1,94 @@
import React from 'react';
import {Alert, Form, Input, Select} from "antd";
import FormTitle from "../../components/FormTitle";
import OptionsPage from "../../components/OptionsPage";
const VectorStoreConfig: React.FC = () => {
    return (
        <OptionsPage>
            <FormTitle style={{marginTop: "0"}}>向量数据库</FormTitle>
            <Form.Item label="数据库类型" name="vectorstore_type" initialValue={"aliyun"}>
                <Select>
                    <Select.Option value="milvus">Milvus</Select.Option>
                    <Select.Option value="aliyun">阿里云</Select.Option>
                    <Select.Option value="qcloud">腾讯云</Select.Option>
                </Select>
            </Form.Item>
            <Form.Item label="默认集合名称" name="vectorstore_default_collection">
                <Input placeholder="请输入默认的集合名称"/>
            </Form.Item>
            <FormTitle>Milvus 向量数据库配置</FormTitle>
            <Form.Item label="Endpoint" name="milvus_endpoint" extra={"请输入 Milvus 的服务地址,例如:http://localhost:19530"}>
                <Input placeholder="输入 Milvus 的服务地址"/>
            </Form.Item>
            <Form.Item label="ApiKey" name="milvus_apikey" extra={<>Milvus 的 Api Key 请去或 Token</>}>
                <Input placeholder="请输入Milvus 的 Api Key"/>
            </Form.Item>
            <Form.Item label="数据库名称" name="milvus_database" extra={"数据库的名称,也是 Cluster 的名称。"}>
                <Input placeholder="请输入数据库名称"/>
            </Form.Item>
            <FormTitle>阿里云向量数据库配置</FormTitle>
            <Form.Item label="Endpoint" name="aliyun_vdb_endpoint" extra={<>获取 Endpoint 请先创建 Cluster,详情
                <a href='https://help.aliyun.com/document_detail/2631966.html'
                   target='_blank'>https://help.aliyun.com/document_detail/2631966.html</a>。</>}>
                <Input placeholder="请输入阿里云向量数据库的 Endpoint"/>
            </Form.Item>
            <Form.Item label="ApiKey" name="aliyun_vdb_api_key" extra={<>阿里云的 Api Key 请去
                <a href='https://help.aliyun.com/document_detail/2510230.html'
                   target='_blank'>https://help.aliyun.com/document_detail/2510230.html</a> 获取。</>}>
                <Input placeholder="请输入阿里云向量数据库的 Api Key"/>
            </Form.Item>
            <Form.Item label="数据库名称" name="aliyun_vdb_database" extra={"数据库的名称,也是 Cluster 的名称。"}>
                <Input placeholder="请输入数据库名称"/>
            </Form.Item>
            <FormTitle>腾讯云向量数据库配置</FormTitle>
            <Form.Item wrapperCol={{span: 12, offset: 4}}>
                <Alert
                    message={<>腾讯云向量数据库配置的信息获取,请参考:<a
                        href='https://cloud.tencent.com/document/product/1709/97769'
                        target='_blank'>https://cloud.tencent.com/document/product/1709/97769</a>
                    </>}
                    type="info"/>
            </Form.Item>
            <Form.Item label="Endpoint" name="qcloud_vdb_endpoint">
                <Input placeholder="请输入腾讯云向量数据库的 Endpoint"/>
            </Form.Item>
            <Form.Item label="Username" name="qcloud_vdb_username">
                <Input placeholder="请输入腾讯云向量数据库的 Api Key"/>
            </Form.Item>
            <Form.Item label="ApiKey" name="qcloud_vdb_api_key">
                <Input placeholder="请输入腾讯云向量数据库的 Api Key"/>
            </Form.Item>
            <Form.Item label="数据库名称" name="qcloud_vdb_database">
                <Input placeholder="请输入数据库名称"/>
            </Form.Item>
        </OptionsPage>
    );
};
export default {
    path: "config/vector",
    element: VectorStoreConfig
};
sql/aiflowy.data.init.sql
@@ -0,0 +1,55 @@
INSERT INTO `tb_sys_account` (`id`, `dept_id`, `tenant_id`, `login_name`, `password`, `account_type`, `nickname`, `mobile`, `email`, `avatar`, `data_scope`, `dept_id_list`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (1, 1, 1000000, 'admin', '$2a$10$S8HVnrS8m7iygQBS7r1dYuOstEUl5q/W1yhgFcS1uyL6o2/23yUYO', 99, '超级管理员', '15555555555', 'aaa@qq.com', '/attachment/2025/04-02/b8aaa606-36d2-43a7-9ac9-bc6a88cb4e67.jpg', 1, NULL, 1, '2025-04-02 14:29:27', 1, '2025-04-02 14:29:27', 1, '', 0);
INSERT INTO `tb_sys_role` (`id`, `tenant_id`, `role_name`, `role_key`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (1, 1000000, '超级管理员', 'super_admin', 1, '2025-03-14 14:52:37', 1, '2025-03-14 14:52:37', 1, '', 0);
INSERT INTO `tb_sys_dept` (`id`, `tenant_id`, `parent_id`, `ancestors`, `dept_name`, `dept_code`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (1, 1000000, 0, '0', '总公司', 'root_dept', 0, 1, '2025-03-17 09:09:57', 1, '2025-03-17 09:10:00', 1, '', 0);
INSERT INTO `tb_sys_position` (`id`, `tenant_id`, `dept_id`, `position_name`, `position_code`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259067270360543232, 1000000, 1, '总部CTO', '', 0, 1, '2025-03-17 10:21:50', 1, '2025-03-17 10:21:50', 1, '', 0);
INSERT INTO `tb_sys_account_role` (`id`, `account_id`, `role_id`) VALUES (264927791655063552, 1, 1);
INSERT INTO `tb_sys_account_position` (`id`, `account_id`, `position_id`) VALUES (264927791692812288, 1, 259067270360543232);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (258052082618335232, 0, 0, '系统管理', '', '', 'ControlOutlined', 1, '', 999, 0, '2025-03-14 15:07:51', 1, '2025-04-08 11:12:00', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (258052774330368000, 258052082618335232, 0, '用户管理', '/sys/sysAccount', '', 'UserOutlined', 1, '', 0, 0, '2025-03-14 15:10:36', 1, '2025-03-14 15:10:36', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (258075705244676096, 258052082618335232, 0, '角色管理', '/sys/sysRole', '', 'FrownOutlined', 1, '', 11, 0, '2025-03-14 16:41:43', 1, '2025-03-14 16:41:43', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (258075850434703360, 258052082618335232, 0, '菜单管理', '/sys/sysMenu', '', 'ApartmentOutlined', 1, '', 21, 0, '2025-03-14 16:42:18', 1, '2025-03-14 16:42:18', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (258077347000119296, 258052774330368000, 1, '用户查询', '', '', NULL, 0, 'sysUser:list', 1, 0, '2025-03-14 16:48:14', 1, '2025-03-14 16:48:14', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (258079445137780736, 258052774330368000, 1, '用户保存', '', '', NULL, 1, 'sysUser:save', 2, 0, '2025-03-14 16:56:35', 1, '2025-03-14 16:56:35', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259048038847483904, 258052082618335232, 0, '部门管理', '/sys/sysDept', '', 'BankOutlined', 1, '', 31, 0, '2025-03-17 09:05:25', 1, '2025-03-17 09:05:25', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259065916854448128, 258052082618335232, 0, '岗位管理', '/sys/sysPosition', '', 'AuditOutlined', 1, '', 32, 0, '2025-03-17 10:16:28', 1, '2025-03-17 10:16:28', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259166589327630336, 0, 0, '欢迎回来', '/index', '', 'BorderlessTableOutlined', 1, '', 0, 0, '2025-03-17 16:56:30', 1, '2025-03-17 16:56:30', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259168688849412096, 0, 0, '系统配置', '', '', NULL, 1, '', 99999, 0, '2025-03-17 17:04:51', 1, '2025-03-17 17:04:51', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259168810450673664, 259168688849412096, 0, 'AI大模型', '/config/model', '', 'DeploymentUnitOutlined', 1, '', 0, 0, '2025-03-17 17:05:20', 1, '2025-03-17 17:05:20', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259168916721754112, 259168688849412096, 0, '向量数据库', '/config/vector', '', 'BorderBottomOutlined', 1, '', 1, 0, '2025-03-17 17:05:45', 1, '2025-03-17 17:05:45', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259169177682960384, 258052082618335232, 0, '数据字典', '/system/dicts', '', 'AppstoreOutlined', 1, '', 51, 0, '2025-03-17 17:06:47', 1, '2025-03-17 17:06:47', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259169318720626688, 258052082618335232, 0, '日志管理', '/system/logs', '', 'ExclamationCircleOutlined', 1, '', 61, 0, '2025-03-17 17:07:21', 1, '2025-03-17 17:07:21', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259169540360232960, 0, 0, 'AI能力', '', '', NULL, 1, '', 21, 0, '2025-03-17 17:08:14', 1, '2025-03-17 17:08:14', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259169689438380032, 259169540360232960, 0, '大模型商店', '/ai/ollama', '', 'SlackSquareFilled', 1, '', 1111, 0, '2025-03-17 17:08:49', 1, '2025-04-08 12:24:03', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259169837824466944, 259169540360232960, 0, 'Bots', '/ai/bots', '', 'TwitchOutlined', 1, '', 11, 0, '2025-03-17 17:09:24', 1, '2025-03-17 17:09:24', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259169982154661888, 259169540360232960, 0, '插件', '/ai/plugins', '', 'RobotOutlined', 1, '', 21, 0, '2025-03-17 17:09:59', 1, '2025-04-01 13:54:26', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259170117110587392, 259169540360232960, 0, '工作流', '/ai/workflow', '', 'BranchesOutlined', 1, '', 31, 0, '2025-03-17 17:10:31', 1, '2025-03-17 17:10:31', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259170422338478080, 259169540360232960, 0, '知识库', '/ai/knowledge', '', 'ReadOutlined', 1, '', 51, 0, '2025-03-17 17:11:44', 1, '2025-03-17 17:11:44', 1, '', 0);
INSERT INTO `tb_sys_menu` (`id`, `parent_id`, `menu_type`, `menu_title`, `menu_url`, `component`, `menu_icon`, `is_show`, `permission_tag`, `sort_no`, `status`, `created`, `created_by`, `modified`, `modified_by`, `remark`, `is_deleted`) VALUES (259170538264846336, 259169540360232960, 0, '大模型', '/ai/llms', '', 'SlidersOutlined', 1, '', 61, 0, '2025-03-17 17:12:11', 1, '2025-03-17 17:12:11', 1, '', 0);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259111372649250817, 1, 258052774330368000);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259111372649250818, 1, 258075705244676096);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259111372649250819, 1, 258075850434703360);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259111372649250820, 1, 258077347000119296);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259111372649250821, 1, 258079445137780736);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259111372649250822, 1, 259048038847483904);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259111372649250824, 1, 259065916854448128);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259111372649250825, 1, 258052082618335232);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259166589449265152, 1, 259166589327630336);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259168688966852608, 1, 259168688849412096);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259168810568114176, 1, 259168810450673664);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259168916826611712, 1, 259168916721754112);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259169177817178112, 1, 259169177682960384);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259169318829678592, 1, 259169318720626688);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259169540477673472, 1, 259169540360232960);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259169689576792064, 1, 259169689438380032);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259169837941907456, 1, 259169837824466944);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259169982280491008, 1, 259169982154661888);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259170117223833600, 1, 259170117110587392);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259170422447529984, 1, 259170422338478080);
INSERT INTO `tb_sys_role_menu` (`id`, `role_id`, `menu_id`) VALUES (259170538378092544, 1, 259170538264846336);
sql/aiflowy.ddl.sql
@@ -0,0 +1,504 @@
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tb_ai_bot
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_bot`;
CREATE TABLE `tb_ai_bot`  (
                              `id` bigint UNSIGNED NOT NULL COMMENT '主键ID',
                              `dept_id` bigint UNSIGNED NOT NULL COMMENT '部门ID',
                              `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                              `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标题',
                              `description` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
                              `icon` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '图标',
                              `llm_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT 'LLM ID',
                              `llm_options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT 'LLM选项',
                              `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '选项',
                              `created` datetime NULL DEFAULT NULL COMMENT '创建时间',
                              `created_by` bigint UNSIGNED NULL DEFAULT NULL COMMENT '创建者ID',
                              `modified` datetime NULL DEFAULT NULL COMMENT '修改时间',
                              `modified_by` bigint UNSIGNED NULL DEFAULT NULL COMMENT '修改者ID',
                              PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_bot_knowledge
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_bot_knowledge`;
CREATE TABLE `tb_ai_bot_knowledge`  (
                                        `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
                                        `bot_id` bigint UNSIGNED NULL DEFAULT NULL,
                                        `knowledge_id` bigint UNSIGNED NULL DEFAULT NULL,
                                        `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
                                        PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_bot_llm
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_bot_llm`;
CREATE TABLE `tb_ai_bot_llm`  (
                                  `id` bigint UNSIGNED NOT NULL,
                                  `bot_id` bigint UNSIGNED NULL DEFAULT NULL,
                                  `llm_id` bigint UNSIGNED NULL DEFAULT NULL,
                                  `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
                                  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_bot_message
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_bot_message`;
CREATE TABLE `tb_ai_bot_message`  (
                                      `id` bigint UNSIGNED NOT NULL,
                                      `bot_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT 'Bot ID',
                                      `account_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '关联的账户ID',
                                      `session_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '回话ID',
                                      `role` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
                                      `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
                                      `image` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
                                      `prompt_tokens` int NULL DEFAULT NULL,
                                      `completion_tokens` int NULL DEFAULT NULL,
                                      `total_tokens` int NULL DEFAULT NULL,
                                      `functions` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '方法定义',
                                      `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
                                      `created` datetime NULL DEFAULT NULL,
                                      `modified` datetime NULL DEFAULT NULL,
                                      PRIMARY KEY (`id`) USING BTREE,
                                      INDEX `bot_id`(`bot_id`) USING BTREE,
                                      INDEX `account_id`(`account_id`) USING BTREE,
                                      INDEX `session_id`(`session_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'Bot 消息记录表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_bot_plugins
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_bot_plugins`;
CREATE TABLE `tb_ai_bot_plugins`  (
                                      `id` bigint UNSIGNED NOT NULL,
                                      `bot_id` bigint UNSIGNED NULL DEFAULT NULL,
                                      `plugin_id` bigint UNSIGNED NULL DEFAULT NULL,
                                      `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
                                      PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_bot_workflow
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_bot_workflow`;
CREATE TABLE `tb_ai_bot_workflow`  (
                                       `id` bigint UNSIGNED NOT NULL,
                                       `bot_id` bigint UNSIGNED NULL DEFAULT NULL,
                                       `workflow_id` bigint UNSIGNED NULL DEFAULT NULL,
                                       `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
                                       PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_chat_message
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_chat_message`;
CREATE TABLE `tb_ai_chat_message`  (
                                       `id` bigint UNSIGNED NOT NULL,
                                       `topic_id` bigint UNSIGNED NULL DEFAULT NULL,
                                       `role` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
                                       `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
                                       `image` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
                                       `prompt_tokens` int NULL DEFAULT NULL,
                                       `completion_tokens` int NULL DEFAULT NULL,
                                       `total_tokens` int NULL DEFAULT NULL,
                                       `tools` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
                                       `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
                                       `created` datetime NULL DEFAULT NULL,
                                       `modified` datetime NULL DEFAULT NULL,
                                       PRIMARY KEY (`id`) USING BTREE,
                                       INDEX `topic_id`(`topic_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'AI 消息记录表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_chat_topic
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_chat_topic`;
CREATE TABLE `tb_ai_chat_topic`  (
                                     `id` bigint UNSIGNED NOT NULL,
                                     `account_id` bigint UNSIGNED NULL DEFAULT NULL,
                                     `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
                                     `created` datetime NULL DEFAULT NULL,
                                     `modified` datetime NULL DEFAULT NULL,
                                     PRIMARY KEY (`id`) USING BTREE,
                                     INDEX `account_id`(`account_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'AI 话题表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_document
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_document`;
CREATE TABLE `tb_ai_document`  (
                                   `id` bigint UNSIGNED NOT NULL,
                                   `knowledge_id` bigint UNSIGNED NOT NULL COMMENT '知识库ID',
                                   `document_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文档类型 pdf/word/aieditor 等',
                                   `document_path` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文档路径',
                                   `title` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标题',
                                   `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '内容',
                                   `content_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '内容类型',
                                   `slug` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'URL 别名',
                                   `order_no` int NULL DEFAULT NULL COMMENT '排序序号',
                                   `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '其他配置项',
                                   `created` datetime NULL DEFAULT NULL COMMENT '创建时间',
                                   `created_by` bigint NULL DEFAULT NULL COMMENT '创建人ID',
                                   `modified` datetime NULL DEFAULT NULL COMMENT '最后的修改时间',
                                   `modified_by` bigint NULL DEFAULT NULL COMMENT '最后的修改人的ID',
                                   PRIMARY KEY (`id`) USING BTREE,
                                   INDEX `knowledge_id`(`knowledge_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '文档' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_document_chunk
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_document_chunk`;
CREATE TABLE `tb_ai_document_chunk`  (
                                         `id` bigint UNSIGNED NOT NULL,
                                         `document_id` bigint UNSIGNED NOT NULL COMMENT '文档ID',
                                         `knowledge_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '知识库ID',
                                         `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '分块内容',
                                         `sorting` int UNSIGNED NULL DEFAULT NULL COMMENT '分割顺序',
                                         PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_document_history
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_document_history`;
CREATE TABLE `tb_ai_document_history`  (
                                           `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
                                           `document_id` bigint NULL DEFAULT NULL COMMENT '修改的文档ID',
                                           `old_title` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '旧标题',
                                           `new_title` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '新标题',
                                           `old_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '旧内容',
                                           `new_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '新内容',
                                           `old_document_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '旧的文档类型',
                                           `new_document_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '新的额文档类型',
                                           `created` datetime NULL DEFAULT NULL COMMENT '创建时间',
                                           `created_by` bigint NULL DEFAULT NULL COMMENT '创建人ID',
                                           PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_knowledge
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_knowledge`;
CREATE TABLE `tb_ai_knowledge`  (
                                    `id` bigint UNSIGNED NOT NULL,
                                    `dept_id` bigint UNSIGNED NOT NULL COMMENT '部门ID',
                                    `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                                    `icon` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'ICON',
                                    `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标题',
                                    `description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
                                    `slug` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'URL 别名',
                                    `vector_store_enable` tinyint(1) NULL DEFAULT NULL COMMENT '是否启用向量存储',
                                    `vector_store_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '向量数据库类型',
                                    `vector_store_collection` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '向量数据库集合',
                                    `vector_store_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '向量数据库配置',
                                    `vector_embed_llm_id` bigint NULL DEFAULT NULL COMMENT 'Embedding 模型ID',
                                    `created` datetime NULL DEFAULT NULL COMMENT '创建时间',
                                    `created_by` bigint UNSIGNED NULL DEFAULT NULL COMMENT '创建用户ID',
                                    `modified` datetime NULL DEFAULT NULL COMMENT '最后一次修改时间',
                                    `modified_by` bigint UNSIGNED NULL DEFAULT NULL COMMENT '最后一次修改用户ID',
                                    `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '其他配置',
                                    PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '知识库' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_llm
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_llm`;
CREATE TABLE `tb_ai_llm`  (
                              `id` bigint UNSIGNED NOT NULL,
                              `dept_id` bigint UNSIGNED NOT NULL COMMENT '部门ID',
                              `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                              `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标题或名称',
                              `brand` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '品牌',
                              `icon` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'ICON',
                              `description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
                              `support_chat` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持对话',
                              `support_function_calling` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持方法调用',
                              `support_embed` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持向量化',
                              `support_reranker` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持重排',
                              `support_text_to_image` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持文字生成图片',
                              `support_image_to_image` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持图片生成图片',
                              `support_text_to_audio` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持文字生成语音',
                              `support_audio_to_audio` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持语音生成语音',
                              `support_text_to_video` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持文字生成视频',
                              `support_image_to_video` tinyint(1) NULL DEFAULT NULL COMMENT '是否支持图片生成视频',
                              `llm_endpoint` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '大模型请求地址',
                              `llm_model` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '大模型名称',
                              `llm_api_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '大模型 API KEY',
                              `llm_extra_config` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '大模型其他属性配置',
                              `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '其他配置内容',
                              PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_plugins
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_plugins`;
CREATE TABLE `tb_ai_plugins`  (
                                  `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                  `dept_id` bigint UNSIGNED NOT NULL COMMENT '部门ID',
                                  `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                                  `plugin_type` tinyint NOT NULL DEFAULT 1 COMMENT '插件类型',
                                  `plugin_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '插件名称',
                                  `plugin_desc` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '插件描述',
                                  `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '插件配置',
                                  `status` tinyint NOT NULL DEFAULT 0 COMMENT '数据状态',
                                  `created` datetime NOT NULL COMMENT '创建时间',
                                  `created_by` bigint UNSIGNED NOT NULL COMMENT '创建者',
                                  `modified` datetime NOT NULL COMMENT '修改时间',
                                  `modified_by` bigint UNSIGNED NOT NULL COMMENT '修改者',
                                  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注',
                                  `is_deleted` tinyint NULL DEFAULT 0 COMMENT '删除标识',
                                  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '插件' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_ai_workflow
-- ----------------------------
DROP TABLE IF EXISTS `tb_ai_workflow`;
CREATE TABLE `tb_ai_workflow`  (
                                   `id` bigint UNSIGNED NOT NULL COMMENT 'ID 主键',
                                   `dept_id` bigint UNSIGNED NOT NULL COMMENT '部门ID',
                                   `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                                   `title` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标题',
                                   `description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
                                   `icon` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'ICON',
                                   `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '工作流设计的 JSON 内容',
                                   `created` datetime NULL DEFAULT NULL COMMENT '创建时间',
                                   `created_by` bigint UNSIGNED NULL DEFAULT NULL COMMENT '创建人',
                                   `modified` datetime NULL DEFAULT NULL COMMENT '最后修改时间',
                                   `modified_by` bigint UNSIGNED NULL DEFAULT NULL COMMENT '最后修改的人',
                                   PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_account
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_account`;
CREATE TABLE `tb_sys_account`  (
                                   `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                   `dept_id` bigint UNSIGNED NOT NULL COMMENT '部门ID',
                                   `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                                   `login_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '登录账号',
                                   `password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码',
                                   `account_type` tinyint NOT NULL DEFAULT 0 COMMENT '账户类型',
                                   `nickname` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '昵称',
                                   `mobile` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '手机电话',
                                   `email` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '邮件',
                                   `avatar` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '账户头像',
                                   `data_scope` int NULL DEFAULT 1 COMMENT '数据权限类型',
                                   `dept_id_list` json NULL COMMENT '自定义部门权限',
                                   `status` tinyint NOT NULL DEFAULT 0 COMMENT '数据状态',
                                   `created` datetime NOT NULL COMMENT '创建时间',
                                   `created_by` bigint UNSIGNED NOT NULL COMMENT '创建者',
                                   `modified` datetime NOT NULL COMMENT '修改时间',
                                   `modified_by` bigint UNSIGNED NOT NULL COMMENT '修改者',
                                   `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注',
                                   `is_deleted` tinyint NULL DEFAULT 0 COMMENT '删除标识',
                                   PRIMARY KEY (`id`) USING BTREE,
                                   UNIQUE INDEX `uni_login_name`(`login_name`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_account_position
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_account_position`;
CREATE TABLE `tb_sys_account_position`  (
                                            `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                            `account_id` bigint UNSIGNED NOT NULL COMMENT '用户ID',
                                            `position_id` bigint UNSIGNED NOT NULL COMMENT '职位ID',
                                            PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户-职位表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_account_role
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_account_role`;
CREATE TABLE `tb_sys_account_role`  (
                                        `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                        `account_id` bigint UNSIGNED NOT NULL COMMENT '用户ID',
                                        `role_id` bigint UNSIGNED NOT NULL COMMENT '角色ID',
                                        PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户-角色表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_dept
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_dept`;
CREATE TABLE `tb_sys_dept`  (
                                `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                                `parent_id` bigint UNSIGNED NOT NULL COMMENT '父级ID',
                                `ancestors` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '父级部门ID集合',
                                `dept_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '部门名称',
                                `dept_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '部门编码',
                                `sort_no` int NULL DEFAULT 0 COMMENT '排序',
                                `status` tinyint NOT NULL DEFAULT 0 COMMENT '数据状态',
                                `created` datetime NOT NULL COMMENT '创建时间',
                                `created_by` bigint UNSIGNED NOT NULL COMMENT '创建者',
                                `modified` datetime NOT NULL COMMENT '修改时间',
                                `modified_by` bigint UNSIGNED NOT NULL COMMENT '修改者',
                                `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注',
                                `is_deleted` tinyint NULL DEFAULT 0 COMMENT '删除标识',
                                PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '部门表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_dict
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_dict`;
CREATE TABLE `tb_sys_dict`  (
                                `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '数据字典名称',
                                `code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '字典编码',
                                `description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '字典描述或备注',
                                `dict_type` tinyint NULL DEFAULT NULL COMMENT '字典类型 1 自定义字典、2 数据表字典、 3 枚举类字典、 4 系统字典(自定义 DictLoader)',
                                `sort_no` int NULL DEFAULT NULL COMMENT '排序编号',
                                `status` tinyint NULL DEFAULT NULL COMMENT '是否启用',
                                `options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '扩展字典  存放 json',
                                `created` datetime NULL DEFAULT NULL COMMENT '创建时间',
                                `modified` datetime NULL DEFAULT NULL COMMENT '修改时间',
                                PRIMARY KEY (`id`) USING BTREE,
                                UNIQUE INDEX `key`(`code`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统字典表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for tb_sys_dict_item
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_dict_item`;
CREATE TABLE `tb_sys_dict_item`  (
                                     `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                     `dict_id` bigint UNSIGNED NOT NULL COMMENT '归属哪个字典',
                                     `text` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '名称或内容',
                                     `value` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '值',
                                     `description` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
                                     `sort_no` int NOT NULL DEFAULT 0 COMMENT '排序',
                                     `css_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT 'css样式内容',
                                     `css_class` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'css样式类名',
                                     `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
                                     `status` tinyint NULL DEFAULT 0 COMMENT '状态',
                                     `created` datetime NULL DEFAULT NULL COMMENT '创建时间',
                                     `modified` datetime NULL DEFAULT NULL COMMENT '修改时间',
                                     PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '数据字典内容' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_log
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_log`;
CREATE TABLE `tb_sys_log`  (
                               `id` bigint UNSIGNED NOT NULL,
                               `account_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '操作人',
                               `action_name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作名称',
                               `action_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作的类型',
                               `action_class` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作涉及的类',
                               `action_method` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作涉及的方法',
                               `action_url` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作涉及的 URL 地址',
                               `action_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作涉及的用户 IP 地址',
                               `action_params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作请求参数',
                               `action_body` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作请求body',
                               `status` tinyint NULL DEFAULT NULL COMMENT '操作状态 1 成功 9 失败',
                               `created` datetime NULL DEFAULT NULL COMMENT '操作时间',
                               PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '操作日志表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_menu
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_menu`;
CREATE TABLE `tb_sys_menu`  (
                                `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                `parent_id` bigint UNSIGNED NOT NULL COMMENT '父菜单id',
                                `menu_type` int NOT NULL COMMENT '菜单类型',
                                `menu_title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '菜单标题',
                                `menu_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '菜单url',
                                `component` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '组件路径',
                                `menu_icon` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '图标/图片地址',
                                `is_show` int NOT NULL DEFAULT 1 COMMENT '是否显示',
                                `permission_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '权限标识',
                                `sort_no` int NULL DEFAULT 0 COMMENT '排序',
                                `status` tinyint NOT NULL DEFAULT 0 COMMENT '数据状态',
                                `created` datetime NOT NULL COMMENT '创建时间',
                                `created_by` bigint UNSIGNED NOT NULL COMMENT '创建者',
                                `modified` datetime NOT NULL COMMENT '修改时间',
                                `modified_by` bigint UNSIGNED NOT NULL COMMENT '修改者',
                                `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注',
                                `is_deleted` tinyint NULL DEFAULT 0 COMMENT '删除标识',
                                PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '菜单表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_option
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_option`;
CREATE TABLE `tb_sys_option`  (
                                  `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                                  `key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '配置KEY',
                                  `value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '配置内容',
                                  INDEX `uni_key`(`tenant_id`, `key`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统配置信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for tb_sys_position
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_position`;
CREATE TABLE `tb_sys_position`  (
                                    `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                    `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                                    `dept_id` bigint UNSIGNED NOT NULL COMMENT '部门ID',
                                    `position_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '岗位名称',
                                    `position_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '岗位编码',
                                    `sort_no` int NULL DEFAULT 0 COMMENT '排序',
                                    `status` tinyint NOT NULL DEFAULT 0 COMMENT '数据状态',
                                    `created` datetime NOT NULL COMMENT '创建时间',
                                    `created_by` bigint UNSIGNED NOT NULL COMMENT '创建者',
                                    `modified` datetime NOT NULL COMMENT '修改时间',
                                    `modified_by` bigint UNSIGNED NOT NULL COMMENT '修改者',
                                    `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注',
                                    `is_deleted` tinyint NULL DEFAULT 0 COMMENT '删除标识',
                                    PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '职位表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_role
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_role`;
CREATE TABLE `tb_sys_role`  (
                                `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                `tenant_id` bigint UNSIGNED NOT NULL COMMENT '租户ID',
                                `role_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色名称',
                                `role_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色标识',
                                `status` tinyint NOT NULL DEFAULT 0 COMMENT '数据状态',
                                `created` datetime NOT NULL COMMENT '创建时间',
                                `created_by` bigint UNSIGNED NOT NULL COMMENT '创建者',
                                `modified` datetime NOT NULL COMMENT '修改时间',
                                `modified_by` bigint UNSIGNED NOT NULL COMMENT '修改者',
                                `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注',
                                `is_deleted` tinyint NULL DEFAULT 0 COMMENT '删除标识',
                                PRIMARY KEY (`id`) USING BTREE,
                                UNIQUE INDEX `uni_tenant_role`(`tenant_id`, `role_key`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统角色' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tb_sys_role_menu
-- ----------------------------
DROP TABLE IF EXISTS `tb_sys_role_menu`;
CREATE TABLE `tb_sys_role_menu`  (
                                     `id` bigint UNSIGNED NOT NULL COMMENT '主键',
                                     `role_id` bigint UNSIGNED NOT NULL COMMENT '角色ID',
                                     `menu_id` bigint UNSIGNED NOT NULL COMMENT '菜单ID',
                                     PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色-菜单表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;