From dbab5bcc5a843f5e227ffc63577a60059e18bd9c Mon Sep 17 00:00:00 2001
From: liu <liujiatong112@163.com>
Date: Wed, 7 Aug 2024 11:46:20 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/supervision/chat/UploadParamEnum.java | 37 +++++++++++++++++++
 .../chat/client/LangChainChatService.java     |  8 ++--
 .../chat/client/LangChainChatServiceImpl.java | 32 ----------------
 .../impl/NoteRecordSplitServiceImpl.java      | 27 +++++++-------
 4 files changed, 54 insertions(+), 50 deletions(-)
 create mode 100644 src/main/java/com/supervision/chat/UploadParamEnum.java
 delete mode 100644 src/main/java/com/supervision/chat/client/LangChainChatServiceImpl.java

diff --git a/src/main/java/com/supervision/chat/UploadParamEnum.java b/src/main/java/com/supervision/chat/UploadParamEnum.java
new file mode 100644
index 0000000..cf6856e
--- /dev/null
+++ b/src/main/java/com/supervision/chat/UploadParamEnum.java
@@ -0,0 +1,37 @@
+package com.supervision.chat;
+
+import org.springframework.web.bind.annotation.RequestPart;
+
+public enum UploadParamEnum {
+    to_vector_store(null, true, null),
+    override(null, false, null),
+    not_refresh_vs_cache(null, false, null),
+    chunk_size(null, null, 250),
+    chunk_overlap(null, null, 50),
+    zh_title_enhance(null, false, null),
+    docs("{\"test.txt\":[{\"page_content\":\"custom doc\",\"metadata\":{},\"type\":\"Document\"}]}", null, null);
+
+    private final String strValue;
+
+    private final Boolean booleanValue;
+
+    private final Integer intValue;
+
+    UploadParamEnum(String strValue, Boolean booleanValue, Integer intValue) {
+        this.strValue = strValue;
+        this.booleanValue = booleanValue;
+        this.intValue = intValue;
+    }
+
+    public String getStrValue() {
+        return strValue;
+    }
+
+    public Boolean getBooleanValue() {
+        return booleanValue;
+    }
+
+    public Integer getIntValue() {
+        return intValue;
+    }
+}
diff --git a/src/main/java/com/supervision/chat/client/LangChainChatService.java b/src/main/java/com/supervision/chat/client/LangChainChatService.java
index 0f0f8fc..bb3ce29 100644
--- a/src/main/java/com/supervision/chat/client/LangChainChatService.java
+++ b/src/main/java/com/supervision/chat/client/LangChainChatService.java
@@ -41,12 +41,12 @@ public interface LangChainChatService {
     LangChainChatRes uploadFile(@RequestPart String knowledge_base_name,
                                 @RequestPart MultipartFile files,
                                 @RequestPart String text_splitter_type,
-                                @RequestPart String to_vector_store,
-                                @RequestPart String override,
-                                @RequestPart String not_refresh_vs_cache,
+                                @RequestPart Boolean to_vector_store,
+                                @RequestPart Boolean override,
+                                @RequestPart Boolean not_refresh_vs_cache,
                                 @RequestPart Integer chunk_size,
                                 @RequestPart Integer chunk_overlap,
-                                @RequestPart String zh_title_enhance,
+                                @RequestPart Boolean zh_title_enhance,
                                 @RequestPart String docs);
 
     /**
diff --git a/src/main/java/com/supervision/chat/client/LangChainChatServiceImpl.java b/src/main/java/com/supervision/chat/client/LangChainChatServiceImpl.java
deleted file mode 100644
index 17885d4..0000000
--- a/src/main/java/com/supervision/chat/client/LangChainChatServiceImpl.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.supervision.chat.client;
-
-import cn.hutool.http.HttpUtil;
-import cn.hutool.json.JSONUtil;
-import com.supervision.chat.client.dto.CreateBaseDTO;
-import com.supervision.chat.client.dto.LangChainChatRes;
-import org.apache.hc.client5.http.classic.HttpClient;
-import org.apache.hc.client5.http.classic.methods.HttpPost;
-import org.apache.hc.core5.http.HttpEntity;
-import org.apache.hc.core5.http.HttpResponse;
-import org.apache.hc.core5.http.io.entity.EntityUtils;
-import org.apache.hc.core5.http.io.entity.StringEntity;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-import java.io.IOException;
-
-@Service
-public class LangChainChatServiceImpl{
-
-    @Value("${langChain-chat.url}")
-    private String LangChainChatClientUrl;
-
-
-    public LangChainChatRes chat(CreateBaseDTO createBaseDTO) {
-        String post = HttpUtil.post(LangChainChatClientUrl + "create_knowledge_base", JSONUtil.toJsonStr(createBaseDTO));
-        if (JSONUtil.isTypeJSON(post)) {
-            return JSONUtil.toBean(post, LangChainChatRes.class);
-        }
-        return null;
-    }
-}
diff --git a/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java b/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java
index a85c9cf..ee33bb2 100644
--- a/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java
+++ b/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java
@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.supervision.chat.UploadParamEnum;
 import com.supervision.chat.client.CustomMultipartFile;
 import com.supervision.chat.client.LangChainChatService;
 import com.supervision.chat.client.dto.DeleteFileDTO;
@@ -116,18 +117,18 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
                     continue;
                 }
                 // 这里需要把文件传输,传输到知识库中去
-                CustomMultipartFile mockMultipartFile = new CustomMultipartFile(minioFile.getFilename(),inputStream);
+                CustomMultipartFile mockMultipartFile = new CustomMultipartFile(minioFile.getFilename(), inputStream);
                 LangChainChatRes langChainChatRes = langChainChatService.uploadFile("11111111",
                         mockMultipartFile,
                         "问讯笔录",
-                        "true",
-                        "false",
-                        "false",
-                        250,
-                        50,
-                        "false",
-                        "{\"test.txt\":[{\"page_content\":\"custom doc\",\"metadata\":{},\"type\":\"Document\"}]}");
-                if (!langChainChatRes.getCode().equals(200)){
+                        UploadParamEnum.to_vector_store.getBooleanValue(),
+                        UploadParamEnum.override.getBooleanValue(),
+                        UploadParamEnum.not_refresh_vs_cache.getBooleanValue(),
+                        UploadParamEnum.chunk_size.getIntValue(),
+                        UploadParamEnum.chunk_overlap.getIntValue(),
+                        UploadParamEnum.zh_title_enhance.getBooleanValue(),
+                        UploadParamEnum.docs.getStrValue());
+                if (!langChainChatRes.getCode().equals(200)) {
                     log.error("上传文件失败:{}", langChainChatRes.getMsg());
                     throw new RuntimeException("上传文件失败");
                 }
@@ -158,8 +159,6 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
                     // 对笔录进行分类,并对笔录进行提取三元组
                     recordSplitProcessService.process(allTypeList, splitList);
                 }
-
-
             }
             caseStatusManageService.whenUploadRecord(record.getCaseId());
             return "保存成功";
@@ -279,7 +278,7 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
     }
 
     @Override
-    @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class,noRollbackFor = BusinessException.class)
+    @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class, noRollbackFor = BusinessException.class)
     public void delRecords(String id) {
 
         NoteRecord noteRecord = noteRecordMapper.selectById(id);
@@ -295,8 +294,8 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
                 MinioFile minioFile = minioFileMapper.selectById(fileId);
                 // 删除文件
                 LangChainChatRes langChainChatRes = langChainChatService.deleteFile(DeleteFileDTO.create(noteRecord.getCaseId(), minioFile.getFilename()));
-                if (!langChainChatRes.getCode().equals(200)){
-                   throw new BusinessException("删除文件:"  + minioFile.getFilename() + " 失败!");
+                if (!langChainChatRes.getCode().equals(200)) {
+                    throw new BusinessException("删除文件:" + minioFile.getFilename() + " 失败!");
                 }
                 minioFile.setDataStatus(StringUtils.getUUID());
                 minioFileMapper.updateById(minioFile);