Files
schoolNews/schoolNewsServ/.bin/mysql/sql/createTableAI.sql
2025-10-15 10:39:51 +08:00

127 lines
6.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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使用统计表';