Преглед на файлове

feat: AI conversation memory - migration 82 for ai_conversation_summary + ai_user_facts tables

Sisyphus Agent преди 2 месеца
родител
ревизия
3efc31b1d0
променени са 1 файла, в които са добавени 38 реда и са изтрити 0 реда
  1. 38 0
      cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

+ 38 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -5244,6 +5244,7 @@ try {
 
         runMigration80();
         runMigration81();
+        runMigration82();
     }
 
     private void runMigration81() {
@@ -5375,4 +5376,41 @@ try {
             log.info("已创建social_circle_member表");
         } catch (Exception e) { /* 表已存在忽略 */ }
     }
+
+    private void runMigration82() {
+        try {
+            jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS ai_conversation_summary (" +
+                "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
+                "user_id BIGINT NOT NULL COMMENT '用户ID', " +
+                "conversation_id VARCHAR(100) NOT NULL COMMENT 'Dify会话ID', " +
+                "summary_text TEXT COMMENT '对话摘要文本', " +
+                "summary_tokens INT DEFAULT 0 COMMENT '摘要token数', " +
+                "message_count INT DEFAULT 0 COMMENT '本次对话消息数', " +
+                "created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', " +
+                "INDEX idx_conversation (conversation_id), " +
+                "INDEX idx_user (user_id)" +
+            ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI对话摘要'");
+            log.info("已创建ai_conversation_summary表");
+        } catch (Exception e) {
+            log.warn("创建ai_conversation_summary表失败: {}", e.getMessage());
+        }
+
+        try {
+            jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS ai_user_facts (" +
+                "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
+                "user_id BIGINT NOT NULL COMMENT '用户ID', " +
+                "fact_key VARCHAR(100) NOT NULL COMMENT '事实键', " +
+                "fact_value VARCHAR(500) COMMENT '事实值', " +
+                "source_conversation VARCHAR(100) COMMENT '来源会话ID', " +
+                "confidence DECIMAL(3,2) DEFAULT 1.00 COMMENT '置信度0-1', " +
+                "created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', " +
+                "updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', " +
+                "INDEX idx_user_key (user_id, fact_key), " +
+                "INDEX idx_conversation (source_conversation)" +
+            ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI用户关键事实'");
+            log.info("已创建ai_user_facts表");
+        } catch (Exception e) {
+            log.warn("创建ai_user_facts表失败: {}", e.getMessage());
+        }
+    }
 }