124 lines
6.5 KiB
MySQL
124 lines
6.5 KiB
MySQL
|
|
use school_news;
|
|||
|
|
-- 智能体配置表
|
|||
|
|
DROP TABLE IF EXISTS `tb_ai_agent_config`;
|
|||
|
|
CREATE TABLE `tb_ai_agent_config` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '配置ID',
|
|||
|
|
`name` VARCHAR(100) NOT NULL COMMENT '智能体名称',
|
|||
|
|
`avatar` VARCHAR(255) DEFAULT NULL COMMENT '智能体头像',
|
|||
|
|
`system_prompt` TEXT COMMENT '系统提示词',
|
|||
|
|
`model_name` VARCHAR(100) DEFAULT NULL COMMENT '模型名称',
|
|||
|
|
`model_provider` VARCHAR(50) DEFAULT NULL COMMENT '模型提供商',
|
|||
|
|
`temperature` DECIMAL(3,2) DEFAULT 0.70 COMMENT '温度值',
|
|||
|
|
`max_tokens` INT(11) DEFAULT 2000 COMMENT '最大tokens',
|
|||
|
|
`top_p` DECIMAL(3,2) DEFAULT 1.00 COMMENT 'Top P值',
|
|||
|
|
`status` INT(4) DEFAULT 1 COMMENT '状态(0禁用 1启用)',
|
|||
|
|
`creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者',
|
|||
|
|
`updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
|
|||
|
|
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
|||
|
|
PRIMARY KEY (`id`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='智能体配置表';
|
|||
|
|
|
|||
|
|
|
|||
|
|
-- 知识库表
|
|||
|
|
DROP TABLE IF EXISTS `tb_ai_knowledge`;
|
|||
|
|
CREATE TABLE `tb_ai_knowledge` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '知识ID',
|
|||
|
|
`title` VARCHAR(255) NOT NULL COMMENT '知识标题',
|
|||
|
|
`content` LONGTEXT NOT NULL COMMENT '知识内容',
|
|||
|
|
`source_type` INT(4) DEFAULT 1 COMMENT '来源类型(1手动添加 2文件导入 3资源同步)',
|
|||
|
|
`source_id` VARCHAR(50) DEFAULT NULL COMMENT '来源ID',
|
|||
|
|
`file_name` VARCHAR(255) DEFAULT NULL COMMENT '文件名',
|
|||
|
|
`file_path` VARCHAR(500) DEFAULT NULL COMMENT '文件路径',
|
|||
|
|
`category` VARCHAR(100) DEFAULT NULL COMMENT '分类',
|
|||
|
|
`tags` VARCHAR(500) DEFAULT NULL COMMENT '标签(JSON数组)',
|
|||
|
|
`vector_id` VARCHAR(100) DEFAULT NULL COMMENT '向量ID(用于向量检索)',
|
|||
|
|
`status` INT(4) DEFAULT 1 COMMENT '状态(0禁用 1启用)',
|
|||
|
|
`creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者',
|
|||
|
|
`updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
|
|||
|
|
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_source` (`source_type`, `source_id`),
|
|||
|
|
KEY `idx_category` (`category`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='知识库表';
|
|||
|
|
|
|||
|
|
-- 对话会话表
|
|||
|
|
DROP TABLE IF EXISTS `tb_ai_conversation`;
|
|||
|
|
CREATE TABLE `tb_ai_conversation` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '会话ID',
|
|||
|
|
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
|
|||
|
|
`title` VARCHAR(255) DEFAULT NULL COMMENT '会话标题',
|
|||
|
|
`status` INT(4) DEFAULT 1 COMMENT '状态(0已结束 1进行中)',
|
|||
|
|
`message_count` INT(11) DEFAULT 0 COMMENT '消息数量',
|
|||
|
|
`last_message_time` TIMESTAMP NULL DEFAULT NULL COMMENT '最后消息时间',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_user` (`user_id`),
|
|||
|
|
KEY `idx_last_message_time` (`last_message_time`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='对话会话表';
|
|||
|
|
|
|||
|
|
-- 对话记录表
|
|||
|
|
DROP TABLE IF EXISTS `tb_ai_message`;
|
|||
|
|
CREATE TABLE `tb_ai_message` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '消息ID',
|
|||
|
|
`conversation_id` VARCHAR(50) NOT NULL COMMENT '会话ID',
|
|||
|
|
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
|
|||
|
|
`role` VARCHAR(20) NOT NULL COMMENT '角色(user用户 assistant助手 system系统)',
|
|||
|
|
`content` LONGTEXT NOT NULL COMMENT '消息内容',
|
|||
|
|
`file_ids` VARCHAR(500) DEFAULT NULL COMMENT '关联文件ID(JSON数组)',
|
|||
|
|
`knowledge_ids` VARCHAR(500) DEFAULT NULL COMMENT '引用知识ID(JSON数组)',
|
|||
|
|
`token_count` INT(11) DEFAULT 0 COMMENT 'Token数量',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_conversation` (`conversation_id`),
|
|||
|
|
KEY `idx_user` (`user_id`),
|
|||
|
|
KEY `idx_create_time` (`create_time`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='对话消息表';
|
|||
|
|
|
|||
|
|
-- 上传文件表
|
|||
|
|
DROP TABLE IF EXISTS `tb_ai_upload_file`;
|
|||
|
|
CREATE TABLE `tb_ai_upload_file` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '文件ID',
|
|||
|
|
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
|
|||
|
|
`conversation_id` VARCHAR(50) DEFAULT NULL COMMENT '会话ID',
|
|||
|
|
`file_name` VARCHAR(255) NOT NULL COMMENT '文件名',
|
|||
|
|
`file_path` VARCHAR(500) NOT NULL COMMENT '文件路径',
|
|||
|
|
`file_size` BIGINT(20) DEFAULT 0 COMMENT '文件大小(字节)',
|
|||
|
|
`file_type` VARCHAR(50) DEFAULT NULL COMMENT '文件类型',
|
|||
|
|
`mime_type` VARCHAR(100) DEFAULT NULL COMMENT 'MIME类型',
|
|||
|
|
`extracted_text` LONGTEXT COMMENT '提取的文本内容',
|
|||
|
|
`status` INT(4) DEFAULT 1 COMMENT '状态(0处理中 1已完成 2失败)',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
|
|||
|
|
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_user` (`user_id`),
|
|||
|
|
KEY `idx_conversation` (`conversation_id`),
|
|||
|
|
KEY `idx_create_time` (`create_time`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='上传文件表';
|
|||
|
|
|
|||
|
|
-- AI使用统计表
|
|||
|
|
DROP TABLE IF EXISTS `tb_ai_usage_statistics`;
|
|||
|
|
CREATE TABLE `tb_ai_usage_statistics` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '统计ID',
|
|||
|
|
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
|
|||
|
|
`stat_date` DATE NOT NULL COMMENT '统计日期',
|
|||
|
|
`conversation_count` INT(11) DEFAULT 0 COMMENT '会话数量',
|
|||
|
|
`message_count` INT(11) DEFAULT 0 COMMENT '消息数量',
|
|||
|
|
`total_tokens` INT(11) DEFAULT 0 COMMENT '总Token数',
|
|||
|
|
`file_count` INT(11) DEFAULT 0 COMMENT '上传文件数',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `uk_user_date` (`user_id`, `stat_date`),
|
|||
|
|
KEY `idx_user` (`user_id`),
|
|||
|
|
KEY `idx_date` (`stat_date`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='AI使用统计表';
|
|||
|
|
|