Files
schoolNews/schoolNewsServ/.bin/mysql/sql/createTableAI.sql

127 lines
6.9 KiB
MySQL
Raw Normal View History

2025-10-15 10:39:51 +08:00
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 '关联文件IDJSON数组',
`knowledge_ids` VARCHAR(500) DEFAULT NULL COMMENT '引用知识IDJSON数组',
`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使用统计表';