Browse Source

模型地址持久化处理

zzf 1 week ago
parent
commit
92779a7830

+ 8 - 1
src/main/java/com/rf/AIquantum/dialogue/rest/ChatHistoryController.java

@@ -8,6 +8,8 @@ import com.rf.AIquantum.dao.dto.SseResultDataDto;
 import com.rf.AIquantum.dialogue.dao.model.ChatHistoryEntity;
 import com.rf.AIquantum.dialogue.service.ChatHistoryService;
 import com.rf.AIquantum.filter.JwtIgnore;
+import com.rf.AIquantum.param.model.ParamEntry;
+import com.rf.AIquantum.param.service.ParamService;
 import com.rf.AIquantum.utils.Constant;
 import com.rf.AIquantum.utils.Result;
 import com.rf.AIquantum.utils.SseEmitterService;
@@ -51,6 +53,8 @@ public class ChatHistoryController extends BaseController {
     @Value("${chat_url}")
     private String chat_url;
 
+    @Autowired
+    private ParamService paramService;
     @GetMapping("/findChats")
     @ApiOperation(value = "查询聊天记录", notes = "参数包括:pageNum:页码, pageSize:数量, dialogueId:对话id")
     public Result findChatHistorys(@RequestParam int pageNum, @RequestParam int pageSize, @RequestParam String dialogueId) {
@@ -137,7 +141,10 @@ public class ChatHistoryController extends BaseController {
         StringBuilder stringBuilder = new StringBuilder();
         // 创建请求体
         okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(jsonChat.toJSONString(), MediaType.parse("application/json"));
-
+        ParamEntry paramEntry = this.paramService.findByParamName("chat_url");
+        if (paramEntry != null) {
+            chat_url = paramEntry.getParamValue();
+        }
         // 创建请求
         Request request = new Request.Builder().header("Content-Type", "application/json").header("Accept", "text/event-stream")
                 .url(chat_url + Constant.CHAT_PATH)

+ 13 - 5
src/main/java/com/rf/AIquantum/dialogue/rest/DialogueController.java

@@ -12,6 +12,8 @@ import com.rf.AIquantum.dialogue.dao.model.DialogueEntity;
 import com.rf.AIquantum.dialogue.service.ChatHistoryService;
 import com.rf.AIquantum.dialogue.service.DialogueService;
 import com.rf.AIquantum.filter.JwtIgnore;
+import com.rf.AIquantum.param.model.ParamEntry;
+import com.rf.AIquantum.param.service.ParamService;
 import com.rf.AIquantum.user.dao.model.TempUserEntity;
 import com.rf.AIquantum.user.dao.model.UserEntity;
 import com.rf.AIquantum.user.service.TempUserService;
@@ -80,6 +82,9 @@ public class DialogueController extends BaseController {
     @Value("${chat_url}")
     private String chat_url;
 
+    @Autowired
+    private ParamService paramService;
+
     @PostMapping("/saveChat")
     @JwtIgnore
     @ApiOperation(value = "保存对话", notes = "参数包括:phone:手机号, dialogueId:对话id(为空时是新建对话), content:消息内容,image:图片(可以为空)")
@@ -92,7 +97,7 @@ public class DialogueController extends BaseController {
                 tempUser.setRemainingCount(tempUser.getRemainingCount() - 1);
                 this.tempUserService.save(tempUser);
             }
-        }else {
+        } else {
             UserEntity user = this.userService.findUserByPhone(phone);
             if (user == null) {
                 return fail(null, "用户不存在");
@@ -208,7 +213,10 @@ public class DialogueController extends BaseController {
         StringBuilder stringBuilder = new StringBuilder();
         // 创建请求体
         okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(jsonChat.toJSONString(), MediaType.parse("application/json"));
-
+        ParamEntry paramEntry = this.paramService.findByParamName("chat_url");
+        if (paramEntry != null) {
+            chat_url = paramEntry.getParamValue();
+        }
         // 创建请求
         Request request = new Request.Builder().header("Content-Type", "application/json").header("Accept", "text/event-stream")
                 .url(chat_url + Constant.CHAT_PATH)
@@ -216,8 +224,8 @@ public class DialogueController extends BaseController {
                 .build();
         // 发送请求并处理响应
         String progress = "undo";
-        try (  Response response = client.newCall(request).execute()) {
-            progress = "doing" ;
+        try (Response response = client.newCall(request).execute()) {
+            progress = "doing";
             if (!response.isSuccessful()) {
                 log.error("Unexpected code " + response);
                 return fail();
@@ -296,7 +304,7 @@ public class DialogueController extends BaseController {
         chatHistoryEntity.setCreateTime(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS"));
         chatHistoryEntity.setUpdateTime(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS"));
         chatHistoryEntity = this.chatHistoryService.save(chatHistoryEntity);
-        while (progress.equals("doing")){
+        while (progress.equals("doing")) {
             Thread.sleep(100);
         }
         return success(chatHistoryEntity);

+ 95 - 0
src/main/java/com/rf/AIquantum/param/controller/ParamController.java

@@ -0,0 +1,95 @@
+package com.rf.AIquantum.param.controller;
+
+import com.rf.AIquantum.base.rest.BaseController;
+import com.rf.AIquantum.filter.JwtIgnore;
+import com.rf.AIquantum.param.model.ParamEntry;
+import com.rf.AIquantum.param.service.ParamService;
+import com.rf.AIquantum.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Profile;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Author:zzf
+ * @Date:2022/7/1:18:12
+ * @Description:系统参数控制器
+ */
+@Slf4j
+@RestController
+@RequestMapping("/param")
+@Api(tags = "系统参数管理")
+@Profile("test")
+public class ParamController extends BaseController {
+
+    @Autowired
+    private ParamService paramService;
+
+    @PostMapping("/save")
+    public Result save(@RequestBody ParamEntry param )  {
+        try {
+            paramService.save(param);
+            return success(param,"操作成功");
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error(e.getMessage());
+            return fail(null,"操作失败");
+        }
+    }
+
+    @GetMapping("/find/{paramName}")
+    public Result find(@PathVariable String paramName){
+        try {
+            ParamEntry paramEntry = this.paramService.findByParamName(paramName);
+            return success(paramEntry);
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error("{}------"+e.getMessage(),ParamController.class.getName());
+            return fail(null,"操作失败");
+        }
+    }
+
+
+    @GetMapping("/findAllByType")
+    @ApiOperation(value = "根据类型查找")
+    public Result findAllByType(@RequestParam String type ){
+        try {
+            List<ParamEntry> paramEntries = paramService.findAllByType(type);
+            return success(paramEntries,"操作成功");
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error(e.getMessage());
+            return fail(null,"操作失败");
+        }
+    }
+
+    @GetMapping("/findAll")
+    public Result findAll(){
+       try {
+           List<ParamEntry> list = paramService.findAll();
+           return success(list);
+       }catch (Exception e){
+           e.printStackTrace();
+           log.error(e.getMessage());
+           return fail();
+       }
+    }
+
+    @PostMapping("/update")
+    @JwtIgnore
+    public Result updateValue(@RequestBody ParamEntry paramEntry){
+            ParamEntry entry = paramService.findByParamName(paramEntry.getParamName());
+            if (entry == null){
+                this.paramService.save(paramEntry);
+            }else{
+                entry.setParamValue(paramEntry.getParamValue());
+                paramService.save(entry);
+            }
+
+            return success(entry);
+    }
+}

+ 40 - 0
src/main/java/com/rf/AIquantum/param/model/ParamEntry.java

@@ -0,0 +1,40 @@
+package com.rf.AIquantum.param.model;
+
+import com.rf.AIquantum.base.model.BaseEntity;
+import lombok.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+
+/**
+ * @Author:zzf
+ * @Date:2022/7/1:17:54
+ * @Description:系统参数
+ */
+@Entity
+@ToString
+@AllArgsConstructor
+@NoArgsConstructor
+@Getter
+@Setter
+@Table(name = "t_system_param")
+@org.hibernate.annotations.Table(appliesTo = "t_system_param", comment = "系统参数表")
+public class ParamEntry  extends BaseEntity {
+
+
+    @Column(name = "param_name",columnDefinition = "varchar(50) not null comment '参数名称'")
+    private String paramName ;
+
+    @Column(name = "param_value",columnDefinition = "varchar(200) not null comment '参数值'")
+    private String paramValue ;
+
+    @Column(name = "param_desc",columnDefinition = "varchar(200) comment '参数释义'")
+    private String paramDesc;
+
+    @Column(name = "param_type",columnDefinition = "varchar(20) comment '参数类型'")
+    private String paramType;
+
+    @Column(name = "sort_value",columnDefinition = "int comment '排序值'")
+    private String sortValue;
+
+}

+ 16 - 0
src/main/java/com/rf/AIquantum/param/repository/ParamRepository.java

@@ -0,0 +1,16 @@
+package com.rf.AIquantum.param.repository;
+
+import com.rf.AIquantum.base.repository.BaseRepository;
+import com.rf.AIquantum.param.model.ParamEntry;
+
+import java.util.List;
+
+public interface ParamRepository extends BaseRepository<ParamEntry,String> {
+
+
+    ParamEntry findByParamName(String paramName);
+
+    List<ParamEntry> findAllByParamType(String planContent);
+
+    ParamEntry findByParamNameAndParamType(String roleType, String template);
+}

+ 37 - 0
src/main/java/com/rf/AIquantum/param/service/ParamService.java

@@ -0,0 +1,37 @@
+package com.rf.AIquantum.param.service;
+
+import com.rf.AIquantum.param.model.ParamEntry;
+import org.springframework.cache.annotation.Cacheable;
+
+import java.util.List;
+
+public interface ParamService {
+    /**
+     * 保存
+     * @param paramEntry
+     * @return
+     */
+    ParamEntry save(ParamEntry paramEntry);
+
+    /**
+     * 查询,名称
+     * @param paramName
+     * @return
+     */
+    ParamEntry findByParamName(String paramName);
+
+    /**
+     * 获取到所有
+     * @return
+     */
+    List<ParamEntry> findAll();
+
+    /**
+     * 根据类型获取到系统参数
+     * @param planContent 类型
+     * @return
+     */
+    List<ParamEntry> findAllByType(String planContent);
+
+    ParamEntry findByParamNameAndType(String roleType, String template);
+}

+ 69 - 0
src/main/java/com/rf/AIquantum/param/service/impl/ParamServiceImpl.java

@@ -0,0 +1,69 @@
+package com.rf.AIquantum.param.service.impl;
+
+import com.rf.AIquantum.param.model.ParamEntry;
+import com.rf.AIquantum.param.repository.ParamRepository;
+import com.rf.AIquantum.param.service.ParamService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CachePut;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @Author:zzf
+ * @Date:2022/7/5:10:53
+ * @Description:系统参数
+ */
+@Service
+public class ParamServiceImpl implements ParamService {
+
+    @Autowired
+    private ParamRepository repository;
+
+    //@Autowired
+    //private RedisTemplate<String,Object> template;
+    /**
+     * 保存
+     *
+     * @param paramEntry
+     * @return
+     */
+    @Override
+    @CachePut(value = "param", key = "#paramEntry.paramName")
+    public ParamEntry save(ParamEntry paramEntry) {
+        return  this.repository.save(paramEntry);
+    }
+
+    /**
+     * 查询,名称
+     *
+     * @param paramName
+     * @return
+     */
+    @Override
+    public ParamEntry findByParamName(String paramName) {
+        return this.repository.findByParamName(paramName);
+    }
+
+    @Override
+    public List<ParamEntry> findAll() {
+        return this.repository.findAll();
+    }
+
+    /**
+     * 根据类型获取系统参数
+     * @param planContent 类型
+     * @return
+     */
+    @Override
+    public List<ParamEntry> findAllByType(String planContent) {
+        return repository.findAllByParamType(planContent);
+    }
+
+    @Override
+    public ParamEntry findByParamNameAndType(String roleType, String template) {
+        return repository.findByParamNameAndParamType(roleType,template);
+    }
+
+
+}