127 lines
6.9 KiB
SQL
127 lines
6.9 KiB
SQL
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='智能体配置表';
|
||
|
||
-- 插入默认配置
|
||
INSERT INTO `tb_ai_agent_config` (id, name, system_prompt, model_name, temperature, max_tokens, status, creator, create_time) VALUES
|
||
('1', '思政小帮手', '你是一个专业的思政学习助手,致力于帮助用户学习思想政治理论知识。请基于提供的知识库内容,为用户提供准确、简洁的回答。', 'gpt-3.5-turbo', 0.7, 2000, 1, '1', now());
|
||
|
||
-- 知识库表
|
||
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使用统计表';
|
||
|