-- liquibase formatted sql
-- changeset charles7c:1
-- comment 初始化表结构
CREATE TABLE IF NOT EXISTS `sys_menu`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`title` varchar(30) NOT NULL COMMENT '标题',
`parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级菜单ID',
`type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:目录;2:菜单;3:按钮)',
`path` varchar(255) DEFAULT NULL COMMENT '路由地址',
`name` varchar(50) DEFAULT NULL COMMENT '组件名称',
`component` varchar(255) DEFAULT NULL COMMENT '组件路径',
`redirect` varchar(255) DEFAULT NULL COMMENT '重定向地址',
`icon` varchar(50) DEFAULT NULL COMMENT '图标',
`is_external` bit(1) DEFAULT b'0' COMMENT '是否外链',
`is_cache` bit(1) DEFAULT b'0' COMMENT '是否缓存',
`is_hidden` bit(1) DEFAULT b'0' COMMENT '是否隐藏',
`permission` varchar(100) DEFAULT NULL COMMENT '权限标识',
`sort` int NOT NULL DEFAULT 999 COMMENT '排序',
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_title_parent_id` (`title`, `parent_id`),
INDEX `idx_parent_id` (`parent_id`),
INDEX `idx_create_user` (`create_user`),
INDEX `idx_update_user` (`update_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='菜单表';
CREATE TABLE IF NOT EXISTS `sys_dept`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级部门ID',
`ancestors` varchar(512) NOT NULL DEFAULT '' COMMENT '祖级列表',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`sort` int NOT NULL DEFAULT 999 COMMENT '排序',
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
`is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_name_parent_id` (`name`, `parent_id`),
INDEX `idx_parent_id` (`parent_id`),
INDEX `idx_create_user` (`create_user`),
INDEX `idx_update_user` (`update_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='部门表';
CREATE TABLE IF NOT EXISTS `sys_role`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`code` varchar(30) NOT NULL COMMENT '编码',
`data_scope` tinyint(1) NOT NULL DEFAULT 4 COMMENT '数据权限(1:全部数据权限;2:本部门及以下数据权限;3:本部门数据权限;4:仅本人数据权限;5:自定义数据权限)',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`sort` int NOT NULL DEFAULT 999 COMMENT '排序',
`is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
`menu_check_strictly` bit(1) DEFAULT b'1' COMMENT '菜单选择是否父子节点关联',
`dept_check_strictly` bit(1) DEFAULT b'1' COMMENT '部门选择是否父子节点关联',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_name` (`name`),
UNIQUE INDEX `uk_code` (`code`),
INDEX `idx_create_user` (`create_user`),
INDEX `idx_update_user` (`update_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='角色表';
CREATE TABLE IF NOT EXISTS `sys_user`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`username` varchar(64) NOT NULL COMMENT '用户名',
`nickname` varchar(100) NOT NULL COMMENT '昵称',
`password` varchar(255) DEFAULT NULL COMMENT '密码',
`gender` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '性别(0:未知;1:男;2:女)',
`email` varchar(255) DEFAULT NULL COMMENT '邮箱',
`phone` varchar(255) DEFAULT NULL COMMENT '手机号码',
`avatar` longtext DEFAULT NULL COMMENT '头像',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
`is_fron` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '是否为前台用户(0:否;1:是)',
`is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
`pwd_reset_time` datetime DEFAULT NULL COMMENT '最后一次修改密码时间',
`dept_id` bigint(20) COMMENT '部门ID',
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_username` (`username`),
UNIQUE INDEX `uk_email` (`email`),
UNIQUE INDEX `uk_phone` (`phone`),
INDEX `idx_dept_id` (`dept_id`),
INDEX `idx_create_user` (`create_user`),
INDEX `idx_update_user` (`update_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='用户表';
CREATE TABLE IF NOT EXISTS `sys_user_password_history`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`password` varchar(255) NOT NULL COMMENT '密码',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
INDEX `idx_user_id` (`user_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='用户历史密码表';
CREATE TABLE IF NOT EXISTS `sys_user_social`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`source` varchar(255) NOT NULL COMMENT '来源',
`open_id` varchar(255) NOT NULL COMMENT '开放ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`meta_json` text DEFAULT NULL COMMENT '附加信息',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_source_open_id` (`source`, `open_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='用户社会化关联表';
CREATE TABLE IF NOT EXISTS `sys_user_role`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_user_id_role_id` (`user_id`, `role_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='用户和角色关联表';
CREATE TABLE IF NOT EXISTS `sys_role_menu`
(
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
`menu_id` bigint(20) NOT NULL COMMENT '菜单ID',
PRIMARY KEY (`role_id`, `menu_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='角色和菜单关联表';
CREATE TABLE IF NOT EXISTS `sys_role_dept`
(
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
`dept_id` bigint(20) NOT NULL COMMENT '部门ID',
PRIMARY KEY (`role_id`, `dept_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='角色和部门关联表';
CREATE TABLE IF NOT EXISTS `sys_option`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`category` varchar(50) NOT NULL COMMENT '类别',
`name` varchar(50) NOT NULL COMMENT '名称',
`code` varchar(100) NOT NULL COMMENT '键',
`value` longtext DEFAULT NULL COMMENT '值',
`default_value` longtext DEFAULT NULL COMMENT '默认值',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_category_code` (`category`, `code`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='参数表';
CREATE TABLE IF NOT EXISTS `sys_dict`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`code` varchar(30) NOT NULL COMMENT '编码',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_name` (`name`),
UNIQUE INDEX `uk_code` (`code`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='字典表';
CREATE TABLE IF NOT EXISTS `sys_dict_item`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`label` varchar(30) NOT NULL COMMENT '标签',
`value` varchar(30) NOT NULL COMMENT '值',
`color` varchar(30) DEFAULT NULL COMMENT '标签颜色',
`sort` int NOT NULL DEFAULT 999 COMMENT '排序',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
`dict_id` bigint(20) NOT NULL COMMENT '字典ID',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_value_dict_id` (`value`, `dict_id`),
INDEX `idx_dict_id` (`dict_id`),
INDEX `idx_create_user` (`create_user`),
INDEX `idx_update_user` (`update_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='字典项表';
CREATE TABLE IF NOT EXISTS `sys_log`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`trace_id` varchar(255) DEFAULT NULL COMMENT '链路ID',
`description` varchar(255) NOT NULL COMMENT '日志描述',
`module` varchar(100) NOT NULL COMMENT '所属模块',
`request_url` varchar(512) NOT NULL COMMENT '请求URL',
`request_method` varchar(10) NOT NULL COMMENT '请求方式',
`request_headers` text DEFAULT NULL COMMENT '请求头',
`request_body` text DEFAULT NULL COMMENT '请求体',
`status_code` int NOT NULL COMMENT '状态码',
`response_headers` text DEFAULT NULL COMMENT '响应头',
`response_body` mediumtext DEFAULT NULL COMMENT '响应体',
`time_taken` bigint(20) NOT NULL COMMENT '耗时(ms)',
`ip` varchar(100) DEFAULT NULL COMMENT 'IP',
`address` varchar(255) DEFAULT NULL COMMENT 'IP归属地',
`browser` varchar(100) DEFAULT NULL COMMENT '浏览器',
`os` varchar(100) DEFAULT NULL COMMENT '操作系统',
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:成功;2:失败)',
`error_msg` text DEFAULT NULL COMMENT '错误信息',
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
INDEX `idx_module` (`module`),
INDEX `idx_ip` (`ip`),
INDEX `idx_address` (`address`),
INDEX `idx_create_time` (`create_time`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='系统日志表';
CREATE TABLE IF NOT EXISTS `sys_message`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`title` varchar(50) NOT NULL COMMENT '标题',
`content` varchar(255) DEFAULT NULL COMMENT '内容',
`type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:系统消息)',
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='消息表';
CREATE TABLE IF NOT EXISTS `sys_message_user`
(
`message_id` bigint(20) NOT NULL COMMENT '消息ID',
`user_id` bigint(11) NOT NULL COMMENT '用户ID',
`is_read` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已读',
`read_time` datetime DEFAULT NULL COMMENT '读取时间',
PRIMARY KEY (`message_id`, `user_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='消息和用户关联表';
CREATE TABLE IF NOT EXISTS `sys_notice`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`title` varchar(150) NOT NULL COMMENT '标题',
`content` mediumtext NOT NULL COMMENT '内容',
`type` varchar(30) NOT NULL COMMENT '类型',
`effective_time` datetime DEFAULT NULL COMMENT '生效时间',
`terminate_time` datetime DEFAULT NULL COMMENT '终止时间',
`notice_scope` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '通知范围(1:所有人;2:指定用户)',
`notice_users` json DEFAULT NULL COMMENT '通知用户',
`sort` int NOT NULL DEFAULT 999 COMMENT '排序',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
INDEX `idx_create_user` (`create_user`),
INDEX `idx_update_user` (`update_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='公告表';
CREATE TABLE IF NOT EXISTS `sys_storage`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(100) NOT NULL COMMENT '名称',
`code` varchar(30) NOT NULL COMMENT '编码',
`type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:本地存储;2:对象存储)',
`access_key` varchar(255) DEFAULT NULL COMMENT 'Access Key',
`secret_key` varchar(255) DEFAULT NULL COMMENT 'Secret Key',
`endpoint` varchar(255) DEFAULT NULL COMMENT 'Endpoint',
`bucket_name` varchar(255) NOT NULL COMMENT 'Bucket',
`domain` varchar(255) DEFAULT NULL COMMENT '域名',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`is_default` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为默认存储',
`sort` int NOT NULL DEFAULT 999 COMMENT '排序',
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_code` (`code`),
INDEX `idx_create_user` (`create_user`),
INDEX `idx_update_user` (`update_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='存储表';
CREATE TABLE IF NOT EXISTS `sys_file`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(255) NOT NULL COMMENT '名称',
`original_name` varchar(255) NOT NULL COMMENT '原始名称',
`size` bigint(20) DEFAULT NULL COMMENT '大小(字节)',
`parent_path` varchar(512) NOT NULL DEFAULT '/' COMMENT '上级目录',
`path` varchar(512) NOT NULL COMMENT '路径',
`extension` varchar(32) DEFAULT NULL COMMENT '扩展名',
`content_type` varchar(255) DEFAULT NULL COMMENT '内容类型',
`type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(0: 目录;1:其他;2:图片;3:文档;4:视频;5:音频)',
`sha256` varchar(256) DEFAULT NULL COMMENT 'SHA256值',
`metadata` text DEFAULT NULL COMMENT '元数据',
`thumbnail_name` varchar(255) DEFAULT NULL COMMENT '缩略图名称',
`thumbnail_size` bigint(20) DEFAULT NULL COMMENT '缩略图大小(字节)',
`thumbnail_metadata` text DEFAULT NULL COMMENT '缩略图元数据',
`storage_id` bigint(20) NOT NULL COMMENT '存储ID',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
INDEX `idx_type` (`type`),
INDEX `idx_sha256` (`sha256`),
INDEX `idx_storage_id` (`storage_id`),
INDEX `idx_create_user` (`create_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='文件表';
CREATE TABLE IF NOT EXISTS `sys_client`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`client_id` varchar(50) NOT NULL COMMENT '客户端ID',
`client_type` varchar(50) NOT NULL COMMENT '客户端类型',
`auth_type` json NOT NULL COMMENT '认证类型',
`active_timeout` bigint(20) DEFAULT -1 COMMENT 'Token最低活跃频率(单位:秒,-1:不限制,永不冻结)',
`timeout` bigint(20) DEFAULT 2592000 COMMENT 'Token有效期(单位:秒,-1:永不过期)',
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_client_id` (`client_id`),
INDEX `idx_create_user` (`create_user`),
INDEX `idx_update_user` (`update_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='客户端表';
CREATE TABLE IF NOT EXISTS `sys_sms_config`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(100) NOT NULL COMMENT '名称',
`supplier` varchar(50) NOT NULL COMMENT '厂商',
`access_key` varchar(255) NOT NULL COMMENT 'Access Key',
`secret_key` varchar(255) NOT NULL COMMENT 'Secret Key',
`signature` varchar(100) DEFAULT NULL COMMENT '短信签名',
`template_id` varchar(50) DEFAULT NULL COMMENT '模板ID',
`weight` int DEFAULT NULL COMMENT '负载均衡权重',
`retry_interval` int DEFAULT NULL COMMENT '重试间隔(单位:秒)',
`max_retries` int DEFAULT NULL COMMENT '重试次数',
`maximum` int DEFAULT NULL COMMENT '发送上限',
`supplier_config` text DEFAULT NULL COMMENT '各个厂商独立配置',
`is_default` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为默认配置',
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
INDEX `idx_create_user` (`create_user`),
INDEX `idx_update_user` (`update_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='短信配置表';
CREATE TABLE IF NOT EXISTS `sys_sms_log`
(
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`config_id` bigint(20) NOT NULL COMMENT '配置ID',
`phone` varchar(25) NOT NULL COMMENT '手机号',
`params` text DEFAULT NULL COMMENT '参数配置',
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '发送状态(1:成功;2:失败)',
`res_msg` text DEFAULT NULL COMMENT '返回数据',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
INDEX `idx_config_id` (`config_id`),
INDEX `idx_create_user` (`create_user`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='短信日志表';
-- -------------------------------------------------------------------------------------------------------------
-- ------------------------------
-- Table structure for aigc_model
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_model`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`type` VARCHAR(100) NOT NULL COMMENT '模型类型:Chat/Embedding/Image/Video/Audio',
`model` VARCHAR(100) NOT NULL COMMENT '官方模型名称',
`version` VARCHAR(50) DEFAULT NULL COMMENT '模型版本号',
`provider` VARCHAR(100) NOT NULL COMMENT '服务商',
`name` VARCHAR(100) NOT NULL COMMENT '自定义模型别名',
`description` VARCHAR(500) DEFAULT NULL COMMENT '模型描述',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:0停用 1启用',
`response_limit` INT DEFAULT 4096 COMMENT '最大响应长度',
`max_tokens` INT DEFAULT 4096 COMMENT '上下文最大token数',
`temperature` DOUBLE DEFAULT 0.7 COMMENT '随机性控制',
`top_p` DOUBLE DEFAULT 1.0 COMMENT '核心采样概率',
-- 服务商特定参数
`azure_deployment_name` varchar(100) DEFAULT NULL COMMENT 'Azure部署名称',
`gemini_project` varchar(100) DEFAULT NULL COMMENT 'Google Cloud项目ID',
`gemini_location` varchar(100) DEFAULT NULL COMMENT 'Google Cloud服务区域',
-- 图片生成参数
`image_size` varchar(50) DEFAULT '1024x1024' COMMENT '图片尺寸(支持1024x1024/1792x1024等)',
`image_quality` varchar(50) DEFAULT 'standard' COMMENT '图片质量:standard/hd',
`image_style` varchar(50) DEFAULT 'vivid' COMMENT '图片风格:vivid/natural',
`timeout` INT DEFAULT 30 COMMENT 'API超时时间(秒)',
`retry_strategy` VARCHAR(50) DEFAULT 'linear' COMMENT '重试策略',
`rate_limit` INT DEFAULT 1000 COMMENT '每分钟最大请求数',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_model_provider` (`model`, `provider`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='AIGC模型配置表';
-- ------------------------------
-- Table structure for aigc_model_secret
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_model_secret`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`model_id` BIGINT UNSIGNED NOT NULL COMMENT '关联模型ID',
`api_key` VARCHAR(255) DEFAULT NULL COMMENT 'API密钥',
`secret_key` VARCHAR(255) DEFAULT NULL COMMENT '密钥',
`base_url` VARCHAR(255) DEFAULT NULL COMMENT '基础URL',
`api_version` VARCHAR(50) DEFAULT NULL COMMENT 'API版本',
`dimension` INT COMMENT '向量维数',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_model_id` (`model_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='模型安全配置表';
-- ------------------------------
-- Table structure for aigc_knowledge
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_knowledge`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`name` VARCHAR(100) NOT NULL COMMENT '知识库名称(唯一)',
`type` VARCHAR(50) DEFAULT 'document' COMMENT '类型:document/image/audio/video/multi',
`file_type` VARCHAR(100) DEFAULT '*' COMMENT '允许的文件类型',
`embed_config` JSON NOT NULL COMMENT '向量配置 {
"store_type":"milvus",
"collection":"default",
"index_type":"HNSW",
"dimension":768,
"metadata_schema":{
"author":"string",
"publish_date":"date"
}
}',
`embed_model_id` BIGINT UNSIGNED NOT NULL COMMENT '关联向量模型ID',
`embed_store_id` BIGINT UNSIGNED NOT NULL COMMENT '关联向量存储ID',
`chunk_strategy` VARCHAR(50) DEFAULT 'fixed' COMMENT '切片策略:fixed/semantic/hybrid',
`chunk_size` INT DEFAULT 500 COMMENT '切片大小',
`chunk_overlap` INT DEFAULT 50 COMMENT '切片重叠大小',
`last_sync_time` DATETIME DEFAULT NULL COMMENT '最后向量化同步时间',
`storage_size` BIGINT DEFAULT 0 COMMENT '知识库大小(字节)',
`file_count` INT DEFAULT 0 COMMENT '包含文件数',
`storage_config` JSON DEFAULT NULL COMMENT '存储参数 {
"bucket":"aigc-kb",
"region":"ap-northeast-1",
"prefix":"/knowledge/"
}',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:0停用 1启用 2同步中',
`hit_count` BIGINT DEFAULT 0 COMMENT '被检索次数',
`avg_relevance` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '平均检索相关度',
`know_describe` VARCHAR(500) NOT NULL COMMENT '文档描述',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_kb_name` (`name`),
KEY `idx_embed_model` (`embed_model_id`),
KEY `idx_embed_store` (`embed_store_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='AIGC知识库表';
-- ------------------------------
-- Table structure for aigc_doc
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_doc`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`knowledge_id` BIGINT UNSIGNED NOT NULL COMMENT '所属知识库ID',
`name` VARCHAR(255) NOT NULL COMMENT '文档名称',
`file_type` VARCHAR(20) NOT NULL COMMENT '文件类型',
`mime_type` VARCHAR(100) DEFAULT NULL COMMENT 'MIME类型',
`file_encoding` VARCHAR(50) DEFAULT 'UTF-8' COMMENT '文件编码',
`file_hash` CHAR(64) COMMENT '文件哈希',
`file_size` BIGINT DEFAULT 0 COMMENT '文件大小',
`storage_path` VARCHAR(512) NOT NULL COMMENT '存储路径',
`storage_region` VARCHAR(50) DEFAULT 'default' COMMENT '存储区域',
`parsed_content` LONGTEXT DEFAULT NULL COMMENT '解析后文本',
`original_content` longblob DEFAULT NULL COMMENT '原始文件内容',
`metadata` JSON DEFAULT NULL COMMENT '元数据 {
"author": "张三",
"pages": 42,
"language": "zh",
"created_time": "2023-01-01"
}',
`processing_status` VARCHAR(20) DEFAULT 'uploaded' COMMENT '处理状态:uploaded/parsing/parsed/failed',
`chunk_config` JSON DEFAULT NULL COMMENT '切片配置 {
"strategy":"auto",
"chunk_size":1000,
"overlap":50
}',
`chunk_details` JSON DEFAULT NULL COMMENT '切片详情 [
{"id":1,"content":"...","vectors":32},
{"id":2,"content":"...","vectors":28}
]',
`vector_status` VARCHAR(20) DEFAULT 'pending' COMMENT '向量化状态:pending/processing/completed/failed',
`error_log` TEXT DEFAULT NULL COMMENT '错误日志',
`retry_count` INT DEFAULT 0 COMMENT '重试次数',
`slice_num` INT DEFAULT 0 COMMENT '重试次数',
`is_sensitive` TINYINT(1) DEFAULT 0 COMMENT '敏感内容标记',
`version` INT DEFAULT 1 COMMENT '文档版本',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_file_hash` (`file_hash`),
KEY `idx_knowledge_status` (`knowledge_id`, `processing_status`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='智能文档表';
-- ------------------------------
-- Table structure for aigc_doc_chunk
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_doc_chunk`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`embed_store_id` VARCHAR(100) COMMENT '向量库的ID',
`name` VARCHAR(255) COMMENT '文档名称',
`doc_id` BIGINT COMMENT '文档ID',
`knowledge_id` BIGINT COMMENT '知识库ID',
`chunk_index` INT COMMENT '切片索引',
`content` TEXT COMMENT '切片内容',
`word_num` INT DEFAULT NULL COMMENT '字符数',
`metadata` JSON DEFAULT NULL COMMENT '元数据',
`embedding` JSON DEFAULT NULL COMMENT '向量数据(可选存储)',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:0无效 1有效',
`relevance_score` DECIMAL(5, 4) DEFAULT NULL COMMENT '相关性分数',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
`vector` json DEFAULT NULL COMMENT '向量嵌入(float数组)',
PRIMARY KEY (`id`),
KEY `idx_embed_store_id` (`embed_store_id`),
KEY `idx_doc_id` (`doc_id`),
KEY `idx_knowledge_id` (`knowledge_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='文档切片表';
-- ------------------------------
-- Table structure for aigc_embed_store
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_embed_store`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`name` VARCHAR(100) NOT NULL COMMENT '存储配置名称(唯一)',
`provider` VARCHAR(50) NOT NULL COMMENT '供应商:milvus/pinecone/qdrant/pgvector/faiss',
`endpoints` JSON NOT NULL COMMENT '连接端点 {"host":"192.168.1.10","port":19530}',
`auth_config` JSON NOT NULL COMMENT '认证配置 {
"username":"admin",
"password":"****"
}',
`database_config` JSON NOT NULL COMMENT '数据库配置 {
"database":"admin",
"table":"****"
}',
`vector_config` JSON NOT NULL COMMENT '向量配置 {
"dimension":768,
"metric_type":"L2",
"index_type":"HNSW",
"max_conn":16
}',
`pool_config` JSON DEFAULT NULL COMMENT '连接池配置 {
"max_conn":50,
"timeout":5000,
"retry_policy":"exponential"
}',
`proxy_config` JSON DEFAULT NULL COMMENT '代理配置 {
"proxy_host":"gateway.example.com",
"proxy_port":443,
"proxy_type":"https"
}',
`last_health` DATETIME DEFAULT NULL COMMENT '最后健康检查时间',
`health_status` TINYINT(1) DEFAULT 0 COMMENT '健康状态:0异常 1正常',
`vector_count` BIGINT DEFAULT 0 COMMENT '向量数量',
`storage_usage` BIGINT DEFAULT 0 COMMENT '存储使用量(字节)',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_store_name` (`name`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='向量存储配置表';
-- ------------------------------
-- Table structure for aigc_app
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_app`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`model_id` BIGINT UNSIGNED NOT NULL COMMENT '绑定模型ID',
`version` VARCHAR(20) DEFAULT '1.0.0' COMMENT '语义化版本号',
`cover` VARCHAR(512) DEFAULT NULL COMMENT '封面图URL',
`name` VARCHAR(100) NOT NULL COMMENT '应用名称(唯一)',
`category` VARCHAR(50) DEFAULT '通用' COMMENT '应用分类',
`tags` VARCHAR(200) DEFAULT NULL COMMENT '标签',
`prompt` TEXT NOT NULL COMMENT '系统级提示词',
`negative_prompt` TEXT DEFAULT NULL COMMENT '负面提示词',
`context_window` INT DEFAULT 5 COMMENT '上下文记忆轮次',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:0下架 1发布 2审核中',
`config` JSON DEFAULT NULL COMMENT '动态配置',
`retention_days` INT DEFAULT 30 COMMENT '聊天记录保留天数',
`invoke_count` BIGINT DEFAULT 0 COMMENT '调用次数统计',
`avg_rating` DECIMAL(3, 2) DEFAULT 0.00 COMMENT '平均评分',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_app_name` (`name`),
KEY `idx_category_status` (`category`, `status`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='AIGC应用配置表';
-- ------------------------------
-- Table structure for aigc_app_knowledge
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_app_knowledge`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`app_id` BIGINT UNSIGNED NOT NULL COMMENT '应用ID',
`knowledge_id` BIGINT UNSIGNED NOT NULL COMMENT '知识库ID',
`retrieval_config` JSON DEFAULT NULL COMMENT '检索配置',
`top_k` INT DEFAULT 3 COMMENT '检索返回数量',
`score_threshold` DECIMAL(5, 4) DEFAULT 0.7 COMMENT '相似度阈值',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_app_knowledge` (`app_id`, `knowledge_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='应用和知识库关联表';
-- ------------------------------
-- Table structure for aigc_app_api
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_app_api`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`app_id` BIGINT UNSIGNED NOT NULL COMMENT '关联应用ID',
`channel` VARCHAR(50) NOT NULL COMMENT '渠道类型:web/mobile/api/sdk',
`api_key` VARCHAR(255) NOT NULL COMMENT 'API密钥',
`secret_key` VARCHAR(255) DEFAULT NULL COMMENT 'API密钥(双密钥)',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:0停用 1启用 2限流',
`expire_time` DATETIME DEFAULT NULL COMMENT '过期时间',
`ip_whitelist` VARCHAR(1000) DEFAULT '0.0.0.0' COMMENT 'IP白名单',
`rate_limit` INT DEFAULT 1000 COMMENT '每分钟最大请求数',
`scopes` VARCHAR(500) DEFAULT 'all' COMMENT '权限范围',
`model_whitelist` VARCHAR(500) DEFAULT NULL COMMENT '允许访问的模型ID列表',
`total_calls` BIGINT DEFAULT 0 COMMENT '总调用次数',
`last_used_time` DATETIME DEFAULT NULL COMMENT '最后调用时间',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='应用API密钥表';
-- ------------------------------
-- Table structure for aigc_conversation
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_conversation`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`user_id` BIGINT COMMENT '所属用户ID',
`app_id` BIGINT COMMENT '关联应用ID',
`agent_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联智能体ID',
`model_id` BIGINT COMMENT '使用模型ID',
`title` VARCHAR(200) COMMENT '对话标题',
`summary` VARCHAR(500) DEFAULT NULL COMMENT '对话摘要',
`initial_prompt` TEXT DEFAULT NULL COMMENT '对话初始提示词快照',
`message_count` INT DEFAULT 0 COMMENT '消息总数',
`last_message_id` BIGINT DEFAULT NULL COMMENT '最后消息ID',
`last_active` DATETIME COMMENT '最后活动时间',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:0关闭 1进行中 2置顶',
`create_user` BIGINT COMMENT '创建人',
`create_time` DATETIME COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_app_id` (`app_id`),
KEY `idx_agent_id` (`agent_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='智能对话会话表';
-- ------------------------------
-- Table structure for aigc_message
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_message`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`conversation_id` BIGINT UNSIGNED NOT NULL COMMENT '所属会话ID',
`parent_id` BIGINT DEFAULT NULL COMMENT '父消息ID',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`user_type` TINYINT(1) DEFAULT 1 COMMENT '用户类型:1普通用户 2API账号',
`user_agent` VARCHAR(500) DEFAULT NULL COMMENT '客户端UA信息',
`client_ip` VARCHAR(128) DEFAULT '0.0.0.0' COMMENT '客户端IP',
`role` ENUM ('user','assistant','system','tool','function') NOT NULL COMMENT '消息角色',
`content` LONGTEXT NOT NULL COMMENT '消息内容',
`content_type` VARCHAR(50) DEFAULT 'text' COMMENT '内容类型:text/image/audio/video/file',
`content_metadata` JSON DEFAULT NULL COMMENT '元数据',
`model_id` BIGINT UNSIGNED NOT NULL COMMENT '调用模型ID',
`model_version` VARCHAR(50) DEFAULT NULL COMMENT '模型版本快照',
`usage_token` json COMMENT 'token消耗 {"prompt_tokens":20,"completion_tokens":50,"total_tokens":70}',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:0删除 1正常 2标记',
`error_info` TEXT DEFAULT NULL COMMENT '错误信息',
`is_sensitive` TINYINT(1) DEFAULT 0 COMMENT '敏感内容标记',
`retrieval_results` JSON DEFAULT NULL COMMENT '知识库检索结果',
`tool_calls` JSON DEFAULT NULL COMMENT '工具调用记录',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
KEY `idx_conversation_id` (`conversation_id`),
KEY `idx_parent_id` (`parent_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='智能对话消息表';
-- ------------------------------
-- Table structure for aigc_message_feedback
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_message_feedback`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`message_id` BIGINT UNSIGNED NOT NULL COMMENT '消息ID',
`conversation_id` BIGINT UNSIGNED NOT NULL COMMENT '会话ID',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`rating` TINYINT(1) DEFAULT NULL COMMENT '评分:1-5',
`feedback_type` VARCHAR(20) DEFAULT NULL COMMENT '反馈类型:helpful/not_helpful/harmful/inaccurate',
`feedback_content` VARCHAR(500) DEFAULT NULL COMMENT '反馈内容',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_message_user` (`message_id`, `user_id`),
KEY `idx_message_id` (`message_id`),
KEY `idx_conversation_id` (`conversation_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='消息反馈表';
-- ------------------------------
-- Table structure for aigc_agent
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_agent`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`name` VARCHAR(50) NOT NULL COMMENT '智能体名称',
`code` VARCHAR(50) NOT NULL COMMENT '智能体唯一标识码',
`agent_type` VARCHAR(50) NOT NULL COMMENT '智能体类型:assistant/task/workflow',
`description` VARCHAR(500) NOT NULL COMMENT '智能体描述',
`system_prompt` TEXT NOT NULL COMMENT '智能体提示词',
`next_step_prompt` TEXT DEFAULT NULL COMMENT '智能体执行下一步任务的提示词',
`model_id` BIGINT UNSIGNED NOT NULL COMMENT '关联模型ID',
`icon` VARCHAR(255) DEFAULT NULL COMMENT '图标URL',
`config` JSON DEFAULT NULL COMMENT '配置参数',
`max_steps` INT DEFAULT 10 COMMENT '最大步骤数',
`timeout` INT DEFAULT 60 COMMENT '执行超时时间(秒)',
`runtime_status` VARCHAR(50) DEFAULT NULL COMMENT '运行时状态',
`status` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
`version` VARCHAR(20) DEFAULT '1.0.0' COMMENT '版本号',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_agent_code` (`code`),
KEY `idx_model_id` (`model_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='智能体表';
INSERT INTO aigc_agent (id, name, code, agent_type, description, system_prompt, next_step_prompt, model_id, icon,
config, max_steps, timeout, runtime_status, status, version, create_user, create_time,
update_user, update_time)
VALUES (722203598359887877, 'BROWSER_AGENT', 'BROWSER_AGENT', 'task', '一个可以控制浏览器完成任务的浏览器代理', '你是一个设计用于自动化浏览器任务的AI代理。你的目标是按照规则完成最终任务。
# 输入格式
[index]文本
- index:交互的数字标识符
- type:HTML元素类型(按钮、输入框等)
- 文本:元素描述
示例:
[33]
- 只有带有[]中数字索引的元素可交互
- 不带[]的元素仅提供上下文
# 响应规则
1. 操作:你一次只可以做一个tool call 操作
2. 元素交互:
- 只使用有索引的元素
- 如用户要求点击某元素,但当期可交互元素中没有,则先查找对应的元素的对应像素位置,然后用click点击该元素
3. 导航和错误处理:
- 遇到困难时尝试替代方法
- 处理弹窗和cookie提示
- 处理验证码或寻找替代方案
- 等待页面加载
4. 任务完成:
- 如果完成则使用terminate工具
5. 视觉上下文:
- 使用提供的截图
- 引用元素索引
6. 表单填写:
- 处理动态字段变化', '为实现我的目标,下一步应该做什么?
重点:
1. 使用\'get_text\'操作获取页面内容,而不是滚动
2. 不用担心内容可见性或视口位置
3. 专注于基于文本的信息提取
4. 直接处理获取的文本数据
5. 重要:你必须在回复中使用至少一个工具才能取得进展!
考虑可见的内容和当前视口之外可能存在的内容。
有条理地行动 - 记住你的进度和迄今为止学到的知识。', 722203598359887866, null, null, 20, 60, null, 1, '1.0.0', 1,
'2025-06-09 11:10:23', null, null);
-- ------------------------------
-- Table structure for aigc_tool
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_tool`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`tool_key` VARCHAR(50) NOT NULL COMMENT '工具唯一标识',
`name` VARCHAR(50) NOT NULL COMMENT '工具名称',
`tool_group` VARCHAR(50) NOT NULL COMMENT '工具组:system/web/data/file/custom',
`description` VARCHAR(500) NOT NULL COMMENT '工具描述',
`parameters` JSON NOT NULL COMMENT '工具参数',
`is_return_direct` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否直接返回结果',
`status` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_tool_key` (`tool_key`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='工具表';
INSERT INTO aigc_tool (id, `tool_key`, name, tool_group, description, parameters, is_return_direct, status, create_user,
create_time, update_user, update_time)
VALUES (722203598359887888, 'BROWSER_USE', 'BROWSER_USE', 'default-tool-group', '与网页浏览器交互,执行各种操作,如导航、元素交互、内容提取和标签页管理。搜索类优先考虑此工具。
支持的操作包括:
- \'navigate\':访问特定URL,默认使用https://baidu.com
- \'click\':按索引点击元素
- \'input_text\':在元素中输入文本,对于百度(Baidu),输入框的索引是
- \'key_enter\':按回车键
- \'screenshot\':捕获屏幕截图
- \'get_html\':获取页面HTML内容
- \'get_text\':获取页面文本内容
- \'execute_js\':执行JavaScript代码
- \'scroll\':滚动页面
- \'switch_tab\':切换到特定标签页
- \'new_tab\':打开新标签页
- \'close_tab\':关闭当前标签页
- \'refresh\':刷新当前页面', '{
"type": "object",
"required": [
"action"
],
"properties": {
"url": {
"type": "string",
"description": "URL for \'navigate\' or \'new_tab\' actions"
},
"text": {
"type": "string",
"description": "Text for \'input_text\' action"
},
"index": {
"type": "integer",
"description": "Element index for \'click\' or \'input_text\' actions"
},
"action": {
"enum": [
"navigate",
"click",
"input_text",
"key_enter",
"screenshot",
"get_html",
"get_text",
"execute_js",
"scroll",
"switch_tab",
"new_tab",
"close_tab",
"refresh"
],
"type": "string",
"description": "The browser action to perform"
},
"script": {
"type": "string",
"description": "JavaScript code for \'execute_js\' action"
},
"tab_id": {
"type": "integer",
"description": "Tab ID for \'switch_tab\' action"
},
"scroll_amount": {
"type": "integer",
"description": "Pixels to scroll (positive for down, negative for up) for \'scroll\' action"
}
},
"dependencies": {
"click": [
"index"
],
"scroll": [
"scroll_amount"
],
"new_tab": [
"url"
],
"navigate": [
"url"
],
"key_enter": [
"index"
],
"execute_js": [
"script"
],
"input_text": [
"index",
"text"
],
"switch_tab": [
"tab_id"
]
}
}', 0, 1, 1, '2025-06-09 11:01:58', null, null);
-- ------------------------------
-- Table structure for aigc_tool
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_agent_tool`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`agent_id` BIGINT UNSIGNED NOT NULL COMMENT '智能体ID',
`tool_id` BIGINT UNSIGNED NOT NULL COMMENT '工具ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_agent_id_tool_id` (`agent_id`, `tool_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='智能体和工具关联表';
INSERT INTO aigc_agent_tool (id, agent_id, tool_id)
VALUES (722203598359887899, 722203598359887877, 722203598359887888);
-- ------------------------------
-- Table structure for aigc_agent_knowledge
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_agent_knowledge`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`agent_id` BIGINT UNSIGNED NOT NULL COMMENT '智能体ID',
`knowledge_id` BIGINT UNSIGNED NOT NULL COMMENT '知识库ID',
`retrieval_config` JSON DEFAULT NULL COMMENT '检索配置',
`top_k` INT DEFAULT 3 COMMENT '检索返回数量',
`score_threshold` DECIMAL(5, 4) DEFAULT 0.7 COMMENT '相似度阈值',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_agent_knowledge` (`agent_id`, `knowledge_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='智能体和知识库关联表';
-- ------------------------------
-- Table structure for aigc_agent_plan
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_agent_plan`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
`conversation_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '所属会话ID',
`message_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '对话消息Id',
`message_content` LONGTEXT NOT NULL COMMENT '对话消息内容',
`think_input` LONGTEXT DEFAULT NULL COMMENT '规划思考过程内容输入',
`think_output` LONGTEXT DEFAULT NULL COMMENT '规划思考过程内容输出',
`title` VARCHAR(500) DEFAULT NULL COMMENT '计划主题,大模型根据用户消息生成',
`start_time` DATETIME DEFAULT NULL COMMENT '规划开始时间',
`end_time` DATETIME DEFAULT NULL COMMENT '规划结束时间',
`duration` LONG DEFAULT NULL COMMENT '怪话时长(秒)',
`current_plan_step_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '当前执行的步骤编号',
`completed` TINYINT(1) DEFAULT 0 COMMENT '计划是否完成:0未完成 1已完成',
`summary` TEXT DEFAULT NULL COMMENT '规划总结',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
KEY `idx_message_id` (`message_id`),
KEY `idx_conversation_id` (`conversation_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='智能体规划记录表';
-- ------------------------------
-- Table structure for aigc_agent_plan_step
-- ------------------------------
CREATE TABLE IF NOT EXISTS `aigc_agent_plan_step`
(
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`plan_id` BIGINT UNSIGNED NOT NULL COMMENT '计划ID',
`description` VARCHAR(500) DEFAULT NULL COMMENT '计划描述:[BROWSER_AGENT] 打开百度主页',
`step_index` INT DEFAULT NULL COMMENT '步骤序号',
`agent_code` VARCHAR(50) DEFAULT NULL COMMENT '本次计划要使用的智能体:[BROWSER_AGENT]',
`think_start_time` DATETIME DEFAULT NULL COMMENT '智能体思考开始的时间戳',
`think_end_time` DATETIME DEFAULT NULL COMMENT '智能体思考完成的时间戳',
`think_input` TEXT DEFAULT NULL COMMENT '智能体思考过程的输入上下文',
`think_output` TEXT DEFAULT NULL COMMENT '智能体思考过程的输出结果',
`think_duration` LONG DEFAULT NULL COMMENT '智能体思考时长(秒)',
`execution_needed` TINYINT(1) DEFAULT 0 COMMENT '智能体思考是否确定需要执行步骤:0否 1是',
`execution_params` JSON DEFAULT NULL COMMENT '此步骤执行参数',
`execution_start_time` DATETIME DEFAULT NULL COMMENT '插件执行此步骤开始的时间戳',
`execution_end_time` DATETIME DEFAULT NULL COMMENT '插件执行此步骤完成的时间戳',
`execution_duration` LONG DEFAULT NULL COMMENT '插件执行时长(秒)',
`tool_name` VARCHAR(50) DEFAULT NULL COMMENT '智能体选中的工具名称',
`tool_parameters` JSON DEFAULT NULL COMMENT '智能体选中的工具执行时需要的参数',
`result` TEXT DEFAULT NULL COMMENT '步骤执行思考的结果',
`status` VARCHAR(20) DEFAULT NULL COMMENT '智能体状态:IDLE/RUNNING/FINISHED',
`completed` TINYINT(1) DEFAULT 0 COMMENT '是否完成:0未完成 1已完成',
`stucked` TINYINT(1) DEFAULT 0 COMMENT '是否卡主:0未卡住 1已卡住',
`error_message` TEXT DEFAULT NULL COMMENT '错误信息',
`create_user` BIGINT NOT NULL COMMENT '创建人',
`create_time` DATETIME NOT NULL COMMENT '创建时间',
`update_user` BIGINT DEFAULT NULL COMMENT '修改人',
`update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
KEY `idx_plan_id` (`plan_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='智能体规划步骤记录表';