main_table.sql 61 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097
  1. -- liquibase formatted sql
  2. -- changeset charles7c:1
  3. -- comment 初始化表结构
  4. CREATE TABLE IF NOT EXISTS `sys_menu`
  5. (
  6. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  7. `title` varchar(30) NOT NULL COMMENT '标题',
  8. `parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级菜单ID',
  9. `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:目录;2:菜单;3:按钮)',
  10. `path` varchar(255) DEFAULT NULL COMMENT '路由地址',
  11. `name` varchar(50) DEFAULT NULL COMMENT '组件名称',
  12. `component` varchar(255) DEFAULT NULL COMMENT '组件路径',
  13. `redirect` varchar(255) DEFAULT NULL COMMENT '重定向地址',
  14. `icon` varchar(50) DEFAULT NULL COMMENT '图标',
  15. `is_external` bit(1) DEFAULT b'0' COMMENT '是否外链',
  16. `is_cache` bit(1) DEFAULT b'0' COMMENT '是否缓存',
  17. `is_hidden` bit(1) DEFAULT b'0' COMMENT '是否隐藏',
  18. `permission` varchar(100) DEFAULT NULL COMMENT '权限标识',
  19. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  20. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  21. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  22. `create_time` datetime NOT NULL COMMENT '创建时间',
  23. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  24. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  25. PRIMARY KEY (`id`),
  26. UNIQUE INDEX `uk_title_parent_id` (`title`, `parent_id`),
  27. INDEX `idx_parent_id` (`parent_id`),
  28. INDEX `idx_create_user` (`create_user`),
  29. INDEX `idx_update_user` (`update_user`)
  30. ) ENGINE = InnoDB
  31. DEFAULT CHARSET = utf8mb4 COMMENT ='菜单表';
  32. CREATE TABLE IF NOT EXISTS `sys_dept`
  33. (
  34. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  35. `name` varchar(30) NOT NULL COMMENT '名称',
  36. `parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级部门ID',
  37. `ancestors` varchar(512) NOT NULL DEFAULT '' COMMENT '祖级列表',
  38. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  39. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  40. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  41. `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
  42. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  43. `create_time` datetime NOT NULL COMMENT '创建时间',
  44. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  45. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  46. PRIMARY KEY (`id`),
  47. UNIQUE INDEX `uk_name_parent_id` (`name`, `parent_id`),
  48. INDEX `idx_parent_id` (`parent_id`),
  49. INDEX `idx_create_user` (`create_user`),
  50. INDEX `idx_update_user` (`update_user`)
  51. ) ENGINE = InnoDB
  52. DEFAULT CHARSET = utf8mb4 COMMENT ='部门表';
  53. CREATE TABLE IF NOT EXISTS `sys_role`
  54. (
  55. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  56. `name` varchar(30) NOT NULL COMMENT '名称',
  57. `code` varchar(30) NOT NULL COMMENT '编码',
  58. `data_scope` tinyint(1) NOT NULL DEFAULT 4 COMMENT '数据权限(1:全部数据权限;2:本部门及以下数据权限;3:本部门数据权限;4:仅本人数据权限;5:自定义数据权限)',
  59. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  60. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  61. `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
  62. `menu_check_strictly` bit(1) DEFAULT b'1' COMMENT '菜单选择是否父子节点关联',
  63. `dept_check_strictly` bit(1) DEFAULT b'1' COMMENT '部门选择是否父子节点关联',
  64. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  65. `create_time` datetime NOT NULL COMMENT '创建时间',
  66. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  67. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  68. PRIMARY KEY (`id`),
  69. UNIQUE INDEX `uk_name` (`name`),
  70. UNIQUE INDEX `uk_code` (`code`),
  71. INDEX `idx_create_user` (`create_user`),
  72. INDEX `idx_update_user` (`update_user`)
  73. ) ENGINE = InnoDB
  74. DEFAULT CHARSET = utf8mb4 COMMENT ='角色表';
  75. CREATE TABLE IF NOT EXISTS `sys_user`
  76. (
  77. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  78. `username` varchar(64) NOT NULL COMMENT '用户名',
  79. `nickname` varchar(100) NOT NULL COMMENT '昵称',
  80. `password` varchar(255) DEFAULT NULL COMMENT '密码',
  81. `gender` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '性别(0:未知;1:男;2:女)',
  82. `email` varchar(255) DEFAULT NULL COMMENT '邮箱',
  83. `phone` varchar(255) DEFAULT NULL COMMENT '手机号码',
  84. `avatar` longtext DEFAULT NULL COMMENT '头像',
  85. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  86. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  87. `is_fron` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '是否为前台用户(0:否;1:是)',
  88. `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
  89. `pwd_reset_time` datetime DEFAULT NULL COMMENT '最后一次修改密码时间',
  90. `dept_id` bigint(20) COMMENT '部门ID',
  91. `create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
  92. `create_time` datetime NOT NULL COMMENT '创建时间',
  93. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  94. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  95. PRIMARY KEY (`id`),
  96. UNIQUE INDEX `uk_username` (`username`),
  97. UNIQUE INDEX `uk_email` (`email`),
  98. UNIQUE INDEX `uk_phone` (`phone`),
  99. INDEX `idx_dept_id` (`dept_id`),
  100. INDEX `idx_create_user` (`create_user`),
  101. INDEX `idx_update_user` (`update_user`)
  102. ) ENGINE = InnoDB
  103. DEFAULT CHARSET = utf8mb4 COMMENT ='用户表';
  104. CREATE TABLE IF NOT EXISTS `sys_user_password_history`
  105. (
  106. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  107. `user_id` bigint(20) NOT NULL COMMENT '用户ID',
  108. `password` varchar(255) NOT NULL COMMENT '密码',
  109. `create_time` datetime NOT NULL COMMENT '创建时间',
  110. PRIMARY KEY (`id`),
  111. INDEX `idx_user_id` (`user_id`)
  112. ) ENGINE = InnoDB
  113. DEFAULT CHARSET = utf8mb4 COMMENT ='用户历史密码表';
  114. CREATE TABLE IF NOT EXISTS `sys_user_social`
  115. (
  116. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  117. `source` varchar(255) NOT NULL COMMENT '来源',
  118. `open_id` varchar(255) NOT NULL COMMENT '开放ID',
  119. `user_id` bigint(20) NOT NULL COMMENT '用户ID',
  120. `meta_json` text DEFAULT NULL COMMENT '附加信息',
  121. `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
  122. `create_time` datetime NOT NULL COMMENT '创建时间',
  123. PRIMARY KEY (`id`),
  124. UNIQUE INDEX `uk_source_open_id` (`source`, `open_id`)
  125. ) ENGINE = InnoDB
  126. DEFAULT CHARSET = utf8mb4 COMMENT ='用户社会化关联表';
  127. CREATE TABLE IF NOT EXISTS `sys_user_role`
  128. (
  129. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  130. `user_id` bigint(20) NOT NULL COMMENT '用户ID',
  131. `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  132. PRIMARY KEY (`id`),
  133. UNIQUE INDEX `uk_user_id_role_id` (`user_id`, `role_id`)
  134. ) ENGINE = InnoDB
  135. DEFAULT CHARSET = utf8mb4 COMMENT ='用户和角色关联表';
  136. CREATE TABLE IF NOT EXISTS `sys_role_menu`
  137. (
  138. `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  139. `menu_id` bigint(20) NOT NULL COMMENT '菜单ID',
  140. PRIMARY KEY (`role_id`, `menu_id`)
  141. ) ENGINE = InnoDB
  142. DEFAULT CHARSET = utf8mb4 COMMENT ='角色和菜单关联表';
  143. CREATE TABLE IF NOT EXISTS `sys_role_dept`
  144. (
  145. `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  146. `dept_id` bigint(20) NOT NULL COMMENT '部门ID',
  147. PRIMARY KEY (`role_id`, `dept_id`)
  148. ) ENGINE = InnoDB
  149. DEFAULT CHARSET = utf8mb4 COMMENT ='角色和部门关联表';
  150. CREATE TABLE IF NOT EXISTS `sys_option`
  151. (
  152. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  153. `category` varchar(50) NOT NULL COMMENT '类别',
  154. `name` varchar(50) NOT NULL COMMENT '名称',
  155. `code` varchar(100) NOT NULL COMMENT '键',
  156. `value` longtext DEFAULT NULL COMMENT '值',
  157. `default_value` longtext DEFAULT NULL COMMENT '默认值',
  158. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  159. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  160. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  161. PRIMARY KEY (`id`),
  162. UNIQUE INDEX `uk_category_code` (`category`, `code`)
  163. ) ENGINE = InnoDB
  164. DEFAULT CHARSET = utf8mb4 COMMENT ='参数表';
  165. CREATE TABLE IF NOT EXISTS `sys_dict`
  166. (
  167. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  168. `name` varchar(30) NOT NULL COMMENT '名称',
  169. `code` varchar(30) NOT NULL COMMENT '编码',
  170. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  171. `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
  172. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  173. `create_time` datetime NOT NULL COMMENT '创建时间',
  174. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  175. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  176. PRIMARY KEY (`id`),
  177. UNIQUE INDEX `uk_name` (`name`),
  178. UNIQUE INDEX `uk_code` (`code`)
  179. ) ENGINE = InnoDB
  180. DEFAULT CHARSET = utf8mb4 COMMENT ='字典表';
  181. CREATE TABLE IF NOT EXISTS `sys_dict_item`
  182. (
  183. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  184. `label` varchar(30) NOT NULL COMMENT '标签',
  185. `value` varchar(30) NOT NULL COMMENT '值',
  186. `color` varchar(30) DEFAULT NULL COMMENT '标签颜色',
  187. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  188. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  189. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  190. `dict_id` bigint(20) NOT NULL COMMENT '字典ID',
  191. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  192. `create_time` datetime NOT NULL COMMENT '创建时间',
  193. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  194. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  195. PRIMARY KEY (`id`),
  196. UNIQUE INDEX `uk_value_dict_id` (`value`, `dict_id`),
  197. INDEX `idx_dict_id` (`dict_id`),
  198. INDEX `idx_create_user` (`create_user`),
  199. INDEX `idx_update_user` (`update_user`)
  200. ) ENGINE = InnoDB
  201. DEFAULT CHARSET = utf8mb4 COMMENT ='字典项表';
  202. CREATE TABLE IF NOT EXISTS `sys_log`
  203. (
  204. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  205. `trace_id` varchar(255) DEFAULT NULL COMMENT '链路ID',
  206. `description` varchar(255) NOT NULL COMMENT '日志描述',
  207. `module` varchar(100) NOT NULL COMMENT '所属模块',
  208. `request_url` varchar(512) NOT NULL COMMENT '请求URL',
  209. `request_method` varchar(10) NOT NULL COMMENT '请求方式',
  210. `request_headers` text DEFAULT NULL COMMENT '请求头',
  211. `request_body` text DEFAULT NULL COMMENT '请求体',
  212. `status_code` int NOT NULL COMMENT '状态码',
  213. `response_headers` text DEFAULT NULL COMMENT '响应头',
  214. `response_body` mediumtext DEFAULT NULL COMMENT '响应体',
  215. `time_taken` bigint(20) NOT NULL COMMENT '耗时(ms)',
  216. `ip` varchar(100) DEFAULT NULL COMMENT 'IP',
  217. `address` varchar(255) DEFAULT NULL COMMENT 'IP归属地',
  218. `browser` varchar(100) DEFAULT NULL COMMENT '浏览器',
  219. `os` varchar(100) DEFAULT NULL COMMENT '操作系统',
  220. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:成功;2:失败)',
  221. `error_msg` text DEFAULT NULL COMMENT '错误信息',
  222. `create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
  223. `create_time` datetime NOT NULL COMMENT '创建时间',
  224. PRIMARY KEY (`id`),
  225. INDEX `idx_module` (`module`),
  226. INDEX `idx_ip` (`ip`),
  227. INDEX `idx_address` (`address`),
  228. INDEX `idx_create_time` (`create_time`)
  229. ) ENGINE = InnoDB
  230. DEFAULT CHARSET = utf8mb4 COMMENT ='系统日志表';
  231. CREATE TABLE IF NOT EXISTS `sys_message`
  232. (
  233. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  234. `title` varchar(50) NOT NULL COMMENT '标题',
  235. `content` varchar(255) DEFAULT NULL COMMENT '内容',
  236. `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:系统消息)',
  237. `create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
  238. `create_time` datetime NOT NULL COMMENT '创建时间',
  239. PRIMARY KEY (`id`)
  240. ) ENGINE = InnoDB
  241. DEFAULT CHARSET = utf8mb4 COMMENT ='消息表';
  242. CREATE TABLE IF NOT EXISTS `sys_message_user`
  243. (
  244. `message_id` bigint(20) NOT NULL COMMENT '消息ID',
  245. `user_id` bigint(11) NOT NULL COMMENT '用户ID',
  246. `is_read` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已读',
  247. `read_time` datetime DEFAULT NULL COMMENT '读取时间',
  248. PRIMARY KEY (`message_id`, `user_id`)
  249. ) ENGINE = InnoDB
  250. DEFAULT CHARSET = utf8mb4 COMMENT ='消息和用户关联表';
  251. CREATE TABLE IF NOT EXISTS `sys_notice`
  252. (
  253. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  254. `title` varchar(150) NOT NULL COMMENT '标题',
  255. `content` mediumtext NOT NULL COMMENT '内容',
  256. `type` varchar(30) NOT NULL COMMENT '类型',
  257. `effective_time` datetime DEFAULT NULL COMMENT '生效时间',
  258. `terminate_time` datetime DEFAULT NULL COMMENT '终止时间',
  259. `notice_scope` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '通知范围(1:所有人;2:指定用户)',
  260. `notice_users` json DEFAULT NULL COMMENT '通知用户',
  261. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  262. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  263. `create_time` datetime NOT NULL COMMENT '创建时间',
  264. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  265. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  266. PRIMARY KEY (`id`),
  267. INDEX `idx_create_user` (`create_user`),
  268. INDEX `idx_update_user` (`update_user`)
  269. ) ENGINE = InnoDB
  270. DEFAULT CHARSET = utf8mb4 COMMENT ='公告表';
  271. CREATE TABLE IF NOT EXISTS `sys_storage`
  272. (
  273. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  274. `name` varchar(100) NOT NULL COMMENT '名称',
  275. `code` varchar(30) NOT NULL COMMENT '编码',
  276. `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:本地存储;2:对象存储)',
  277. `access_key` varchar(255) DEFAULT NULL COMMENT 'Access Key',
  278. `secret_key` varchar(255) DEFAULT NULL COMMENT 'Secret Key',
  279. `endpoint` varchar(255) DEFAULT NULL COMMENT 'Endpoint',
  280. `bucket_name` varchar(255) NOT NULL COMMENT 'Bucket',
  281. `domain` varchar(255) DEFAULT NULL COMMENT '域名',
  282. `description` varchar(200) DEFAULT NULL COMMENT '描述',
  283. `is_default` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为默认存储',
  284. `sort` int NOT NULL DEFAULT 999 COMMENT '排序',
  285. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  286. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  287. `create_time` datetime NOT NULL COMMENT '创建时间',
  288. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  289. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  290. PRIMARY KEY (`id`),
  291. UNIQUE INDEX `uk_code` (`code`),
  292. INDEX `idx_create_user` (`create_user`),
  293. INDEX `idx_update_user` (`update_user`)
  294. ) ENGINE = InnoDB
  295. DEFAULT CHARSET = utf8mb4 COMMENT ='存储表';
  296. CREATE TABLE IF NOT EXISTS `sys_file`
  297. (
  298. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  299. `name` varchar(255) NOT NULL COMMENT '名称',
  300. `original_name` varchar(255) NOT NULL COMMENT '原始名称',
  301. `size` bigint(20) DEFAULT NULL COMMENT '大小(字节)',
  302. `parent_path` varchar(512) NOT NULL DEFAULT '/' COMMENT '上级目录',
  303. `path` varchar(512) NOT NULL COMMENT '路径',
  304. `extension` varchar(32) DEFAULT NULL COMMENT '扩展名',
  305. `content_type` varchar(255) DEFAULT NULL COMMENT '内容类型',
  306. `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(0: 目录;1:其他;2:图片;3:文档;4:视频;5:音频)',
  307. `sha256` varchar(256) DEFAULT NULL COMMENT 'SHA256值',
  308. `metadata` text DEFAULT NULL COMMENT '元数据',
  309. `thumbnail_name` varchar(255) DEFAULT NULL COMMENT '缩略图名称',
  310. `thumbnail_size` bigint(20) DEFAULT NULL COMMENT '缩略图大小(字节)',
  311. `thumbnail_metadata` text DEFAULT NULL COMMENT '缩略图元数据',
  312. `storage_id` bigint(20) NOT NULL COMMENT '存储ID',
  313. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  314. `create_time` datetime NOT NULL COMMENT '创建时间',
  315. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  316. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  317. PRIMARY KEY (`id`),
  318. INDEX `idx_type` (`type`),
  319. INDEX `idx_sha256` (`sha256`),
  320. INDEX `idx_storage_id` (`storage_id`),
  321. INDEX `idx_create_user` (`create_user`)
  322. ) ENGINE = InnoDB
  323. DEFAULT CHARSET = utf8mb4 COMMENT ='文件表';
  324. CREATE TABLE IF NOT EXISTS `sys_client`
  325. (
  326. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  327. `client_id` varchar(50) NOT NULL COMMENT '客户端ID',
  328. `client_type` varchar(50) NOT NULL COMMENT '客户端类型',
  329. `auth_type` json NOT NULL COMMENT '认证类型',
  330. `active_timeout` bigint(20) DEFAULT -1 COMMENT 'Token最低活跃频率(单位:秒,-1:不限制,永不冻结)',
  331. `timeout` bigint(20) DEFAULT 2592000 COMMENT 'Token有效期(单位:秒,-1:永不过期)',
  332. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  333. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  334. `create_time` datetime NOT NULL COMMENT '创建时间',
  335. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  336. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  337. PRIMARY KEY (`id`),
  338. UNIQUE INDEX `uk_client_id` (`client_id`),
  339. INDEX `idx_create_user` (`create_user`),
  340. INDEX `idx_update_user` (`update_user`)
  341. ) ENGINE = InnoDB
  342. DEFAULT CHARSET = utf8mb4 COMMENT ='客户端表';
  343. CREATE TABLE IF NOT EXISTS `sys_sms_config`
  344. (
  345. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  346. `name` varchar(100) NOT NULL COMMENT '名称',
  347. `supplier` varchar(50) NOT NULL COMMENT '厂商',
  348. `access_key` varchar(255) NOT NULL COMMENT 'Access Key',
  349. `secret_key` varchar(255) NOT NULL COMMENT 'Secret Key',
  350. `signature` varchar(100) DEFAULT NULL COMMENT '短信签名',
  351. `template_id` varchar(50) DEFAULT NULL COMMENT '模板ID',
  352. `weight` int DEFAULT NULL COMMENT '负载均衡权重',
  353. `retry_interval` int DEFAULT NULL COMMENT '重试间隔(单位:秒)',
  354. `max_retries` int DEFAULT NULL COMMENT '重试次数',
  355. `maximum` int DEFAULT NULL COMMENT '发送上限',
  356. `supplier_config` text DEFAULT NULL COMMENT '各个厂商独立配置',
  357. `is_default` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为默认配置',
  358. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  359. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  360. `create_time` datetime NOT NULL COMMENT '创建时间',
  361. `update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
  362. `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  363. PRIMARY KEY (`id`),
  364. INDEX `idx_create_user` (`create_user`),
  365. INDEX `idx_update_user` (`update_user`)
  366. ) ENGINE = InnoDB
  367. DEFAULT CHARSET = utf8mb4 COMMENT ='短信配置表';
  368. CREATE TABLE IF NOT EXISTS `sys_sms_log`
  369. (
  370. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  371. `config_id` bigint(20) NOT NULL COMMENT '配置ID',
  372. `phone` varchar(25) NOT NULL COMMENT '手机号',
  373. `params` text DEFAULT NULL COMMENT '参数配置',
  374. `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '发送状态(1:成功;2:失败)',
  375. `res_msg` text DEFAULT NULL COMMENT '返回数据',
  376. `create_user` bigint(20) NOT NULL COMMENT '创建人',
  377. `create_time` datetime NOT NULL COMMENT '创建时间',
  378. PRIMARY KEY (`id`),
  379. INDEX `idx_config_id` (`config_id`),
  380. INDEX `idx_create_user` (`create_user`)
  381. ) ENGINE = InnoDB
  382. DEFAULT CHARSET = utf8mb4 COMMENT ='短信日志表';
  383. -- -------------------------------------------------------------------------------------------------------------
  384. -- ------------------------------
  385. -- Table structure for aigc_model
  386. -- ------------------------------
  387. CREATE TABLE IF NOT EXISTS `aigc_model`
  388. (
  389. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  390. `type` VARCHAR(100) NOT NULL COMMENT '模型类型:Chat/Embedding/Image/Video/Audio',
  391. `model` VARCHAR(100) NOT NULL COMMENT '官方模型名称',
  392. `version` VARCHAR(50) DEFAULT NULL COMMENT '模型版本号',
  393. `provider` VARCHAR(100) NOT NULL COMMENT '服务商',
  394. `name` VARCHAR(100) NOT NULL COMMENT '自定义模型别名',
  395. `description` VARCHAR(500) DEFAULT NULL COMMENT '模型描述',
  396. `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0停用 1启用',
  397. `response_limit` INT DEFAULT 4096 COMMENT '最大响应长度',
  398. `max_tokens` INT DEFAULT 4096 COMMENT '上下文最大token数',
  399. `temperature` DOUBLE DEFAULT 0.7 COMMENT '随机性控制',
  400. `top_p` DOUBLE DEFAULT 1.0 COMMENT '核心采样概率',
  401. -- 服务商特定参数
  402. `azure_deployment_name` varchar(100) DEFAULT NULL COMMENT 'Azure部署名称',
  403. `gemini_project` varchar(100) DEFAULT NULL COMMENT 'Google Cloud项目ID',
  404. `gemini_location` varchar(100) DEFAULT NULL COMMENT 'Google Cloud服务区域',
  405. -- 图片生成参数
  406. `image_size` varchar(50) DEFAULT '1024x1024' COMMENT '图片尺寸(支持1024x1024/1792x1024等)',
  407. `image_quality` varchar(50) DEFAULT 'standard' COMMENT '图片质量:standard/hd',
  408. `image_style` varchar(50) DEFAULT 'vivid' COMMENT '图片风格:vivid/natural',
  409. `timeout` INT DEFAULT 30 COMMENT 'API超时时间(秒)',
  410. `retry_strategy` VARCHAR(50) DEFAULT 'linear' COMMENT '重试策略',
  411. `rate_limit` INT DEFAULT 1000 COMMENT '每分钟最大请求数',
  412. `create_user` BIGINT NOT NULL COMMENT '创建人',
  413. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  414. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  415. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  416. PRIMARY KEY (`id`),
  417. UNIQUE KEY `uniq_model_provider` (`model`, `provider`)
  418. ) ENGINE = InnoDB
  419. DEFAULT CHARSET = utf8mb4 COMMENT ='AIGC模型配置表';
  420. -- ------------------------------
  421. -- Table structure for aigc_model_secret
  422. -- ------------------------------
  423. CREATE TABLE IF NOT EXISTS `aigc_model_secret`
  424. (
  425. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  426. `model_id` BIGINT UNSIGNED NOT NULL COMMENT '关联模型ID',
  427. `api_key` VARCHAR(255) DEFAULT NULL COMMENT 'API密钥',
  428. `secret_key` VARCHAR(255) DEFAULT NULL COMMENT '密钥',
  429. `base_url` VARCHAR(255) DEFAULT NULL COMMENT '基础URL',
  430. `api_version` VARCHAR(50) DEFAULT NULL COMMENT 'API版本',
  431. `dimension` INT COMMENT '向量维数',
  432. `create_user` BIGINT NOT NULL COMMENT '创建人',
  433. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  434. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  435. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  436. PRIMARY KEY (`id`),
  437. UNIQUE KEY `uniq_model_id` (`model_id`)
  438. ) ENGINE = InnoDB
  439. DEFAULT CHARSET = utf8mb4 COMMENT ='模型安全配置表';
  440. -- ------------------------------
  441. -- Table structure for aigc_knowledge
  442. -- ------------------------------
  443. CREATE TABLE IF NOT EXISTS `aigc_knowledge`
  444. (
  445. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  446. `name` VARCHAR(100) NOT NULL COMMENT '知识库名称(唯一)',
  447. `type` VARCHAR(50) DEFAULT 'document' COMMENT '类型:document/image/audio/video/multi',
  448. `file_type` VARCHAR(100) DEFAULT '*' COMMENT '允许的文件类型',
  449. `embed_config` JSON NOT NULL COMMENT '向量配置 {
  450. "store_type":"milvus",
  451. "collection":"default",
  452. "index_type":"HNSW",
  453. "dimension":768,
  454. "metadata_schema":{
  455. "author":"string",
  456. "publish_date":"date"
  457. }
  458. }',
  459. `embed_model_id` BIGINT UNSIGNED NOT NULL COMMENT '关联向量模型ID',
  460. `embed_store_id` BIGINT UNSIGNED NOT NULL COMMENT '关联向量存储ID',
  461. `chunk_strategy` VARCHAR(50) DEFAULT 'fixed' COMMENT '切片策略:fixed/semantic/hybrid',
  462. `chunk_size` INT DEFAULT 500 COMMENT '切片大小',
  463. `chunk_overlap` INT DEFAULT 50 COMMENT '切片重叠大小',
  464. `last_sync_time` DATETIME DEFAULT NULL COMMENT '最后向量化同步时间',
  465. `storage_size` BIGINT DEFAULT 0 COMMENT '知识库大小(字节)',
  466. `file_count` INT DEFAULT 0 COMMENT '包含文件数',
  467. `storage_config` JSON DEFAULT NULL COMMENT '存储参数 {
  468. "bucket":"aigc-kb",
  469. "region":"ap-northeast-1",
  470. "prefix":"/knowledge/"
  471. }',
  472. `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0停用 1启用 2同步中',
  473. `hit_count` BIGINT DEFAULT 0 COMMENT '被检索次数',
  474. `avg_relevance` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '平均检索相关度',
  475. `know_describe` VARCHAR(500) NOT NULL COMMENT '文档描述',
  476. `create_user` BIGINT NOT NULL COMMENT '创建人',
  477. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  478. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  479. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  480. PRIMARY KEY (`id`),
  481. UNIQUE KEY `uniq_kb_name` (`name`),
  482. KEY `idx_embed_model` (`embed_model_id`),
  483. KEY `idx_embed_store` (`embed_store_id`)
  484. ) ENGINE = InnoDB
  485. DEFAULT CHARSET = utf8mb4 COMMENT ='AIGC知识库表';
  486. -- ------------------------------
  487. -- Table structure for aigc_doc
  488. -- ------------------------------
  489. CREATE TABLE IF NOT EXISTS `aigc_doc`
  490. (
  491. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  492. `knowledge_id` BIGINT UNSIGNED NOT NULL COMMENT '所属知识库ID',
  493. `name` VARCHAR(255) NOT NULL COMMENT '文档名称',
  494. `file_type` VARCHAR(20) NOT NULL COMMENT '文件类型',
  495. `mime_type` VARCHAR(100) DEFAULT NULL COMMENT 'MIME类型',
  496. `file_encoding` VARCHAR(50) DEFAULT 'UTF-8' COMMENT '文件编码',
  497. `file_hash` CHAR(64) COMMENT '文件哈希',
  498. `file_size` BIGINT DEFAULT 0 COMMENT '文件大小',
  499. `storage_path` VARCHAR(512) NOT NULL COMMENT '存储路径',
  500. `storage_region` VARCHAR(50) DEFAULT 'default' COMMENT '存储区域',
  501. `parsed_content` LONGTEXT DEFAULT NULL COMMENT '解析后文本',
  502. `original_content` longblob DEFAULT NULL COMMENT '原始文件内容',
  503. `metadata` JSON DEFAULT NULL COMMENT '元数据 {
  504. "author": "张三",
  505. "pages": 42,
  506. "language": "zh",
  507. "created_time": "2023-01-01"
  508. }',
  509. `processing_status` VARCHAR(20) DEFAULT 'uploaded' COMMENT '处理状态:uploaded/parsing/parsed/failed',
  510. `chunk_config` JSON DEFAULT NULL COMMENT '切片配置 {
  511. "strategy":"auto",
  512. "chunk_size":1000,
  513. "overlap":50
  514. }',
  515. `chunk_details` JSON DEFAULT NULL COMMENT '切片详情 [
  516. {"id":1,"content":"...","vectors":32},
  517. {"id":2,"content":"...","vectors":28}
  518. ]',
  519. `vector_status` VARCHAR(20) DEFAULT 'pending' COMMENT '向量化状态:pending/processing/completed/failed',
  520. `error_log` TEXT DEFAULT NULL COMMENT '错误日志',
  521. `retry_count` INT DEFAULT 0 COMMENT '重试次数',
  522. `slice_num` INT DEFAULT 0 COMMENT '重试次数',
  523. `is_sensitive` TINYINT(1) DEFAULT 0 COMMENT '敏感内容标记',
  524. `version` INT DEFAULT 1 COMMENT '文档版本',
  525. `create_user` BIGINT NOT NULL COMMENT '创建人',
  526. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  527. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  528. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  529. PRIMARY KEY (`id`),
  530. UNIQUE KEY `uniq_file_hash` (`file_hash`),
  531. KEY `idx_knowledge_status` (`knowledge_id`, `processing_status`)
  532. ) ENGINE = InnoDB
  533. DEFAULT CHARSET = utf8mb4 COMMENT ='智能文档表';
  534. -- ------------------------------
  535. -- Table structure for aigc_doc_chunk
  536. -- ------------------------------
  537. CREATE TABLE IF NOT EXISTS `aigc_doc_chunk`
  538. (
  539. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  540. `embed_store_id` VARCHAR(100) COMMENT '向量库的ID',
  541. `name` VARCHAR(255) COMMENT '文档名称',
  542. `doc_id` BIGINT COMMENT '文档ID',
  543. `knowledge_id` BIGINT COMMENT '知识库ID',
  544. `chunk_index` INT COMMENT '切片索引',
  545. `content` TEXT COMMENT '切片内容',
  546. `word_num` INT DEFAULT NULL COMMENT '字符数',
  547. `metadata` JSON DEFAULT NULL COMMENT '元数据',
  548. `embedding` JSON DEFAULT NULL COMMENT '向量数据(可选存储)',
  549. `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0无效 1有效',
  550. `relevance_score` DECIMAL(5, 4) DEFAULT NULL COMMENT '相关性分数',
  551. `create_user` BIGINT NOT NULL COMMENT '创建人',
  552. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  553. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  554. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  555. `vector` json DEFAULT NULL COMMENT '向量嵌入(float数组)',
  556. PRIMARY KEY (`id`),
  557. KEY `idx_embed_store_id` (`embed_store_id`),
  558. KEY `idx_doc_id` (`doc_id`),
  559. KEY `idx_knowledge_id` (`knowledge_id`)
  560. ) ENGINE = InnoDB
  561. DEFAULT CHARSET = utf8mb4 COMMENT ='文档切片表';
  562. -- ------------------------------
  563. -- Table structure for aigc_embed_store
  564. -- ------------------------------
  565. CREATE TABLE IF NOT EXISTS `aigc_embed_store`
  566. (
  567. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  568. `name` VARCHAR(100) NOT NULL COMMENT '存储配置名称(唯一)',
  569. `provider` VARCHAR(50) NOT NULL COMMENT '供应商:milvus/pinecone/qdrant/pgvector/faiss',
  570. `endpoints` JSON NOT NULL COMMENT '连接端点 {"host":"192.168.1.10","port":19530}',
  571. `auth_config` JSON NOT NULL COMMENT '认证配置 {
  572. "username":"admin",
  573. "password":"****"
  574. }',
  575. `database_config` JSON NOT NULL COMMENT '数据库配置 {
  576. "database":"admin",
  577. "table":"****"
  578. }',
  579. `vector_config` JSON NOT NULL COMMENT '向量配置 {
  580. "dimension":768,
  581. "metric_type":"L2",
  582. "index_type":"HNSW",
  583. "max_conn":16
  584. }',
  585. `pool_config` JSON DEFAULT NULL COMMENT '连接池配置 {
  586. "max_conn":50,
  587. "timeout":5000,
  588. "retry_policy":"exponential"
  589. }',
  590. `proxy_config` JSON DEFAULT NULL COMMENT '代理配置 {
  591. "proxy_host":"gateway.example.com",
  592. "proxy_port":443,
  593. "proxy_type":"https"
  594. }',
  595. `last_health` DATETIME DEFAULT NULL COMMENT '最后健康检查时间',
  596. `health_status` TINYINT(1) DEFAULT 0 COMMENT '健康状态:0异常 1正常',
  597. `vector_count` BIGINT DEFAULT 0 COMMENT '向量数量',
  598. `storage_usage` BIGINT DEFAULT 0 COMMENT '存储使用量(字节)',
  599. `create_user` BIGINT NOT NULL COMMENT '创建人',
  600. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  601. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  602. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  603. PRIMARY KEY (`id`),
  604. UNIQUE KEY `uniq_store_name` (`name`)
  605. ) ENGINE = InnoDB
  606. DEFAULT CHARSET = utf8mb4 COMMENT ='向量存储配置表';
  607. -- ------------------------------
  608. -- Table structure for aigc_app
  609. -- ------------------------------
  610. CREATE TABLE IF NOT EXISTS `aigc_app`
  611. (
  612. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  613. `model_id` BIGINT UNSIGNED NOT NULL COMMENT '绑定模型ID',
  614. `version` VARCHAR(20) DEFAULT '1.0.0' COMMENT '语义化版本号',
  615. `cover` VARCHAR(512) DEFAULT NULL COMMENT '封面图URL',
  616. `name` VARCHAR(100) NOT NULL COMMENT '应用名称(唯一)',
  617. `category` VARCHAR(50) DEFAULT '通用' COMMENT '应用分类',
  618. `tags` VARCHAR(200) DEFAULT NULL COMMENT '标签',
  619. `prompt` TEXT NOT NULL COMMENT '系统级提示词',
  620. `negative_prompt` TEXT DEFAULT NULL COMMENT '负面提示词',
  621. `context_window` INT DEFAULT 5 COMMENT '上下文记忆轮次',
  622. `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0下架 1发布 2审核中',
  623. `config` JSON DEFAULT NULL COMMENT '动态配置',
  624. `retention_days` INT DEFAULT 30 COMMENT '聊天记录保留天数',
  625. `invoke_count` BIGINT DEFAULT 0 COMMENT '调用次数统计',
  626. `avg_rating` DECIMAL(3, 2) DEFAULT 0.00 COMMENT '平均评分',
  627. `create_user` BIGINT NOT NULL COMMENT '创建人',
  628. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  629. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  630. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  631. PRIMARY KEY (`id`),
  632. UNIQUE KEY `uniq_app_name` (`name`),
  633. KEY `idx_category_status` (`category`, `status`)
  634. ) ENGINE = InnoDB
  635. DEFAULT CHARSET = utf8mb4 COMMENT ='AIGC应用配置表';
  636. -- ------------------------------
  637. -- Table structure for aigc_app_knowledge
  638. -- ------------------------------
  639. CREATE TABLE IF NOT EXISTS `aigc_app_knowledge`
  640. (
  641. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  642. `app_id` BIGINT UNSIGNED NOT NULL COMMENT '应用ID',
  643. `knowledge_id` BIGINT UNSIGNED NOT NULL COMMENT '知识库ID',
  644. `retrieval_config` JSON DEFAULT NULL COMMENT '检索配置',
  645. `top_k` INT DEFAULT 3 COMMENT '检索返回数量',
  646. `score_threshold` DECIMAL(5, 4) DEFAULT 0.7 COMMENT '相似度阈值',
  647. `create_user` BIGINT NOT NULL COMMENT '创建人',
  648. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  649. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  650. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  651. PRIMARY KEY (`id`),
  652. UNIQUE KEY `uk_app_knowledge` (`app_id`, `knowledge_id`)
  653. ) ENGINE = InnoDB
  654. DEFAULT CHARSET = utf8mb4 COMMENT ='应用和知识库关联表';
  655. -- ------------------------------
  656. -- Table structure for aigc_app_api
  657. -- ------------------------------
  658. CREATE TABLE IF NOT EXISTS `aigc_app_api`
  659. (
  660. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  661. `app_id` BIGINT UNSIGNED NOT NULL COMMENT '关联应用ID',
  662. `channel` VARCHAR(50) NOT NULL COMMENT '渠道类型:web/mobile/api/sdk',
  663. `api_key` VARCHAR(255) NOT NULL COMMENT 'API密钥',
  664. `secret_key` VARCHAR(255) DEFAULT NULL COMMENT 'API密钥(双密钥)',
  665. `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0停用 1启用 2限流',
  666. `expire_time` DATETIME DEFAULT NULL COMMENT '过期时间',
  667. `ip_whitelist` VARCHAR(1000) DEFAULT '0.0.0.0' COMMENT 'IP白名单',
  668. `rate_limit` INT DEFAULT 1000 COMMENT '每分钟最大请求数',
  669. `scopes` VARCHAR(500) DEFAULT 'all' COMMENT '权限范围',
  670. `model_whitelist` VARCHAR(500) DEFAULT NULL COMMENT '允许访问的模型ID列表',
  671. `total_calls` BIGINT DEFAULT 0 COMMENT '总调用次数',
  672. `last_used_time` DATETIME DEFAULT NULL COMMENT '最后调用时间',
  673. `create_user` BIGINT NOT NULL COMMENT '创建人',
  674. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  675. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  676. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  677. PRIMARY KEY (`id`)
  678. ) ENGINE = InnoDB
  679. DEFAULT CHARSET = utf8mb4 COMMENT ='应用API密钥表';
  680. -- ------------------------------
  681. -- Table structure for aigc_conversation
  682. -- ------------------------------
  683. CREATE TABLE IF NOT EXISTS `aigc_conversation`
  684. (
  685. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  686. `user_id` BIGINT COMMENT '所属用户ID',
  687. `app_id` BIGINT COMMENT '关联应用ID',
  688. `agent_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联智能体ID',
  689. `model_id` BIGINT COMMENT '使用模型ID',
  690. `title` VARCHAR(200) COMMENT '对话标题',
  691. `summary` VARCHAR(500) DEFAULT NULL COMMENT '对话摘要',
  692. `initial_prompt` TEXT DEFAULT NULL COMMENT '对话初始提示词快照',
  693. `message_count` INT DEFAULT 0 COMMENT '消息总数',
  694. `last_message_id` BIGINT DEFAULT NULL COMMENT '最后消息ID',
  695. `last_active` DATETIME COMMENT '最后活动时间',
  696. `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0关闭 1进行中 2置顶',
  697. `create_user` BIGINT COMMENT '创建人',
  698. `create_time` DATETIME COMMENT '创建时间',
  699. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  700. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  701. PRIMARY KEY (`id`),
  702. KEY `idx_user_id` (`user_id`),
  703. KEY `idx_app_id` (`app_id`),
  704. KEY `idx_agent_id` (`agent_id`)
  705. ) ENGINE = InnoDB
  706. DEFAULT CHARSET = utf8mb4 COMMENT ='智能对话会话表';
  707. -- ------------------------------
  708. -- Table structure for aigc_message
  709. -- ------------------------------
  710. CREATE TABLE IF NOT EXISTS `aigc_message`
  711. (
  712. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  713. `conversation_id` BIGINT UNSIGNED NOT NULL COMMENT '所属会话ID',
  714. `parent_id` BIGINT DEFAULT NULL COMMENT '父消息ID',
  715. `user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
  716. `user_type` TINYINT(1) DEFAULT 1 COMMENT '用户类型:1普通用户 2API账号',
  717. `user_agent` VARCHAR(500) DEFAULT NULL COMMENT '客户端UA信息',
  718. `client_ip` VARCHAR(128) DEFAULT '0.0.0.0' COMMENT '客户端IP',
  719. `role` ENUM ('user','assistant','system','tool','function') NOT NULL COMMENT '消息角色',
  720. `content` LONGTEXT NOT NULL COMMENT '消息内容',
  721. `content_type` VARCHAR(50) DEFAULT 'text' COMMENT '内容类型:text/image/audio/video/file',
  722. `content_metadata` JSON DEFAULT NULL COMMENT '元数据',
  723. `model_id` BIGINT UNSIGNED NOT NULL COMMENT '调用模型ID',
  724. `model_version` VARCHAR(50) DEFAULT NULL COMMENT '模型版本快照',
  725. `usage_token` json COMMENT 'token消耗 {"prompt_tokens":20,"completion_tokens":50,"total_tokens":70}',
  726. `status` TINYINT(1) DEFAULT 1 COMMENT '状态:0删除 1正常 2标记',
  727. `error_info` TEXT DEFAULT NULL COMMENT '错误信息',
  728. `is_sensitive` TINYINT(1) DEFAULT 0 COMMENT '敏感内容标记',
  729. `retrieval_results` JSON DEFAULT NULL COMMENT '知识库检索结果',
  730. `tool_calls` JSON DEFAULT NULL COMMENT '工具调用记录',
  731. `create_user` BIGINT NOT NULL COMMENT '创建人',
  732. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  733. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  734. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  735. PRIMARY KEY (`id`),
  736. KEY `idx_conversation_id` (`conversation_id`),
  737. KEY `idx_parent_id` (`parent_id`)
  738. ) ENGINE = InnoDB
  739. DEFAULT CHARSET = utf8mb4 COMMENT ='智能对话消息表';
  740. -- ------------------------------
  741. -- Table structure for aigc_message_feedback
  742. -- ------------------------------
  743. CREATE TABLE IF NOT EXISTS `aigc_message_feedback`
  744. (
  745. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  746. `message_id` BIGINT UNSIGNED NOT NULL COMMENT '消息ID',
  747. `conversation_id` BIGINT UNSIGNED NOT NULL COMMENT '会话ID',
  748. `user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
  749. `rating` TINYINT(1) DEFAULT NULL COMMENT '评分:1-5',
  750. `feedback_type` VARCHAR(20) DEFAULT NULL COMMENT '反馈类型:helpful/not_helpful/harmful/inaccurate',
  751. `feedback_content` VARCHAR(500) DEFAULT NULL COMMENT '反馈内容',
  752. `create_user` BIGINT NOT NULL COMMENT '创建人',
  753. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  754. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  755. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  756. PRIMARY KEY (`id`),
  757. UNIQUE KEY `uniq_message_user` (`message_id`, `user_id`),
  758. KEY `idx_message_id` (`message_id`),
  759. KEY `idx_conversation_id` (`conversation_id`)
  760. ) ENGINE = InnoDB
  761. DEFAULT CHARSET = utf8mb4 COMMENT ='消息反馈表';
  762. -- ------------------------------
  763. -- Table structure for aigc_agent
  764. -- ------------------------------
  765. CREATE TABLE IF NOT EXISTS `aigc_agent`
  766. (
  767. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  768. `name` VARCHAR(50) NOT NULL COMMENT '智能体名称',
  769. `code` VARCHAR(50) NOT NULL COMMENT '智能体唯一标识码',
  770. `agent_type` VARCHAR(50) NOT NULL COMMENT '智能体类型:assistant/task/workflow',
  771. `description` VARCHAR(500) NOT NULL COMMENT '智能体描述',
  772. `system_prompt` TEXT NOT NULL COMMENT '智能体提示词',
  773. `next_step_prompt` TEXT DEFAULT NULL COMMENT '智能体执行下一步任务的提示词',
  774. `model_id` BIGINT UNSIGNED NOT NULL COMMENT '关联模型ID',
  775. `icon` VARCHAR(255) DEFAULT NULL COMMENT '图标URL',
  776. `config` JSON DEFAULT NULL COMMENT '配置参数',
  777. `max_steps` INT DEFAULT 10 COMMENT '最大步骤数',
  778. `timeout` INT DEFAULT 60 COMMENT '执行超时时间(秒)',
  779. `runtime_status` VARCHAR(50) DEFAULT NULL COMMENT '运行时状态',
  780. `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  781. `version` VARCHAR(20) DEFAULT '1.0.0' COMMENT '版本号',
  782. `create_user` BIGINT NOT NULL COMMENT '创建人',
  783. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  784. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  785. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  786. PRIMARY KEY (`id`),
  787. UNIQUE KEY `uniq_agent_code` (`code`),
  788. KEY `idx_model_id` (`model_id`)
  789. ) ENGINE = InnoDB
  790. DEFAULT CHARSET = utf8mb4 COMMENT ='智能体表';
  791. INSERT INTO aigc_agent (id, name, code, agent_type, description, system_prompt, next_step_prompt, model_id, icon,
  792. config, max_steps, timeout, runtime_status, status, version, create_user, create_time,
  793. update_user, update_time)
  794. VALUES (722203598359887877, 'BROWSER_AGENT', 'BROWSER_AGENT', 'task', '一个可以控制浏览器完成任务的浏览器代理', '你是一个设计用于自动化浏览器任务的AI代理。你的目标是按照规则完成最终任务。
  795. # 输入格式
  796. [index]<type>文本</type>
  797. - index:交互的数字标识符
  798. - type:HTML元素类型(按钮、输入框等)
  799. - 文本:元素描述
  800. 示例:
  801. [33]<button>提交表单</button>
  802. - 只有带有[]中数字索引的元素可交互
  803. - 不带[]的元素仅提供上下文
  804. # 响应规则
  805. 1. 操作:你一次只可以做一个tool call 操作
  806. 2. 元素交互:
  807. - 只使用有索引的元素
  808. - 如用户要求点击某元素,但当期可交互元素中没有,则先查找对应的元素的对应像素位置,然后用click点击该元素
  809. 3. 导航和错误处理:
  810. - 遇到困难时尝试替代方法
  811. - 处理弹窗和cookie提示
  812. - 处理验证码或寻找替代方案
  813. - 等待页面加载
  814. 4. 任务完成:
  815. - 如果完成则使用terminate工具
  816. 5. 视觉上下文:
  817. - 使用提供的截图
  818. - 引用元素索引
  819. 6. 表单填写:
  820. - 处理动态字段变化', '为实现我的目标,下一步应该做什么?
  821. 重点:
  822. 1. 使用\'get_text\'操作获取页面内容,而不是滚动
  823. 2. 不用担心内容可见性或视口位置
  824. 3. 专注于基于文本的信息提取
  825. 4. 直接处理获取的文本数据
  826. 5. 重要:你必须在回复中使用至少一个工具才能取得进展!
  827. 考虑可见的内容和当前视口之外可能存在的内容。
  828. 有条理地行动 - 记住你的进度和迄今为止学到的知识。', 722203598359887866, null, null, 20, 60, null, 1, '1.0.0', 1,
  829. '2025-06-09 11:10:23', null, null);
  830. -- ------------------------------
  831. -- Table structure for aigc_tool
  832. -- ------------------------------
  833. CREATE TABLE IF NOT EXISTS `aigc_tool`
  834. (
  835. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  836. `tool_key` VARCHAR(50) NOT NULL COMMENT '工具唯一标识',
  837. `name` VARCHAR(50) NOT NULL COMMENT '工具名称',
  838. `tool_group` VARCHAR(50) NOT NULL COMMENT '工具组:system/web/data/file/custom',
  839. `description` VARCHAR(500) NOT NULL COMMENT '工具描述',
  840. `parameters` JSON NOT NULL COMMENT '工具参数',
  841. `is_return_direct` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否直接返回结果',
  842. `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1:启用;2:禁用)',
  843. `create_user` BIGINT NOT NULL COMMENT '创建人',
  844. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  845. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  846. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  847. PRIMARY KEY (`id`),
  848. UNIQUE KEY `uniq_tool_key` (`tool_key`)
  849. ) ENGINE = InnoDB
  850. DEFAULT CHARSET = utf8mb4 COMMENT ='工具表';
  851. INSERT INTO aigc_tool (id, `tool_key`, name, tool_group, description, parameters, is_return_direct, status, create_user,
  852. create_time, update_user, update_time)
  853. VALUES (722203598359887888, 'BROWSER_USE', 'BROWSER_USE', 'default-tool-group', '与网页浏览器交互,执行各种操作,如导航、元素交互、内容提取和标签页管理。搜索类优先考虑此工具。
  854. 支持的操作包括:
  855. - \'navigate\':访问特定URL,默认使用https://baidu.com
  856. - \'click\':按索引点击元素
  857. - \'input_text\':在元素中输入文本,对于百度(Baidu),输入框的索引是
  858. - \'key_enter\':按回车键
  859. - \'screenshot\':捕获屏幕截图
  860. - \'get_html\':获取页面HTML内容
  861. - \'get_text\':获取页面文本内容
  862. - \'execute_js\':执行JavaScript代码
  863. - \'scroll\':滚动页面
  864. - \'switch_tab\':切换到特定标签页
  865. - \'new_tab\':打开新标签页
  866. - \'close_tab\':关闭当前标签页
  867. - \'refresh\':刷新当前页面', '{
  868. "type": "object",
  869. "required": [
  870. "action"
  871. ],
  872. "properties": {
  873. "url": {
  874. "type": "string",
  875. "description": "URL for \'navigate\' or \'new_tab\' actions"
  876. },
  877. "text": {
  878. "type": "string",
  879. "description": "Text for \'input_text\' action"
  880. },
  881. "index": {
  882. "type": "integer",
  883. "description": "Element index for \'click\' or \'input_text\' actions"
  884. },
  885. "action": {
  886. "enum": [
  887. "navigate",
  888. "click",
  889. "input_text",
  890. "key_enter",
  891. "screenshot",
  892. "get_html",
  893. "get_text",
  894. "execute_js",
  895. "scroll",
  896. "switch_tab",
  897. "new_tab",
  898. "close_tab",
  899. "refresh"
  900. ],
  901. "type": "string",
  902. "description": "The browser action to perform"
  903. },
  904. "script": {
  905. "type": "string",
  906. "description": "JavaScript code for \'execute_js\' action"
  907. },
  908. "tab_id": {
  909. "type": "integer",
  910. "description": "Tab ID for \'switch_tab\' action"
  911. },
  912. "scroll_amount": {
  913. "type": "integer",
  914. "description": "Pixels to scroll (positive for down, negative for up) for \'scroll\' action"
  915. }
  916. },
  917. "dependencies": {
  918. "click": [
  919. "index"
  920. ],
  921. "scroll": [
  922. "scroll_amount"
  923. ],
  924. "new_tab": [
  925. "url"
  926. ],
  927. "navigate": [
  928. "url"
  929. ],
  930. "key_enter": [
  931. "index"
  932. ],
  933. "execute_js": [
  934. "script"
  935. ],
  936. "input_text": [
  937. "index",
  938. "text"
  939. ],
  940. "switch_tab": [
  941. "tab_id"
  942. ]
  943. }
  944. }', 0, 1, 1, '2025-06-09 11:01:58', null, null);
  945. -- ------------------------------
  946. -- Table structure for aigc_tool
  947. -- ------------------------------
  948. CREATE TABLE IF NOT EXISTS `aigc_agent_tool`
  949. (
  950. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  951. `agent_id` BIGINT UNSIGNED NOT NULL COMMENT '智能体ID',
  952. `tool_id` BIGINT UNSIGNED NOT NULL COMMENT '工具ID',
  953. PRIMARY KEY (`id`),
  954. UNIQUE KEY `uk_agent_id_tool_id` (`agent_id`, `tool_id`)
  955. ) ENGINE = InnoDB
  956. DEFAULT CHARSET = utf8mb4 COMMENT ='智能体和工具关联表';
  957. INSERT INTO aigc_agent_tool (id, agent_id, tool_id)
  958. VALUES (722203598359887899, 722203598359887877, 722203598359887888);
  959. -- ------------------------------
  960. -- Table structure for aigc_agent_knowledge
  961. -- ------------------------------
  962. CREATE TABLE IF NOT EXISTS `aigc_agent_knowledge`
  963. (
  964. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  965. `agent_id` BIGINT UNSIGNED NOT NULL COMMENT '智能体ID',
  966. `knowledge_id` BIGINT UNSIGNED NOT NULL COMMENT '知识库ID',
  967. `retrieval_config` JSON DEFAULT NULL COMMENT '检索配置',
  968. `top_k` INT DEFAULT 3 COMMENT '检索返回数量',
  969. `score_threshold` DECIMAL(5, 4) DEFAULT 0.7 COMMENT '相似度阈值',
  970. `create_user` BIGINT NOT NULL COMMENT '创建人',
  971. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  972. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  973. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  974. PRIMARY KEY (`id`),
  975. UNIQUE KEY `uk_agent_knowledge` (`agent_id`, `knowledge_id`)
  976. ) ENGINE = InnoDB
  977. DEFAULT CHARSET = utf8mb4 COMMENT ='智能体和知识库关联表';
  978. -- ------------------------------
  979. -- Table structure for aigc_agent_plan
  980. -- ------------------------------
  981. CREATE TABLE IF NOT EXISTS `aigc_agent_plan`
  982. (
  983. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  984. `user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '用户ID',
  985. `conversation_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '所属会话ID',
  986. `message_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '对话消息Id',
  987. `message_content` LONGTEXT NOT NULL COMMENT '对话消息内容',
  988. `think_input` LONGTEXT DEFAULT NULL COMMENT '规划思考过程内容输入',
  989. `think_output` LONGTEXT DEFAULT NULL COMMENT '规划思考过程内容输出',
  990. `title` VARCHAR(500) DEFAULT NULL COMMENT '计划主题,大模型根据用户消息生成',
  991. `start_time` DATETIME DEFAULT NULL COMMENT '规划开始时间',
  992. `end_time` DATETIME DEFAULT NULL COMMENT '规划结束时间',
  993. `duration` LONG DEFAULT NULL COMMENT '怪话时长(秒)',
  994. `current_plan_step_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '当前执行的步骤编号',
  995. `completed` TINYINT(1) DEFAULT 0 COMMENT '计划是否完成:0未完成 1已完成',
  996. `summary` TEXT DEFAULT NULL COMMENT '规划总结',
  997. `create_user` BIGINT NOT NULL COMMENT '创建人',
  998. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  999. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  1000. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  1001. PRIMARY KEY (`id`),
  1002. KEY `idx_message_id` (`message_id`),
  1003. KEY `idx_conversation_id` (`conversation_id`),
  1004. KEY `idx_user_id` (`user_id`)
  1005. ) ENGINE = InnoDB
  1006. DEFAULT CHARSET = utf8mb4 COMMENT ='智能体规划记录表';
  1007. -- ------------------------------
  1008. -- Table structure for aigc_agent_plan_step
  1009. -- ------------------------------
  1010. CREATE TABLE IF NOT EXISTS `aigc_agent_plan_step`
  1011. (
  1012. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  1013. `plan_id` BIGINT UNSIGNED NOT NULL COMMENT '计划ID',
  1014. `description` VARCHAR(500) DEFAULT NULL COMMENT '计划描述:[BROWSER_AGENT] 打开百度主页',
  1015. `step_index` INT DEFAULT NULL COMMENT '步骤序号',
  1016. `agent_code` VARCHAR(50) DEFAULT NULL COMMENT '本次计划要使用的智能体:[BROWSER_AGENT]',
  1017. `think_start_time` DATETIME DEFAULT NULL COMMENT '智能体思考开始的时间戳',
  1018. `think_end_time` DATETIME DEFAULT NULL COMMENT '智能体思考完成的时间戳',
  1019. `think_input` TEXT DEFAULT NULL COMMENT '智能体思考过程的输入上下文',
  1020. `think_output` TEXT DEFAULT NULL COMMENT '智能体思考过程的输出结果',
  1021. `think_duration` LONG DEFAULT NULL COMMENT '智能体思考时长(秒)',
  1022. `execution_needed` TINYINT(1) DEFAULT 0 COMMENT '智能体思考是否确定需要执行步骤:0否 1是',
  1023. `execution_params` JSON DEFAULT NULL COMMENT '此步骤执行参数',
  1024. `execution_start_time` DATETIME DEFAULT NULL COMMENT '插件执行此步骤开始的时间戳',
  1025. `execution_end_time` DATETIME DEFAULT NULL COMMENT '插件执行此步骤完成的时间戳',
  1026. `execution_duration` LONG DEFAULT NULL COMMENT '插件执行时长(秒)',
  1027. `tool_name` VARCHAR(50) DEFAULT NULL COMMENT '智能体选中的工具名称',
  1028. `tool_parameters` JSON DEFAULT NULL COMMENT '智能体选中的工具执行时需要的参数',
  1029. `result` TEXT DEFAULT NULL COMMENT '步骤执行思考的结果',
  1030. `status` VARCHAR(20) DEFAULT NULL COMMENT '智能体状态:IDLE/RUNNING/FINISHED',
  1031. `completed` TINYINT(1) DEFAULT 0 COMMENT '是否完成:0未完成 1已完成',
  1032. `stucked` TINYINT(1) DEFAULT 0 COMMENT '是否卡主:0未卡住 1已卡住',
  1033. `error_message` TEXT DEFAULT NULL COMMENT '错误信息',
  1034. `create_user` BIGINT NOT NULL COMMENT '创建人',
  1035. `create_time` DATETIME NOT NULL COMMENT '创建时间',
  1036. `update_user` BIGINT DEFAULT NULL COMMENT '修改人',
  1037. `update_time` DATETIME DEFAULT NULL COMMENT '修改时间',
  1038. PRIMARY KEY (`id`),
  1039. KEY `idx_plan_id` (`plan_id`)
  1040. ) ENGINE = InnoDB
  1041. DEFAULT CHARSET = utf8mb4 COMMENT ='智能体规划步骤记录表';