From 5d16d9a0e7240ff4e6346bfee4890159da5a764e Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 11:40:51 +0800
Subject: [PATCH] #AI.记忆治理

---
 version/db/ai_feature.sql |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/version/db/ai_feature.sql b/version/db/ai_feature.sql
index 529ea30..898732a 100644
--- a/version/db/ai_feature.sql
+++ b/version/db/ai_feature.sql
@@ -76,6 +76,8 @@
   `user_id` bigint(20) NOT NULL COMMENT '鐢ㄦ埛 ID',
   `tenant_id` bigint(20) DEFAULT NULL COMMENT '绉熸埛',
   `last_message_time` datetime DEFAULT NULL COMMENT '鏈�鍚庢秷鎭椂闂�',
+  `memory_summary` longtext COMMENT '璁板繂鎽樿',
+  `memory_facts` text COMMENT '鍏抽敭浜嬪疄',
   `pinned` tinyint(1) DEFAULT '0' COMMENT '鏄惁缃《',
   `status` int(11) DEFAULT '1' COMMENT '鐘舵��',
   `deleted` int(11) DEFAULT '0' COMMENT '鍒犻櫎鏍囪',
@@ -93,6 +95,7 @@
   `seq_no` int(11) NOT NULL COMMENT '娑堟伅搴忓彿',
   `role` varchar(32) NOT NULL COMMENT '娑堟伅瑙掕壊',
   `content` longtext COMMENT '娑堟伅鍐呭',
+  `content_length` int(11) DEFAULT NULL COMMENT '鍐呭闀垮害',
   `user_id` bigint(20) NOT NULL COMMENT '鐢ㄦ埛 ID',
   `tenant_id` bigint(20) DEFAULT NULL COMMENT '绉熸埛',
   `deleted` int(11) DEFAULT '0' COMMENT '鍒犻櫎鏍囪',
@@ -134,6 +137,54 @@
 EXECUTE chat_session_pinned_stmt;
 DEALLOCATE PREPARE chat_session_pinned_stmt;
 
+SET @chat_session_summary_exists := (
+  SELECT COUNT(1)
+  FROM `information_schema`.`COLUMNS`
+  WHERE `TABLE_SCHEMA` = DATABASE()
+    AND `TABLE_NAME` = 'sys_ai_chat_session'
+    AND `COLUMN_NAME` = 'memory_summary'
+);
+SET @chat_session_summary_sql := IF(
+  @chat_session_summary_exists = 0,
+  'ALTER TABLE `sys_ai_chat_session` ADD COLUMN `memory_summary` longtext COMMENT ''璁板繂鎽樿'' AFTER `last_message_time`',
+  'SELECT 1'
+);
+PREPARE chat_session_summary_stmt FROM @chat_session_summary_sql;
+EXECUTE chat_session_summary_stmt;
+DEALLOCATE PREPARE chat_session_summary_stmt;
+
+SET @chat_session_facts_exists := (
+  SELECT COUNT(1)
+  FROM `information_schema`.`COLUMNS`
+  WHERE `TABLE_SCHEMA` = DATABASE()
+    AND `TABLE_NAME` = 'sys_ai_chat_session'
+    AND `COLUMN_NAME` = 'memory_facts'
+);
+SET @chat_session_facts_sql := IF(
+  @chat_session_facts_exists = 0,
+  'ALTER TABLE `sys_ai_chat_session` ADD COLUMN `memory_facts` text COMMENT ''鍏抽敭浜嬪疄'' AFTER `memory_summary`',
+  'SELECT 1'
+);
+PREPARE chat_session_facts_stmt FROM @chat_session_facts_sql;
+EXECUTE chat_session_facts_stmt;
+DEALLOCATE PREPARE chat_session_facts_stmt;
+
+SET @chat_message_length_exists := (
+  SELECT COUNT(1)
+  FROM `information_schema`.`COLUMNS`
+  WHERE `TABLE_SCHEMA` = DATABASE()
+    AND `TABLE_NAME` = 'sys_ai_chat_message'
+    AND `COLUMN_NAME` = 'content_length'
+);
+SET @chat_message_length_sql := IF(
+  @chat_message_length_exists = 0,
+  'ALTER TABLE `sys_ai_chat_message` ADD COLUMN `content_length` int(11) DEFAULT NULL COMMENT ''鍐呭闀垮害'' AFTER `content`',
+  'SELECT 1'
+);
+PREPARE chat_message_length_stmt FROM @chat_message_length_sql;
+EXECUTE chat_message_length_stmt;
+DEALLOCATE PREPARE chat_message_length_stmt;
+
 BEGIN;
 INSERT INTO `sys_ai_prompt`
 (`id`, `name`, `code`, `scene`, `system_prompt`, `user_prompt_template`, `tenant_id`, `status`, `deleted`, `create_time`, `create_by`, `update_time`, `update_by`, `memo`)

--
Gitblit v1.9.1