Browse Source

ai工具存数据库修改

zq940222 2 months ago
parent
commit
2479928712

+ 1 - 1
jeecg-module-demo/src/main/java/org/jeecg/modules/demo/gpt/cache/LocalCache.java → jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/gpt/cache/LocalCache.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.demo.gpt.cache;
+package org.jeecg.modules.adweb.gpt.cache;
 
 import cn.hutool.cache.CacheUtil;
 import cn.hutool.cache.impl.TimedCache;

+ 3 - 3
jeecg-module-demo/src/main/java/org/jeecg/modules/demo/gpt/controller/ChatController.java → jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/gpt/controller/ChatController.java

@@ -1,8 +1,8 @@
-package org.jeecg.modules.demo.gpt.controller;
+package org.jeecg.modules.adweb.gpt.controller;
 
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.modules.demo.gpt.service.ChatService;
-import org.jeecg.modules.demo.gpt.vo.ChatHistoryVO;
+import org.jeecg.modules.adweb.gpt.service.ChatService;
+import org.jeecg.modules.adweb.gpt.vo.ChatHistoryVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;

+ 52 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/gpt/entity/ChatHistory.java

@@ -0,0 +1,52 @@
+package org.jeecg.modules.adweb.gpt.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: chatGPT聊天历史记录表
+ * @Author: jeecg-boot
+ * @Date:   2025-01-07
+ * @Version: V1.0
+ */
+@Data
+@TableName("sys_chat_history")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@Schema(description="chatGPT聊天历史记录表")
+public class ChatHistory implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @Schema(description = "主键")
+    private String id;
+	/**用户ID*/
+	@Excel(name = "用户ID", width = 15)
+    @Schema(description = "用户ID")
+    private String userId;
+	/**角色*/
+	@Excel(name = "角色", width = 15)
+    @Schema(description = "角色")
+    private String role;
+	/**内容*/
+	@Excel(name = "内容", width = 15)
+    @Schema(description = "内容")
+    private String content;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "创建时间")
+    private Date createTime;
+}

+ 1 - 1
jeecg-module-demo/src/main/java/org/jeecg/modules/demo/gpt/listeners/OpenAISSEEventSourceListener.java → jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/gpt/listeners/OpenAISSEEventSourceListener.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.demo.gpt.listeners;
+package org.jeecg.modules.adweb.gpt.listeners;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.unfbx.chatgpt.entity.chat.ChatCompletionResponse;

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/gpt/mapper/ChatHistoryMapper.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.adweb.gpt.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.adweb.gpt.entity.ChatHistory;
+
+/**
+ * @Description: chatGPT聊天历史记录表
+ * @Author: jeecg-boot
+ * @Date:   2025-01-07
+ * @Version: V1.0
+ */
+public interface ChatHistoryMapper extends BaseMapper<ChatHistory> {
+
+}

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/gpt/mapper/xml/ChatHistoryMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.adweb.gpt.mapper.ChatHistoryMapper">
+
+</mapper>

+ 2 - 2
jeecg-module-demo/src/main/java/org/jeecg/modules/demo/gpt/service/ChatService.java → jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/gpt/service/ChatService.java

@@ -1,7 +1,7 @@
-package org.jeecg.modules.demo.gpt.service;
+package org.jeecg.modules.adweb.gpt.service;
 
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.modules.demo.gpt.vo.ChatHistoryVO;
+import org.jeecg.modules.adweb.gpt.vo.ChatHistoryVO;
 import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
 
 //update-begin---author:chenrui ---date:20240126  for:【QQYUN-7932】AI助手------------

+ 23 - 7
jeecg-module-demo/src/main/java/org/jeecg/modules/demo/gpt/service/impl/ChatServiceImpl.java → jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/gpt/service/impl/ChatServiceImpl.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.demo.gpt.service.impl;
+package org.jeecg.modules.adweb.gpt.service.impl;
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
@@ -14,10 +14,12 @@ import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.SpringContextUtils;
 import org.jeecg.common.util.UUIDGenerator;
-import org.jeecg.modules.demo.gpt.cache.LocalCache;
-import org.jeecg.modules.demo.gpt.listeners.OpenAISSEEventSourceListener;
-import org.jeecg.modules.demo.gpt.service.ChatService;
-import org.jeecg.modules.demo.gpt.vo.ChatHistoryVO;
+import org.jeecg.modules.adweb.gpt.cache.LocalCache;
+import org.jeecg.modules.adweb.gpt.entity.ChatHistory;
+import org.jeecg.modules.adweb.gpt.listeners.OpenAISSEEventSourceListener;
+import org.jeecg.modules.adweb.gpt.mapper.ChatHistoryMapper;
+import org.jeecg.modules.adweb.gpt.service.ChatService;
+import org.jeecg.modules.adweb.gpt.vo.ChatHistoryVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -25,6 +27,7 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 //update-begin---author:chenrui ---date:20240126  for:【QQYUN-7932】AI助手------------
@@ -38,6 +41,9 @@ import java.util.List;
 @Slf4j
 public class ChatServiceImpl implements ChatService {
 
+    @Autowired
+    private ChatHistoryMapper chatHistoryMapper;
+
     //update-begin---author:chenrui ---date:20240223  for:[QQYUN-8225]聊天记录保存------------
     private static final String CACHE_KEY_PREFIX = "ai:chart:";
 
@@ -177,10 +183,20 @@ public class ChatServiceImpl implements ChatService {
 
     //update-begin---author:chenrui ---date:20240223  for:[QQYUN-8225]聊天记录保存------------
     @Override
+//    public Result<?> saveHistory(ChatHistoryVO chatHistoryVO) {
+//        String uid = getUserId();
+//        String cacheKey = CACHE_KEY_PREFIX + CACHE_KEY_MSG_HISTORY + ":" + uid;
+//        redisTemplate.opsForValue().set(cacheKey, chatHistoryVO.getContent());
+//        return Result.OK("保存成功");
+//    }
     public Result<?> saveHistory(ChatHistoryVO chatHistoryVO) {
         String uid = getUserId();
-        String cacheKey = CACHE_KEY_PREFIX + CACHE_KEY_MSG_HISTORY + ":" + uid;
-        redisTemplate.opsForValue().set(cacheKey, chatHistoryVO.getContent());
+        ChatHistory chatHistory = new ChatHistory();
+        chatHistory.setUserId(uid);
+        chatHistory.setRole("USER");
+        chatHistory.setContent(chatHistoryVO.getContent());
+        chatHistory.setCreateTime(new Date());
+        chatHistoryMapper.insert(chatHistory);
         return Result.OK("保存成功");
     }
 

+ 1 - 1
jeecg-module-demo/src/main/java/org/jeecg/modules/demo/gpt/vo/ChatHistoryVO.java → jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/adweb/gpt/vo/ChatHistoryVO.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.demo.gpt.vo;
+package org.jeecg.modules.adweb.gpt.vo;
 
 import lombok.Data;