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);