AI接入 v0.1

This commit is contained in:
2026-09-23 17:16:40 +08:00
parent ec21ba0876
commit be3fa61b8d
16 changed files with 1244 additions and 0 deletions
@@ -0,0 +1,30 @@
-- AI 会话与消息表(2026-09-23 阶段 B:AI 基建)
-- 设计说明:
-- * 与项目其他表一致:utf8mb4_unicode_ci、逻辑删除、指向 user 表的外键
-- * 消息不可变(没有 update_time)——工具调用的中间过程不入库,
-- 历史里只有 user / assistant 文本,这样 App 端不用理解 tool 消息格式
-- * 会话的 update_time 由 DB 的 ON UPDATE 维护,列表按「最近活跃」排序
CREATE TABLE IF NOT EXISTS `chat_session` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '会话ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`title` VARCHAR(100) NOT NULL DEFAULT '新对话' COMMENT '标题(首条消息自动生成)',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除:0正常 1已删除',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最近活跃时间',
PRIMARY KEY (`id`),
INDEX `idx_user_updated` (`user_id`, `deleted`, `update_time`),
FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI会话表';
CREATE TABLE IF NOT EXISTS `chat_message` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '消息ID',
`session_id` BIGINT NOT NULL COMMENT '会话ID',
`role` VARCHAR(16) NOT NULL COMMENT '角色:user / assistant',
`content` TEXT NOT NULL COMMENT '消息文本',
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除:0正常 1已删除',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
INDEX `idx_session_created` (`session_id`, `deleted`, `create_time`),
FOREIGN KEY (`session_id`) REFERENCES `chat_session` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI消息表';