Forráskód Böngészése

接口前端联调修改

S0025136190 9 hónapja
szülő
commit
82ed533c3c
26 módosított fájl, 672 hozzáadás és 128 törlés
  1. 79 35
      takai-admin/src/main/java/com/takai/web/controller/bigmodel/BigModelController.java
  2. 2 2
      takai-admin/src/main/java/com/takai/web/controller/system/SysLoginController.java
  3. 2 0
      takai-admin/src/main/resources/application.yml
  4. 15 0
      takai-bigmodel/src/main/java/com/takai/bigmodel/domain/dto/QuestionDTO.java
  5. 1 13
      takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/BmApplication.java
  6. 2 0
      takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/DocumentParams.java
  7. 3 3
      takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/KnowledgeInfo.java
  8. 24 0
      takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/PageParams.java
  9. 44 0
      takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/ResultApplication.java
  10. 39 0
      takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/ResultKnowledge.java
  11. 2 0
      takai-bigmodel/src/main/java/com/takai/bigmodel/mapper/DialogMapper.java
  12. 2 1
      takai-bigmodel/src/main/java/com/takai/bigmodel/mapper/QuestionMapper.java
  13. 13 2
      takai-bigmodel/src/main/java/com/takai/bigmodel/service/IBigModelService.java
  14. 274 58
      takai-bigmodel/src/main/java/com/takai/bigmodel/service/impl/BigModelServiceImpl.java
  15. 4 10
      takai-bigmodel/src/main/resources/mapper/bm/BmApplicationMapper.xml
  16. 1 1
      takai-bigmodel/src/main/resources/mapper/bm/BmDocumentMapper.xml
  17. 18 0
      takai-bigmodel/src/main/resources/mapper/bm/DialogMapper.xml
  18. 2 2
      takai-bigmodel/src/main/resources/mapper/bm/QuestionMapper.xml
  19. 13 0
      takai-common/src/main/java/com/takai/common/config/BigModelConfig.java
  20. 2 0
      takai-common/src/main/java/com/takai/common/core/domain/entity/Menu.java
  21. 39 0
      takai-common/src/main/java/com/takai/common/core/domain/entity/Prompt.java
  22. 1 1
      takai-framework/src/main/java/com/takai/framework/config/SecurityConfig.java
  23. 7 0
      takai-system/src/main/java/com/takai/system/mapper/PromptMapper.java
  24. 18 0
      takai-system/src/main/java/com/takai/system/service/IPromptService.java
  25. 40 0
      takai-system/src/main/java/com/takai/system/service/impl/PromptServiceImpl.java
  26. 25 0
      takai-system/src/main/resources/mapper/system/PromptMapper.xml

+ 79 - 35
takai-admin/src/main/java/com/takai/web/controller/bigmodel/BigModelController.java

@@ -1,15 +1,18 @@
 package com.takai.web.controller.bigmodel;
 
-import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.takai.bigmodel.domain.dto.DialogReqDTO;
 import com.takai.bigmodel.domain.dto.DialogRespDTO;
+import com.takai.bigmodel.domain.dto.QuestionDTO;
 import com.takai.bigmodel.domain.entity.*;
 import com.takai.bigmodel.service.IBigModelService;
 import com.takai.common.annotation.Log;
 import com.takai.common.config.BigModelConfig;
 import com.takai.common.core.controller.BaseController;
 import com.takai.common.core.domain.AjaxResult;
+import com.takai.common.core.domain.BaseEntity;
+import com.takai.common.core.domain.entity.Prompt;
+import com.takai.common.core.page.TableDataInfo;
 import com.takai.common.enums.BusinessType;
 import com.takai.common.utils.poi.ExcelUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -21,7 +24,6 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -67,7 +69,7 @@ public class BigModelController extends BaseController {
     }
 
     /**
-     * 报错聊天记录
+     * 保存聊天记录
      * @param dialogReqDTO
      * @return
      */
@@ -200,27 +202,32 @@ public class BigModelController extends BaseController {
      */
     @GetMapping("/presets/{appId}")
     public AjaxResult presets(@PathVariable String appId){
-        List<String> list = new ArrayList();
-        list.add("公司福利有哪些?");
-        list.add("新员工入职流程");
-        list.add("培训新员工");
-        return success(list);
+        List<QuestionDTO> list = bigModelService.selectQuestionByAppId(appId);
+        List<String> strList = new ArrayList();
+        for (QuestionDTO vo: list){
+            strList.add(vo.getQuestion());
+        }
+        return success(strList);
+//        List<String> list = new ArrayList();
+//        list.add("公司福利有哪些?");
+//        list.add("新员工入职流程");
+//        list.add("培训新员工");
+//        return success(list);
     }
 
     /**
      * 首页
      * @return
      */
-    @GetMapping("/index")
-    public AjaxResult index(){
+    @PostMapping("/index")
+    public AjaxResult index(@RequestBody PageParams params){
         // 问答应用总数
-        List<BmApplication> applicationList = bigModelService.getApplicationList();
+        JSONObject applicationList = bigModelService.getApplicationList(params.getPageNumber(), params.getPageSize());
         // 知识库总数
-        List<BmKnowledge> knowledgeList = bigModelService.getKnowledgeList();
+        Map<String, Object> knowledgeMap = bigModelService.queryKnowledgeList(params.getPageNumber(), params.getPageSize());
         Map<String, Object> map = new HashMap();
-        map.put("applicationCount", applicationList.size());
-        map.put("knowledgeCount", knowledgeList.size());
-        map.put("application", applicationList);
+        map.put("applicationCount", applicationList.get("total"));
+        map.put("knowledgeCount", knowledgeMap.get("total"));
         return success(map);
     }
 
@@ -271,10 +278,10 @@ public class BigModelController extends BaseController {
      * 知识库列表
      * @return
      */
-    @GetMapping("/knowledgeList")
-    public AjaxResult getKnowledgeList(){
-        List<BmKnowledge> knowledgeList = bigModelService.getKnowledgeList();
-        return success(knowledgeList);
+    @PostMapping("/knowledgeList")
+    public AjaxResult getKnowledgeList(@RequestBody PageParams pageParams){
+        Map<String, Object> jsonObject = bigModelService.queryKnowledgeList(pageParams.getPageNumber(), pageParams.getPageSize());
+        return success(jsonObject);
     }
 
     /**
@@ -284,9 +291,10 @@ public class BigModelController extends BaseController {
      * @param knowledgeId
      * @return
      */
-    @PostMapping("/uploadDocument/{knowledgeId}")
-    public AjaxResult uploadDocument(@RequestPart MultipartFile[] file, @RequestPart DocumentParams documentParams, @PathVariable String knowledgeId){
-        JSONObject json = bigModelService.uploadDocument(file, documentParams, knowledgeId);
+    @PostMapping("/uploadDocument/{knowledgeId}") //@RequestPart DocumentParams documentParams,
+    public AjaxResult uploadDocument(@RequestPart MultipartFile[] file,
+                                     @PathVariable String knowledgeId){
+        JSONObject json = bigModelService.uploadDocument(file, knowledgeId);
         return success(json);
     }
 
@@ -306,10 +314,10 @@ public class BigModelController extends BaseController {
      * 知识列表
      * @return
      */
-    @GetMapping("/documentList")
+    @PostMapping("/documentList")
     public AjaxResult documentList(@RequestBody DocumentParams documentParams){
-        JSONArray array = bigModelService.documentList(documentParams);
-        return success(array);
+        JSONObject object = bigModelService.documentList(documentParams);
+        return success(object);
     }
 
     /**
@@ -341,11 +349,11 @@ public class BigModelController extends BaseController {
      * @param object
      * @return
      */
-    @PostMapping()
-    public AjaxResult uploadUrl(@RequestBody DocumentObject object){
-        bigModelService.uploadUrl(object);
-        return success();
-    }
+//    @PostMapping()
+//    public AjaxResult uploadUrl(@RequestBody DocumentObject object){
+//        bigModelService.uploadUrl(object);
+//        return success();
+//    }
 
     /**
      * 重新向量化
@@ -395,13 +403,12 @@ public class BigModelController extends BaseController {
 
     /**
      * 应用列表
-     * @param page
-     * @param size
+     * @param pageParams
      * @return
      */
-    @GetMapping("/getApplicationList/{page}/{size}")
-    public AjaxResult getApplicationList(@PathVariable Integer page, @PathVariable Integer size){
-        JSONObject jsonObject = bigModelService.getApplicationList(page, size);
+    @PostMapping("/getApplicationList")
+    public AjaxResult getApplicationList(@RequestBody PageParams pageParams){
+        JSONObject jsonObject = bigModelService.getApplicationList(pageParams.getPageNumber(), pageParams.getPageSize());
         return success(jsonObject);
     }
 
@@ -427,4 +434,41 @@ public class BigModelController extends BaseController {
         return success(jsonObject);
     }
 
+    /**
+     * 向量模型
+     * @return
+     */
+    @GetMapping("/embedding")
+    public AjaxResult getEmbedding(){
+        Map<String, Object> map = bigModelService.getEmbedding();
+        return success(map);
+    }
+
+    /**
+     * 模型列表
+     * @return
+     */
+    @GetMapping("/model/list")
+    public AjaxResult getModelList(){
+        JSONObject jsonObject = bigModelService.getModelList();
+        return success(jsonObject);
+    }
+
+    /**
+     * 知识库下拉列表
+     * @return
+     */
+    @GetMapping("/applicationList")
+    public AjaxResult getApplicationList(){
+        return success(bigModelService.getKnowledgeList());
+    }
+
+//    @GetMapping("/dialog/list/{pageNum}/{pageSize}")
+//    public TableDataInfo<BaseEntity> list() {
+//        startPage();
+//        List<DialogRespDTO> list = bigModelService.selectDialogListByAppId("1803686113584558081");
+//        return getDataTable(list);
+//    }
+
+
 }

+ 2 - 2
takai-admin/src/main/java/com/takai/web/controller/system/SysLoginController.java

@@ -77,7 +77,7 @@ public class SysLoginController
      * 
      * @return 用户信息
      */
-    @GetMapping("getInfo")
+    @GetMapping("/getInfo")
     public AjaxResult getInfo()
     {
         SysUser user = SecurityUtils.getLoginUser().getUser();
@@ -97,7 +97,7 @@ public class SysLoginController
      * 
      * @return 路由信息
      */
-    @GetMapping("getRouters")
+    @GetMapping("/getRouters")
     public AjaxResult getRouters()
     {
         Long userId = SecurityUtils.getUserId();

+ 2 - 0
takai-admin/src/main/resources/application.yml

@@ -158,4 +158,6 @@ bigmodel:
   assistant: https://open.bigmodel.cn/api/paas/v4/assistant
   #上传用于模型微调、知识库、Batch、文件抽取等功能所使用的文件。
   uploadFile: https://open.bigmodel.cn/api/paas/v4/files
+  #模型列表
+  modelList: https://open.bigmodel.cn/api/biz/model/trial/list
 

+ 15 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/dto/QuestionDTO.java

@@ -0,0 +1,15 @@
+package com.takai.bigmodel.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class QuestionDTO {
+
+    private String id;
+
+    private String appId;
+
+    private String question;
+
+    private String createTime;
+}

+ 1 - 13
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/BmApplication.java

@@ -49,9 +49,6 @@ public class BmApplication extends BaseEntity
     /** icon_type */
     private String iconType;
 
-    /** param_desc */
-    private String paramDesc;
-
     /** max_token */
     private Integer maxToken;
 
@@ -143,14 +140,6 @@ public class BmApplication extends BaseEntity
         this.iconType = iconType;
     }
 
-    public String getParamDesc() {
-        return paramDesc;
-    }
-
-    public void setParamDesc(String paramDesc) {
-        this.paramDesc = paramDesc;
-    }
-
     public Integer getMaxToken() {
         return maxToken;
     }
@@ -173,12 +162,11 @@ public class BmApplication extends BaseEntity
             .append("model", getModel())
             .append("iconColor", getIconColor())
             .append("iconType", getIconType())
-            .append("paramDesc", getParamDesc())
-            .append("maxToken", getMaxToken())
             .append("createBy", getCreateBy())
             .append("createTime", getCreateTime())
             .append("updateBy", getUpdateBy())
             .append("updateTime", getUpdateTime())
+            .append("maxToken", getMaxToken())
             .toString();
     }
     @Override

+ 2 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/DocumentParams.java

@@ -7,6 +7,8 @@ import java.util.List;
 
 public class DocumentParams {
 
+
+
     private MultipartFile[] files;
 
     private int knowledge_type;

+ 3 - 3
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/KnowledgeInfo.java

@@ -18,7 +18,7 @@ public class KnowledgeInfo {
 
     private Boolean show_recall_result;
 
-    private List rerank_index_type_list;
+    private List<IndexType> rerank_index_type_list;
 
     private List<IndexType> recall_index_type_list;
 
@@ -80,11 +80,11 @@ public class KnowledgeInfo {
         this.show_recall_result = show_recall_result;
     }
 
-    public List getRerank_index_type_list() {
+    public List<IndexType> getRerank_index_type_list() {
         return rerank_index_type_list;
     }
 
-    public void setRerank_index_type_list(List rerank_index_type_list) {
+    public void setRerank_index_type_list(List<IndexType> rerank_index_type_list) {
         this.rerank_index_type_list = rerank_index_type_list;
     }
 

+ 24 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/PageParams.java

@@ -0,0 +1,24 @@
+package com.takai.bigmodel.domain.entity;
+
+public class PageParams {
+
+    private Integer pageNumber;
+
+    private Integer pageSize;
+
+    public Integer getPageNumber() {
+        return pageNumber;
+    }
+
+    public void setPageNumber(Integer pageNumber) {
+        this.pageNumber = pageNumber;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+}

+ 44 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/ResultApplication.java

@@ -0,0 +1,44 @@
+package com.takai.bigmodel.domain.entity;
+
+import com.takai.common.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+public class ResultApplication extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /** 应用ID */
+    private String appId;
+
+    /** 应用名称 */
+    private String name;
+
+    /** 应用描述 */
+    private String desc;
+
+    /** 模版 */
+    private String prompt;
+
+    /** 采样温度的另一种方式 */
+    private String topP;
+
+    /** 采样温度 */
+    private String temperature;
+
+    /** 知识库id列表 */
+    private String knowledgeIds;
+
+    /** 分片数量 */
+    private Integer sliceCount;
+
+    /** model */
+    private String model;
+
+    /** icon_color */
+    private String iconColor;
+
+    /** icon_type */
+    private String iconType;
+}

+ 39 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/ResultKnowledge.java

@@ -0,0 +1,39 @@
+package com.takai.bigmodel.domain.entity;
+
+import com.takai.common.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+public class ResultKnowledge extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /** 知识库ID */
+    private String knowledgeId;
+
+    /** 知识库绑定的向量化模型 */
+    private Integer embeddingId;
+
+    /** 知识库名称 */
+    private String name;
+
+    /** 知识库描述 */
+    private String description;
+
+    /** 背景颜色 */
+    private String background;
+
+    /** 知识库图标 */
+    private String icon;
+
+    /** 知识库总字数 */
+    private Integer wordNum;
+
+    /** 知识库总大小(字节) */
+    private Integer length;
+
+    /** 知识文件数量 */
+    private Integer documentSize;
+
+}

+ 2 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/mapper/DialogMapper.java

@@ -61,4 +61,6 @@ public interface DialogMapper
     void updateDialog(DialogReqDTO dialogReqDTO);
 
     List<DialogRespDTO> selectDialogExport(String appId);
+
+    List<DialogRespDTO> selectDialogListByAppId(String appId);
 }

+ 2 - 1
takai-bigmodel/src/main/java/com/takai/bigmodel/mapper/QuestionMapper.java

@@ -1,12 +1,13 @@
 package com.takai.bigmodel.mapper;
 
+import com.takai.bigmodel.domain.dto.QuestionDTO;
 import com.takai.bigmodel.domain.entity.Question;
 
 import java.util.List;
 
 public interface QuestionMapper {
 
-    List<Question> getQuestionList(String appId);
+    List<QuestionDTO> getQuestionList(String appId);
 
     int insertQuestion(Question vo);
 

+ 13 - 2
takai-bigmodel/src/main/java/com/takai/bigmodel/service/IBigModelService.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.takai.bigmodel.domain.dto.DialogReqDTO;
 import com.takai.bigmodel.domain.dto.DialogRespDTO;
+import com.takai.bigmodel.domain.dto.QuestionDTO;
 import com.takai.bigmodel.domain.entity.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
@@ -92,11 +93,11 @@ public interface IBigModelService
 
     Map<String, Object> delKnowledge(String knowledgeId);
 
-    JSONObject uploadDocument(MultipartFile[] file, DocumentParams documentParams, String knowledgeId);
+    JSONObject uploadDocument(MultipartFile[] file, String knowledgeId);
 
     JSONObject updateDocument(DocumentParams documentParams, String documentId);
 
-    JSONArray documentList(DocumentParams documentParams);
+    JSONObject documentList(DocumentParams documentParams);
 
     JSONObject documentDetail(String documentId);
 
@@ -118,4 +119,14 @@ public interface IBigModelService
 
     JSONObject delApplication(String appId);
 
+    List<QuestionDTO> selectQuestionByAppId(String appId);
+
+    Map<String, Object> queryKnowledgeList(Integer page, Integer size);
+
+    Map<String, Object> getEmbedding();
+
+    JSONObject getModelList();
+
+    List<DialogRespDTO> selectDialogListByAppId(String appId);
+
 }

+ 274 - 58
takai-bigmodel/src/main/java/com/takai/bigmodel/service/impl/BigModelServiceImpl.java

@@ -112,8 +112,19 @@ public class BigModelServiceImpl implements IBigModelService
         SseEmitter sseEmitter = new SseEmitter(0L);
         String url = bigModelConfig.getBaseurl() + bigModelConfig.getSse().replace("{id}",sseParams.getAppId());
         JSONObject json = new JSONObject();
+        List<PromptObject> list = sseParams.getPrompt();
+        for (PromptObject vo : list){
+            String str = vo.getContent();
+            int index = str.indexOf(DATA_STR);
+            if( index != -1){
+                String result = str.substring(0, index);
+                log.info("-----"+result+"----");
+                vo.setContent(result);
+            }
+        }
         json.put("prompt",sseParams.getPrompt());
         json.put("knowledge_ids",sseParams.getKnowledge_ids());
+        log.info("++++++++++++"+sseParams.getPrompt()+"+++++++++++");
         RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8") , json.toJSONString());
 
         Request request = buildPostRequest(url,requestBody);
@@ -437,29 +448,31 @@ public class BigModelServiceImpl implements IBigModelService
                                 .model(json.getString("model"))
                                 .iconColor(json.getString("icon_color"))
                                 .iconType(json.getString("icon_type"))
-                                .paramDesc(json.getString("param_desc"))
-                                .maxToken(json.getInteger("max_token"))
                                 .build();
                         applicationList.add(bmApplication);
                     }
                 }else{
                     // 默认一个
-                    String uuid = IdUtils.simpleUUID();
-                    BmApplication bmApplication = BmApplication.builder()
-                            .appId(uuid)
-                            .name("default")
-                            .desc("default")
-                            .prompt("frist")
-                            .topP("0.1")
-                            .temperature("0.05")
-                            .knowledgeIds("["+uuid+"]")
-                            .sliceCount(4)
-                            .model(MODEL)
-                            .iconColor("blue")
-                            .iconType("robot_assist")
-                            .build();
-                    bmApplicationMapper.insertApplication(bmApplication);
-                    applicationList.add(bmApplication);
+                    BmApplication params = BmApplication.builder().appId("1801951241421525588").build();
+                    List<BmApplication> list = bmApplicationMapper.selectApplicationList(params);
+                    if(list.size() == 0){
+//                        String uuid = IdUtils.simpleUUID();
+                        BmApplication bmApplication = BmApplication.builder()
+                                .appId("1801951241421525588")
+                                .name("default")
+                                .desc("default")
+                                .prompt("frist")
+                                .topP("0.1")
+                                .temperature("0.05")
+                                .knowledgeIds("[]")
+                                .sliceCount(4)
+                                .model(MODEL)
+                                .iconColor("blue")
+                                .iconType("robot_assist")
+                                .build();
+                        bmApplicationMapper.insertApplication(bmApplication);
+                        applicationList.add(bmApplication);
+                    }
                 }
             } else {
                 log.error("智谱 获取应用列表失败:", response);
@@ -473,6 +486,7 @@ public class BigModelServiceImpl implements IBigModelService
     @Override
     public List<BmKnowledge> getKnowledgeList() {
         String url = bigModelConfig.getBaseurl() + bigModelConfig.getKnowledge();
+
         Request request = buildGetRequest(url);
         OkHttpClient client = buildOkHttpClient();
         List<BmKnowledge> knowledgeList = new ArrayList<>();
@@ -559,10 +573,10 @@ public class BigModelServiceImpl implements IBigModelService
         }
 
         if(id == null){
-            String uuid = IdUtils.fastSimpleUUID();
-            dialogReqDTO.setId(uuid);
+            //String uuid = IdUtils.fastSimpleUUID();
+            //dialogReqDTO.setId(uuid);
             dialogMapper.insertDialog(dialogReqDTO);
-            dialogId = uuid;
+            dialogId = dialogReqDTO.getId();
         }else{
             dialogId = dialogReqDTO.getId();
         }
@@ -571,8 +585,8 @@ public class BigModelServiceImpl implements IBigModelService
             dto.setDialogId(dialogId);
             String detailId = dialogMapper.selectDialogDetailById(dto.getId());
             if(detailId == null) {
-                String detailUuid = IdUtils.fastSimpleUUID();
-                dto.setId(detailUuid);
+                //String detailUuid = IdUtils.fastSimpleUUID();
+                //dto.setId(dto.getId());
                 dialogMapper.insertDialogDetail(dto);
             }
         }
@@ -591,7 +605,7 @@ public class BigModelServiceImpl implements IBigModelService
                 // 对比两个时间相差多少天
                 long daysBetween = ChronoUnit.DAYS.between(today, entry.getKey());
                 Map<String, Object> m = new HashMap();
-                m.put("key", System.currentTimeMillis());
+                m.put("key", System.nanoTime());
                 m.put("type", "group");
                 if(daysBetween == 0l){
                     m.put("label", TODAY);
@@ -786,6 +800,7 @@ public class BigModelServiceImpl implements IBigModelService
                                                     resultList.addAll(listFromArray);
                                                 }
                                             }
+                                            break;
                                         }
                                         break;
                                     }
@@ -1100,7 +1115,7 @@ public class BigModelServiceImpl implements IBigModelService
     }
 
     @Override
-    public JSONObject uploadDocument(MultipartFile[] file, DocumentParams documentParams, String knowledgeId) {
+    public JSONObject uploadDocument(MultipartFile[] file, String knowledgeId) {
         String url = bigModelConfig.getBaseurl() + bigModelConfig.getDocument() + "/upload_document/" + knowledgeId;
 
         MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
@@ -1194,7 +1209,7 @@ public class BigModelServiceImpl implements IBigModelService
                                 .documentId(documentId)
                                 .sentenceSize(String.valueOf(documentParams.getSentence_size()))
                                 .knowledgeType(documentParams.getKnowledge_type())
-                                .wordNum(documentParams.getWord_num_limit() == null ? null : Integer.valueOf(documentParams.getWord_num_limit()))
+                                .customSeparator(String.valueOf(documentParams.getCustom_separator()))
                                 .build();
                         bmDocumentMapper.updateDocument(bm);
                     }
@@ -1208,26 +1223,39 @@ public class BigModelServiceImpl implements IBigModelService
     }
 
     @Override
-    public JSONArray documentList(DocumentParams documentParams) {
-        String url = bigModelConfig.getBaseurl() + bigModelConfig.getDocument();
-        if(com.takai.common.utils.StringUtils.isNotEmpty(documentParams.getKnowledge_id())){
-            url += "?knowledge_id=" + documentParams.getKnowledge_id();
-        }
-        if (documentParams.getPage() >= 1) {
-            url += "&page=" + documentParams.getPage();
-        }
-        if (documentParams.getSize() >= 10) {
-            url += "&size=" + documentParams.getSize();
-        }
+    public JSONObject documentList(DocumentParams documentParams) {
+        String url = bigModelConfig.getBaseurl() + bigModelConfig.getDocument() + "?knowledge_id=" + documentParams.getKnowledge_id()
+                + "&page=" + documentParams.getPage() +"&size=" + documentParams.getSize();
         Request request = buildGetRequest(url);
         OkHttpClient client = buildOkHttpClient();
         try {
             Response response = client.newCall(request).execute();
             if(response.isSuccessful()){
+                JSONObject jsonObject = new JSONObject();
                 JSONObject obj = JSON.parseObject(response.body().string());
-                JSONObject dataObj = obj.getJSONObject("data");
-                JSONArray array = dataObj.getJSONArray("list");
-                return array;
+                if("200".equals(String.valueOf(obj.get("code")))){
+                    JSONObject dataObj = obj.getJSONObject("data");
+                    Integer total = dataObj.getInteger("total");
+                    JSONArray array = dataObj.getJSONArray("list");
+                    BmDocument param = BmDocument.builder().knowledgeId(documentParams.getKnowledge_id()).build();
+                    List<BmDocument> list = bmDocumentMapper.selectDocumentList(param);
+                    if(array != null && array.size() > 0){
+                        for(int i=0; i<array.size(); i++){
+                            JSONObject resultObj = array.getJSONObject(i);
+                            for (BmDocument vo: list){
+                                if(resultObj.getString("id").equals(vo.getDocumentId())){
+                                    resultObj.put("create_time", vo.getCreateTime());
+                                    resultObj.put("create_by", vo.getCreateBy());
+                                    resultObj.put("update_time", vo.getUpdateTime());
+                                    resultObj.put("update_by", vo.getUpdateBy());
+                                }
+                            }
+                        }
+                    }
+                    jsonObject.put("total", total);
+                    jsonObject.put("list", array);
+                    return jsonObject;
+                }
             }
         } catch (IOException e) {
             log.info("获取知识列表失败", e);
@@ -1388,7 +1416,31 @@ public class BigModelServiceImpl implements IBigModelService
 
     @Override
     public JSONObject createApplication(ApplicationParams params) {
+        //默认参数
+        params.setIcon_color("blue");
+        params.setIcon_type("robot_assist");
         String url = bigModelConfig.getBaseurl() + bigModelConfig.getApplication();
+        if(params != null && Objects.nonNull(params.getKnowledge_info().getRerank_status()) && params.getKnowledge_info().getRerank_status() == 1){
+            List<IndexType> reankList = new ArrayList();
+            for(int i=0; i<params.getKnowledge_ids().size(); i++){
+                IndexType type = new IndexType();
+                type.setIndex_type_id(i);
+                type.setKnowledge_id(params.getKnowledge_ids().get(i));
+                reankList.add(type);
+            }
+            params.getKnowledge_info().setRerank_index_type_list(reankList);
+        }
+        if(params != null && Objects.nonNull(params.getKnowledge_info().getRecall_method()) &&
+                ("embedding".equals(params.getKnowledge_info().getRecall_method()) || "mixed".equals(params.getKnowledge_info().getRecall_method()))){
+            List<IndexType> recallList = new ArrayList();
+            for(int i=0; i<params.getKnowledge_ids().size(); i++){
+                IndexType type = new IndexType();
+                type.setIndex_type_id(i);
+                type.setKnowledge_id(params.getKnowledge_ids().get(i));
+                recallList.add(type);
+            }
+            params.getKnowledge_info().setRecall_index_type_list(recallList);
+        }
         JSONObject jsonObject = JSONObject.from(params);
         RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8") , jsonObject.toJSONString());
         Request request = buildPostRequest(url, requestBody);
@@ -1426,6 +1478,27 @@ public class BigModelServiceImpl implements IBigModelService
     @Override
     public JSONObject updateApplication(ApplicationParams params, String appId) {
         String url = bigModelConfig.getBaseurl() + bigModelConfig.getApplication() + "/" + appId;
+        if(params != null && Objects.nonNull(params.getKnowledge_info().getRerank_status()) && params.getKnowledge_info().getRerank_status() == 1){
+            List<IndexType> reankList = new ArrayList();
+            for(int i=0; i<params.getKnowledge_ids().size(); i++){
+                IndexType type = new IndexType();
+                type.setIndex_type_id(i);
+                type.setKnowledge_id(params.getKnowledge_ids().get(i));
+                reankList.add(type);
+            }
+            params.getKnowledge_info().setRerank_index_type_list(reankList);
+        }
+        if(params != null && Objects.nonNull(params.getKnowledge_info().getRecall_method()) &&
+                ("embedding".equals(params.getKnowledge_info().getRecall_method()) || "mixed".equals(params.getKnowledge_info().getRecall_method()))){
+            List<IndexType> recallList = new ArrayList();
+            for(int i=0; i<params.getKnowledge_ids().size(); i++){
+                IndexType type = new IndexType();
+                type.setIndex_type_id(i);
+                type.setKnowledge_id(params.getKnowledge_ids().get(i));
+                recallList.add(type);
+            }
+            params.getKnowledge_info().setRecall_index_type_list(recallList);
+        }
         JSONObject json = JSONObject.from(params);
         RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8") , json.toJSONString());
         Request request = buildPutRequest(url, requestBody);
@@ -1441,24 +1514,29 @@ public class BigModelServiceImpl implements IBigModelService
                         //调用列表接口将应用数据写入数据库
                         getValidAppList();
                         //预设问题写入数据库
+                        questionMapper.delQuestionByAppId(appId);
                         List<QuestionInfo> list = params.getQuestionList();
                         if(!list.isEmpty() && list.size() > 0){
                             for(QuestionInfo vo : list){
+                                // 新增预设问题
+                                String uuid = IdUtils.simpleUUID();
+                                Question question = Question.builder().id(uuid).question(vo.getQuestion()).appId(appId).build();
+                                questionMapper.insertQuestion(question);
                                 //删除预设问题
-                                if(com.takai.common.utils.StringUtils.isNotEmpty(vo.getDelFlag()) && "1".equals(vo.getDelFlag())){
-                                    questionMapper.delQuestion(vo.getId());
-                                }else{
-                                    if(com.takai.common.utils.StringUtils.isNotEmpty(vo.getId())){
-                                        // 更新预设问题
-                                        Question question = Question.builder().question(vo.getQuestion()).build();
-                                        questionMapper.updateQuestion(question);
-                                    }else{
-                                        // 新增预设问题
-                                        String uuid = IdUtils.simpleUUID();
-                                        Question question = Question.builder().id(uuid).question(vo.getQuestion()).appId(appId).build();
-                                        questionMapper.insertQuestion(question);
-                                    }
-                                }
+//                                if(com.takai.common.utils.StringUtils.isNotEmpty(vo.getDelFlag()) && "1".equals(vo.getDelFlag())){
+//                                    questionMapper.delQuestion(vo.getId());
+//                                }else{
+//                                    if(com.takai.common.utils.StringUtils.isNotEmpty(vo.getId())){
+//                                        // 更新预设问题
+//                                        Question question = Question.builder().question(vo.getQuestion()).build();
+//                                        questionMapper.updateQuestion(question);
+//                                    }else{
+//                                        // 新增预设问题
+//                                        String uuid = IdUtils.simpleUUID();
+//                                        Question question = Question.builder().id(uuid).question(vo.getQuestion()).appId(appId).build();
+//                                        questionMapper.insertQuestion(question);
+//                                    }
+//                                }
                             }
                         }
                     }
@@ -1487,7 +1565,37 @@ public class BigModelServiceImpl implements IBigModelService
                 String result = response.body().string();
                 JSONObject object = JSON.parseObject(result);
                 if(object != null){
-                    return object.getJSONObject("data");
+                    JSONObject obj = object.getJSONObject("data");
+                    JSONArray array = obj.getJSONArray("list");
+                    if(array != null && array.size() > 0){
+                        List<ResultApplication> applicationList = new ArrayList();
+                        for(int i=0; i<array.size(); i++){
+                            BmApplication params = BmApplication.builder().appId(array.getJSONObject(i).getString("id")).build();
+                            BmApplication vo = bmApplicationMapper.selectTargetApplication(params);
+                            JSONObject json = array.getJSONObject(i);
+                            ResultApplication bkApplication = new ResultApplication();
+                            bkApplication.setAppId(json.getString("id"));
+                            bkApplication.setName(json.getString("name"));
+                            bkApplication.setModel(json.getString("model"));
+                            bkApplication.setDesc(json.getString("desc"));
+                            bkApplication.setPrompt(json.getString("prompt"));
+                            bkApplication.setTopP(json.getString("top_p"));
+                            bkApplication.setTemperature(String.valueOf(json.getInteger("temperature")));
+                            bkApplication.setKnowledgeIds(json.getString("Knowledge_ids"));
+                            bkApplication.setSliceCount(json.getInteger("slice_count"));
+                            bkApplication.setIconColor(json.getString("icon_color"));
+                            bkApplication.setIconType(json.getString("icon_type"));
+                            bkApplication.setCreateBy(vo == null ? null : vo.getCreateBy());
+                            bkApplication.setCreateTime(vo == null ? null : vo.getCreateTime());
+                            bkApplication.setUpdateBy(vo == null ? null : vo.getUpdateBy());
+                            bkApplication.setUpdateTime(vo == null ? null : vo.getUpdateTime());
+                            applicationList.add(bkApplication);
+                        }
+                        JSONObject jsonObject = new JSONObject();
+                        jsonObject.put("list", applicationList);
+                        jsonObject.put("total", obj.get("total"));
+                        return jsonObject;
+                    }
                 }
             }
         } catch (IOException e) {
@@ -1498,7 +1606,7 @@ public class BigModelServiceImpl implements IBigModelService
 
     @Override
     public JSONObject selectApplication(String appId) {
-        String url = bigModelConfig.getBaseurl() + bigModelConfig.getApplication() + "/" + appId;
+        String url = "https://open.bigmodel.cn/api/llm-application" + bigModelConfig.getApplication() + "/" + appId;
         Request request = buildGetRequest(url);
         OkHttpClient client = buildOkHttpClient();
         try {
@@ -1510,8 +1618,12 @@ public class BigModelServiceImpl implements IBigModelService
                     String code = String.valueOf(object.get("code"));
                     if("200".equals(code)){
                         JSONObject obj = new JSONObject();
-                        List<Question> list = questionMapper.getQuestionList(appId);
-                        obj.put("detail", object.getJSONObject("data"));
+//                        BmApplication params = BmApplication.builder().appId(appId).build();
+//                        BmApplication vo = bmApplicationMapper.selectTargetApplication(params);
+                        List<QuestionDTO> list = questionMapper.getQuestionList(appId);
+                        JSONObject json = object.getJSONObject("data");
+//                        json.put("max_token", vo.getMaxToken());
+                        obj.put("detail", json);
                         obj.put("questionlist", list);
                         return obj;
                     }
@@ -1547,6 +1659,110 @@ public class BigModelServiceImpl implements IBigModelService
         return null;
     }
 
+    @Override
+    public List<QuestionDTO> selectQuestionByAppId(String appId) {
+        List<QuestionDTO> List= questionMapper.getQuestionList(appId);
+        return List;
+    }
+
+    @Override
+    public Map<String, Object> queryKnowledgeList(Integer page, Integer size) {
+        String url =  bigModelConfig.getBaseurl() + bigModelConfig.getKnowledge() + "?page=" + page + "&size=" + size;
+        Request request = buildGetRequest(url);
+        OkHttpClient client = buildOkHttpClient();
+        try {
+            Response response = client.newCall(request).execute();
+            if(response.isSuccessful()) {
+                String body = response.body().string();
+                log.info("分页查询知识库返回:" + body);
+                JSONObject jsonObj = JSON.parseObject(body);
+                JSONObject obj = jsonObj.getJSONObject("data");
+                Integer total = obj.getInteger("total");
+                JSONArray array = obj.getJSONArray("list");
+                List<ResultKnowledge> knowledgeList = new ArrayList();
+                if(array != null && array.size() > 0){
+                    for(int i=0; i<array.size(); i++){
+                        BmKnowledge params = BmKnowledge.builder().knowledgeId(array.getJSONObject(i).getString("id")).build();
+                        BmKnowledge vo = bmKnowledgeMapper.selectTargetKnowledge(params);
+                        JSONObject json = array.getJSONObject(i);
+                        ResultKnowledge bmKnowledge = new ResultKnowledge();
+                        bmKnowledge.setKnowledgeId(json.getString("id"));
+                        bmKnowledge.setName(json.getString("name"));
+                        bmKnowledge.setDescription(json.getString("description"));
+                        bmKnowledge.setIcon(json.getString("icon"));
+                        bmKnowledge.setBackground(json.getString("background"));
+                        bmKnowledge.setEmbeddingId(json.getInteger("embedding_id"));
+                        bmKnowledge.setWordNum(json.getInteger("word_num"));
+                        bmKnowledge.setLength(json.getInteger("length"));
+                        bmKnowledge.setDocumentSize(json.getInteger("document_size"));
+                        bmKnowledge.setCreateBy(vo == null ? null : vo.getCreateBy());
+                        bmKnowledge.setCreateTime(vo == null ? null : vo.getCreateTime());
+                        bmKnowledge.setUpdateBy(vo == null ? null : vo.getUpdateBy());
+                        bmKnowledge.setUpdateTime(vo == null ? null : vo.getUpdateTime());
+                        knowledgeList.add(bmKnowledge);
+                    }
+                }
+                Map<String, Object> map = new HashMap();
+                map.put("list", knowledgeList);
+                map.put("total", total);
+                return map;
+            } else {
+                log.error("智谱 获取分页知识库失败:" , response);
+            }
+        } catch (Exception e) {
+            log.error("智谱 获取分页知识库失败:", e);
+        }
+        return null;
+    }
+
+    @Override
+    public Map<String, Object> getEmbedding() {
+        String url =  bigModelConfig.getBaseurl() + "/embedding";
+        Request request = buildGetRequest(url);
+        OkHttpClient client = buildOkHttpClient();
+        try {
+            Response response = client.newCall(request).execute();
+            if (response.isSuccessful()) {
+                String body = response.body().string();
+                log.info("向量模型列表返回:" + body);
+                JSONObject jsonObj = JSON.parseObject(body);
+                JSONObject obj = jsonObj.getJSONObject("data");
+                Integer total = obj.getInteger("total");
+                JSONArray array = obj.getJSONArray("list");
+                Map<String, Object> map = new HashMap();
+                map.put("list", array);
+                map.put("total", total);
+                return map;
+            }
+        } catch(Exception e){
+            log.error("智谱 获取向量模型列表失败:", e);
+        }
+        return null;
+    }
+
+    @Override
+    public JSONObject getModelList() {
+        String url = bigModelConfig.getModelList();
+        Request request = buildGetRequest(url);
+        OkHttpClient client = buildOkHttpClient();
+        try {
+            Response response = client.newCall(request).execute();
+            if (response.isSuccessful()) {
+                String body = response.body().string();
+                log.info("模型列表返回:" + body);
+                return JSON.parseObject(body);
+            }
+        } catch(Exception e){
+            log.error("智谱 获取向量模型列表失败:", e);
+        }
+        return null;
+    }
+
+    @Override
+    public List<DialogRespDTO> selectDialogListByAppId(String appId) {
+        return dialogMapper.selectDialogListByAppId(appId);
+    }
+
     private Request buildGetRequest(String url) {
         return new Request.Builder()
                 .addHeader("accept", "*/*")

+ 4 - 10
takai-bigmodel/src/main/resources/mapper/bm/BmApplicationMapper.xml

@@ -16,8 +16,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="model"   column="model"   />
 		<result property="iconColor"   column="icon_color"   />
 		<result property="iconType"   column="icon_type"   />
-		<result property="paramDesc"   column="param_desc"   />
-		<result property="maxToken"   column="max_token"   />
+		<result property="maxToken" column="max_token" />
+		<result property="paramDesc"   column="param_desc"/>
 		<result property="remark"   column="remark"   />
 		<result property="createBy"   column="create_by"   />
 		<result property="createTime" column="create_time" />
@@ -26,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 	
 	<sql id="selectSql">
-        select appId, name, description, prompt, top_p, temperature, knowledge_ids, slice_count,model,icon_color,icon_type, param_desc, max_token, create_by, create_time, remark
+        select appId, name, description, prompt, top_p, temperature, knowledge_ids, slice_count,model,icon_color,icon_type,max_token, create_by, create_time, remark
 		from bm_application
     </sql>
 
@@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	
 	<select id="selectTargetApplication" parameterType="BmApplication" resultMap="BmApplicationResult">
 		<include refid="selectSql"/>
-		where app_id = #{appId}
+		where appId = #{appId}
 	</select>
  	
  	<insert id="insertApplication" parameterType="BmApplication">
@@ -58,8 +58,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="model != null and model != ''">model,</if>
 			<if test="iconColor != null and iconColor != ''">icon_color,</if>
 			<if test="iconType != null and iconType != ''">icon_type,</if>
-			<if test="paramDesc != null and paramDesc != ''">param_desc,</if>
-			<if test="maxToken != null and maxToken != ''">max_token,</if>
  			<if test="remark != null and remark != ''">remark,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
  			create_time
@@ -75,8 +73,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="model != null and model != ''">#{model},</if>
 			<if test="iconColor != null and iconColor != ''">#{iconColor},</if>
 			<if test="iconType != null and iconType != ''">#{iconType},</if>
-			<if test="paramDesc != null and paramDesc != ''">#{paramDesc},</if>
-			<if test="maxToken != null and maxToken != ''">#{maxToken},</if>
  			<if test="remark != null and remark != ''">#{remark},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
  			sysdate()
@@ -97,8 +93,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="iconColor != null and iconColor != ''">icon_color = #{iconColor},</if>
 			<if test="iconType != null and iconType != ''">icon_type = #{iconType},</if>
 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
-			<if test="paramDesc != null and paramDesc != ''">param_desc = #{paramDesc},</if>
-			<if test="maxToken != null and maxToken != ''">max_token = #{maxToken},</if>
 			<if test="remark != null">remark = #{remark},</if>
 			update_time = sysdate()
 		</set>

+ 1 - 1
takai-bigmodel/src/main/resources/mapper/bm/BmDocumentMapper.xml

@@ -23,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 	
 	<sql id="selectSql">
-        select document_id, knowledge_id,custom_separator, knowledge_type, sentence_size, length, word_num, name,url, create_by, create_time, remark
+        select document_id, knowledge_id,custom_separator, knowledge_type, sentence_size, length, word_num, name,url, create_by, create_time, remark, update_time
 		from bm_document
     </sql>
 

+ 18 - 0
takai-bigmodel/src/main/resources/mapper/bm/DialogMapper.xml

@@ -145,5 +145,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		where dd.dialog_id = #{id}
 		ORDER BY dd.create_time asc, dd.type desc
 	</select>
+
+	<select id="selectDialogListByAppId" resultMap="DialogResult">
+		select
+			d.id,
+			d.app_id as appId,
+			d.knowledge_id as knowledgeId,
+			d.user_id as userId,
+			d.dialog_name,
+			d.create_time,
+			dd.id as did,
+			dd.type,
+			dd.content,
+			dd.dialog_id
+		from dialog d
+		left join dialog_detail dd on d.id = dd.dialog_id
+		where d.app_id = #{appId}
+		ORDER BY dd.create_time asc, dd.type desc
+	</select>
 	
 </mapper> 

+ 2 - 2
takai-bigmodel/src/main/resources/mapper/bm/QuestionMapper.xml

@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.takai.bigmodel.mapper.QuestionMapper">
 	
-	<resultMap type="Question" id="QuestionResult">
+	<resultMap type="QuestionDTO" id="QuestionResult">
 		<id property="id"   column="id"   />
 		<result property="app_id"  column="app_id"  />
 		<result property="question"  column="question"  />
@@ -16,7 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			q.id,
 			q.app_id as appId,
 			q.question,
-			q.create_time
+			q.create_time as createTime
 		from question q
 		where q.app_id = #{appId}
 		ORDER BY q.create_time desc

+ 13 - 0
takai-common/src/main/java/com/takai/common/config/BigModelConfig.java

@@ -52,6 +52,11 @@ public class BigModelConfig
      */
     private String assistant;
 
+    /**
+     * 模型列表
+     */
+    private String modelList;
+
 
     public String getBigModelApiKey()
     {
@@ -150,4 +155,12 @@ public class BigModelConfig
     public void setAssistant(String assistant) {
         this.assistant = assistant;
     }
+
+    public String getModelList() {
+        return modelList;
+    }
+
+    public void setModelList(String modelList) {
+        this.modelList = modelList;
+    }
 }

+ 2 - 0
takai-common/src/main/java/com/takai/common/core/domain/entity/Menu.java

@@ -0,0 +1,2 @@
+package com.takai.common.core.domain.entity;public class Menu {
+}

+ 39 - 0
takai-common/src/main/java/com/takai/common/core/domain/entity/Prompt.java

@@ -0,0 +1,39 @@
+package com.takai.common.core.domain.entity;
+
+import com.takai.common.annotation.Excel;
+import com.takai.common.core.domain.BaseEntity;
+
+
+public class Prompt extends BaseEntity {
+
+//    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 应用ID
+     */
+    @Excel(name = "应用ID", cellType = Excel.ColumnType.NUMERIC, prompt = "应用ID")
+    private String appId;
+
+    /**
+     * 提示词
+     */
+    @Excel(name = "提示词")
+    private String prompt;
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public String getPrompt() {
+        return prompt;
+    }
+
+    public void setPrompt(String prompt) {
+        this.prompt = prompt;
+    }
+}

+ 1 - 1
takai-framework/src/main/java/com/takai/framework/config/SecurityConfig.java

@@ -115,7 +115,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                         "/**/completions", "/**/slice_info/**", "/**/async_result/**", "/**/assistant/**", "/getInfo",
                         "/checkToken", "/**/presets/**", "/**/index/**", "/**/createApplaction/**", "/**/createKnowledge/**",
                         "/**/updateKnowledge/**", "/**/detailKnowledge/**", "/**/delKnowledge/**", "/**/knowledgeList/**",
-                        "/**//bigmodel/api/**").permitAll()
+                        "/**//bigmodel/api/**", "/**/tool/gen/**").permitAll()
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()

+ 7 - 0
takai-system/src/main/java/com/takai/system/mapper/PromptMapper.java

@@ -0,0 +1,7 @@
+package com.takai.system.mapper;
+
+public interface PromptMapper {
+
+    Prompt queryById(String appId);
+
+}

+ 18 - 0
takai-system/src/main/java/com/takai/system/service/IPromptService.java

@@ -0,0 +1,18 @@
+package com.takai.system.service;
+
+import java.util.List;
+
+public interface IPromptService {
+
+
+    Prompt queryById(String appId);
+
+
+    List<Prompt> queryList(Prompt bo);
+
+    Boolean insertByBo(Prompt bo);
+
+    Boolean updateByBo(Prompt bo);
+
+//    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+}

+ 40 - 0
takai-system/src/main/java/com/takai/system/service/impl/PromptServiceImpl.java

@@ -0,0 +1,40 @@
+package com.takai.system.service.impl;
+
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2025-02-06
+ */
+@RequiredArgsConstructor
+@Service
+public class PromptServiceImpl implements IPromptService {
+
+    private final PromptMapper baseMapper;
+
+
+    @Override
+    public Prompt queryById(String appId) {
+        return baseMapper.queryById(appId);
+    }
+
+    @Override
+    public List<Prompt> queryList(Prompt bo) {
+        return null;
+    }
+
+    @Override
+    public Boolean insertByBo(Prompt bo) {
+        return null;
+    }
+
+    @Override
+    public Boolean updateByBo(Prompt bo) {
+        return null;
+    }
+}

+ 25 - 0
takai-system/src/main/resources/mapper/system/PromptMapper.xml

@@ -0,0 +1,25 @@
+<?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.dromara.system.mapper.PromptMapper">
+
+    <resultMap type="Prompt" id="PromptResult">
+        <id     property="appId"        column="app_id"      />
+        <result property="prompt"       column="prompt"    />
+        <result property="createBy"     column="create_by"    />
+        <result property="createTime"   column="create_time"  />
+        <result property="updateBy"     column="update_by"    />
+        <result property="updateTime"   column="update_time"  />
+        <result property="remark"       column="remark"       />
+    </resultMap>
+
+    <select id="queryById" resultMap="PromptResult">
+        select
+            app_id as appId,
+            prompt,
+            create_time as createTime
+        from prompt
+    </select>
+
+</mapper>