From 3898ea5135cd1b674b410920ff2305b1d8402fc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 31 Dec 2024 13:36:58 +0800 Subject: [PATCH] 'commit' --- .../java/Tools/MaxKb/Model/MaxKbModel.java | 42 +++++++++---------- .../Tools/MaxKb/Service/Impl/MaxKbImpl.java | 25 ++--------- .../Tools/MaxKb/Service/MaxKbService.java | 19 ++++----- src/main/java/Tools/MaxKb/TestMaxKB.java | 7 +--- .../MaxKb/{ => ToDel}/UploadDocument.java | 7 ++-- src/main/java/Tools/MaxKb/UploadQA.java | 14 ++++--- src/main/java/UnitTest/TestMaxKB.java | 33 --------------- 7 files changed, 47 insertions(+), 100 deletions(-) rename src/main/java/Tools/MaxKb/{ => ToDel}/UploadDocument.java (77%) delete mode 100644 src/main/java/UnitTest/TestMaxKB.java diff --git a/src/main/java/Tools/MaxKb/Model/MaxKbModel.java b/src/main/java/Tools/MaxKb/Model/MaxKbModel.java index 0df8d58f..9ae77239 100644 --- a/src/main/java/Tools/MaxKb/Model/MaxKbModel.java +++ b/src/main/java/Tools/MaxKb/Model/MaxKbModel.java @@ -9,23 +9,23 @@ import java.util.UUID; public class MaxKbModel { /** - * @param dataSetName 数据集名称 + * @param zskName 数据集名称 * @return */ - public List getDataSetList(String dataSetName) { + public List getZskList(String zskName) { String sql = "select * from dataset where name=?"; - return Db.find(sql, dataSetName); + return Db.find(sql, zskName); } /** * 根据数据集id获取文档列表 * - * @param dataset_id 数据集id + * @param zskId 数据集id * @return */ - public List getDocumentListByDataSetId(String dataset_id) { + public List getDocumentListByZskId(String zskId) { String sql = "select * from document where dataset_id=?::uuid order by create_time desc"; - return Db.find(sql, dataset_id); + return Db.find(sql, zskId); } /** @@ -50,12 +50,12 @@ public class MaxKbModel { /** * 获取模型 * - * @param model_name 模型名称 + * @param modelName 模型名称 * @return */ - public List getModel(String model_name) { + public List getModel(String modelName) { String sql = "select * from model where name=?"; - return Db.find(sql, model_name); + return Db.find(sql, modelName); } /** @@ -99,24 +99,24 @@ public class MaxKbModel { /** * 获取数据集 * - * @param dataset_name 数据集名称 + * @param zskName 数据集名称 * @return */ - public Record getDataSet(String dataset_name) { + public Record getZsk(String zskName) { String sql = "select * from dataset where name=?"; - return Db.findFirst(sql, dataset_name); + return Db.findFirst(sql, zskName); } /** * 增加数据集 * - * @param sourceDatasetName 数据集名称 + * @param sourceZskName 数据集名称 */ - public String addDataSet(String sourceDatasetName, String targetDatasetName) { + public String addZsk(String sourceZskName, String targetZskName) { //获取数据集 - Record record = getDataSet(sourceDatasetName); + Record record = getZsk(sourceZskName); if (record == null) { - System.out.println(sourceDatasetName + "数据集不存在!"); + System.out.println(sourceZskName + "数据集不存在!"); System.exit(0); } //克隆出对象 @@ -124,7 +124,7 @@ public class MaxKbModel { //生成一个uuid record.set("id", UUID.randomUUID()); //名称 - record.set("name", targetDatasetName); + record.set("name", targetZskName); //描述 record.set("desc", "【代码生成】"); //增加 @@ -135,13 +135,13 @@ public class MaxKbModel { /** * 生成访问Token * - * @param application_id 应用的id + * @param applicationId 应用的id */ - public String addAccessToken(String application_id) { + public String addAccessToken(String applicationId) { Record record = new Record(); record.set("create_time", LocalDateTime.now()); record.set("update_time", LocalDateTime.now()); - record.set("application_id", UUID.fromString(application_id)); + record.set("application_id", UUID.fromString(applicationId)); //生成一个16位的随机数 record.set("access_token", UUID.randomUUID().toString().replace("-", "").substring(0, 16).toLowerCase()); record.set("is_active", true); @@ -156,7 +156,7 @@ public class MaxKbModel { /** * 删除代码生成的数据 */ - public void delCodeGenerateApplicationDataSet() { + public void delCodeGenerateApplicationZsk() { //通过SQL查询出所有desc=【代码生成】的数据 String sql = "select * from application where \"desc\"='【代码生成】'"; List list = Db.find(sql); diff --git a/src/main/java/Tools/MaxKb/Service/Impl/MaxKbImpl.java b/src/main/java/Tools/MaxKb/Service/Impl/MaxKbImpl.java index e469efc5..becd4f10 100644 --- a/src/main/java/Tools/MaxKb/Service/Impl/MaxKbImpl.java +++ b/src/main/java/Tools/MaxKb/Service/Impl/MaxKbImpl.java @@ -16,6 +16,7 @@ import java.util.List; public class MaxKbImpl { //MaxKB的url static final String baseUrl = PropKit.get("baseUrl"); + //获取身份识别码接口 static final String Authorization_URL = baseUrl + "/api/user/login"; @@ -153,13 +154,13 @@ public class MaxKbImpl { /** * 手动生成问题 * + * @param authCode 验证码 * @param zskId 知识库id * @param modelId 模型id * @param documentId 文档id * @return */ - public static JSONObject manualQuestion(String zskId, String modelId, String documentId) { - String authCode = MaxKbImpl.getAuthorization(); + public static JSONObject manualQuestion(String authCode, String zskId, String modelId, String documentId) { String url = baseUrl + "/api/dataset/" + zskId + "/document/batch_generate_related"; JSONObject jo = new JSONObject(); jo.put("model_id", modelId); @@ -187,7 +188,7 @@ public class MaxKbImpl { * @param body 分段后的文字内容 * @return */ - public static String _bach(String authCode, String zskId, String body) { + public static String uploadDocument(String authCode, String zskId, String body) { String url = baseUrl + "/api/dataset/" + zskId + "/document/_bach"; HttpResponse response = HttpRequest.post(url) .header("Accept", "application/json, text/plain, */*") @@ -200,24 +201,6 @@ public class MaxKbImpl { return JSONObject.parseObject(response.body()).getJSONArray("data").getJSONObject(0).getString("id"); } - /** - * 获取一个会话id - * - * @param authCode 授权码 - * @param applicationId 应用id - * @return - */ - public static String getChatId(String authCode, String applicationId) { - //根据应用id,获取会话id - String url = baseUrl + "/api/application/" + applicationId + "/chat/open"; - String result = HttpRequest.get(url) - .header("Authorization", authCode) - .header("Content-Type", "application/json") - .execute() - .body(); - return JSONObject.parseObject(result).getString("data"); - } - /** * 向指定的会话ID发送聊天消息 * diff --git a/src/main/java/Tools/MaxKb/Service/MaxKbService.java b/src/main/java/Tools/MaxKb/Service/MaxKbService.java index 49361b01..d8f1d9b2 100644 --- a/src/main/java/Tools/MaxKb/Service/MaxKbService.java +++ b/src/main/java/Tools/MaxKb/Service/MaxKbService.java @@ -20,7 +20,7 @@ public class MaxKbService { * @return */ public String getZskId(String zskName) { - List list = mm.getDataSetList(zskName); + List list = mm.getZskList(zskName); if (list.size() > 1) { System.out.println("数据集:【" + zskName + "】名称重复,请检查后重新运行!"); return null; @@ -39,16 +39,15 @@ public class MaxKbService { * @param zskName 数据集名称 * @param uploadFile 文件路径 */ - public String uploadQA(String zskName, String uploadFile) { + public String uploadQA(String authCode, String zskName, String uploadFile) { //数据集ID String zskId = getZskId(zskName); //在上传文档前,需要删除掉旧的同名文档 File fi = new File(uploadFile); String fileName = fi.getName(); - //获取身份识别 - String authCode = MaxKbImpl.getAuthorization(); + //上传文档 - List listDocuments = mm.getDocumentListByDataSetId(zskId); + List listDocuments = mm.getDocumentListByZskId(zskId); for (Record record : listDocuments) { String documentName = record.getStr("name"); if (documentName.equals(fileName)) { @@ -90,7 +89,7 @@ public class MaxKbService { /** * 上传文档 */ - public String _bach(String zskName, String uploadFile) { + public String uploadDocument(String zskName, String uploadFile) { //数据集ID String zskId = getZskId(zskName); //上传文件 @@ -103,7 +102,7 @@ public class MaxKbService { j.remove("content"); jaRes.add(j); } - return MaxKbImpl._bach(MaxKbImpl.getAuthorization(), zskId, jaRes.toString()); + return MaxKbImpl.uploadDocument(MaxKbImpl.getAuthorization(), zskId, jaRes.toString()); } /** @@ -113,7 +112,6 @@ public class MaxKbService { * @return */ public String batch_generate_related(String zskName, String documentId) { - //数据集ID String zskId = getZskId(zskName); return MaxKbImpl.batch_generate_related(MaxKbImpl.getAuthorization(), zskId, documentId); } @@ -121,12 +119,13 @@ public class MaxKbService { /** * 生成问题 * + * @param authCode 验证码 * @param zskName 知识库名称 * @param modelName 模型名称 * @param documentId 文档Id * @return */ - public JSONObject manualQuestion(String zskName, String modelName, String documentId) throws InterruptedException { + public JSONObject manualQuestion(String authCode, String zskName, String modelName, String documentId) throws InterruptedException { //等待模型生成问题完毕 while (true) { boolean finish = mm.autoIndexed(documentId); @@ -136,6 +135,6 @@ public class MaxKbService { Thread.sleep(500); System.out.println(CommonUtil.getCurrentTime() + " 正在等待模型生成问题完毕..."); } - return MaxKbImpl.manualQuestion(getZskId(zskName), getModelIdByModelName(modelName), documentId); + return MaxKbImpl.manualQuestion(authCode, getZskId(zskName), getModelIdByModelName(modelName), documentId); } } diff --git a/src/main/java/Tools/MaxKb/TestMaxKB.java b/src/main/java/Tools/MaxKb/TestMaxKB.java index 202837ac..05a25f93 100644 --- a/src/main/java/Tools/MaxKb/TestMaxKB.java +++ b/src/main/java/Tools/MaxKb/TestMaxKB.java @@ -3,11 +3,6 @@ package Tools.MaxKb; import Tools.MaxKb.Model.MaxKbModel; import Tools.MaxKb.Util.MaxKbUtil; import com.jfinal.kit.PropKit; -import com.jfinal.plugin.activerecord.Db; -import com.jfinal.plugin.activerecord.Record; - -import java.time.LocalDateTime; -import java.util.UUID; public class TestMaxKB { @@ -20,7 +15,7 @@ public class TestMaxKB { MaxKbUtil.Init(); //1、删除代码生成的应用程序与知识库 - mkm.delCodeGenerateApplicationDataSet(); + mkm.delCodeGenerateApplicationZsk(); // //2、拷贝生成应用 // String sourceApplicationName = "应用【模板】"; diff --git a/src/main/java/Tools/MaxKb/UploadDocument.java b/src/main/java/Tools/MaxKb/ToDel/UploadDocument.java similarity index 77% rename from src/main/java/Tools/MaxKb/UploadDocument.java rename to src/main/java/Tools/MaxKb/ToDel/UploadDocument.java index 7de7b4b5..15762512 100644 --- a/src/main/java/Tools/MaxKb/UploadDocument.java +++ b/src/main/java/Tools/MaxKb/ToDel/UploadDocument.java @@ -1,4 +1,4 @@ -package Tools.MaxKb; +package Tools.MaxKb.ToDel; import Tools.MaxKb.Service.MaxKbService; import Tools.MaxKb.Util.MaxKbUtil; @@ -16,9 +16,10 @@ public class UploadDocument { //初始化数据库 MaxKbUtil.Init(); - //测试上传 + //测试上传 【全面依赖于QA,准备废弃掉Document】 String dataSetName = "知识库【模板】"; - String documentId = service._bach(dataSetName, uploadFile); + String documentId = service.uploadDocument(dataSetName, uploadFile); + //生成问题 String res = service.batch_generate_related(dataSetName, documentId); System.out.println(res); diff --git a/src/main/java/Tools/MaxKb/UploadQA.java b/src/main/java/Tools/MaxKb/UploadQA.java index c8df1927..4dfcad57 100644 --- a/src/main/java/Tools/MaxKb/UploadQA.java +++ b/src/main/java/Tools/MaxKb/UploadQA.java @@ -1,12 +1,11 @@ package Tools.MaxKb; +import Tools.MaxKb.Service.Impl.MaxKbImpl; import Tools.MaxKb.Service.MaxKbService; import Tools.MaxKb.Util.MaxKbUtil; import com.alibaba.fastjson.JSONObject; import com.jfinal.kit.PropKit; -import java.sql.SQLOutput; - public class UploadQA { //要上传的QA知识内容 static String uploadFile = "D:\\dsWork\\QingLong\\Doc\\MaxKB\\黄海的个人简历【QA版本】.xlsx"; @@ -18,13 +17,16 @@ public class UploadQA { //初始化数据库 MaxKbUtil.Init(); - //1、上传文件 + //1、获取身份识别 + String authCode = MaxKbImpl.getAuthorization(); + + //2、上传文件 String zskName = "知识库【模板】"; - String documentId = service.uploadQA(zskName, uploadFile); + String documentId = service.uploadQA(authCode, zskName, uploadFile); - //2、手动生成问题 + //3、手动生成问题 String modelName = "DeepSeek";//使用哪个模型 - JSONObject res = service.manualQuestion(zskName, modelName, documentId); + JSONObject res = service.manualQuestion(authCode,zskName, modelName, documentId); System.out.println("恭喜,所有操作成功完成!"); } } \ No newline at end of file diff --git a/src/main/java/UnitTest/TestMaxKB.java b/src/main/java/UnitTest/TestMaxKB.java deleted file mode 100644 index 41befdc6..00000000 --- a/src/main/java/UnitTest/TestMaxKB.java +++ /dev/null @@ -1,33 +0,0 @@ -package UnitTest; - -import Tools.MaxKb.Model.MaxKbModel; -import Tools.MaxKb.Service.Impl.MaxKbImpl; -import Tools.MaxKb.Util.MaxKbUtil; -import cn.hutool.core.io.FileUtil; -import com.jfinal.kit.PropKit; - -public class TestMaxKB { - public static void main(String[] args) { - String filePath = "D:\\dsWork\\QingLong\\Doc\\MaxKB\\黄海的个人简历.txt"; - MaxKbModel mkm = new MaxKbModel(); - //加载配置文件 - PropKit.use("MaxKb.properties"); - //初始化数据库 - //MaxKbUtil.Init(); - - String apiKey = "application-83bfbc8a53b567a6d0e300680689655c"; - String applicationId = "ddea9cf9-fe45-4c4a-af67-cf095e3acd05"; - - //String chat_id = MaxKbImpl.getChatId(apiKey, applicationId); - //System.out.println(chat_id); - - String chat_id="33341d50-c718-11ef-a24e-0242ac120003"; - MaxKbImpl.sendChatMessage(apiKey, chat_id, FileUtil.readUtf8String(filePath)); - -// for (String s : result.split("\n")) { -// //JSONObject jsonObject= JSONObject.parseObject(s); -// //System.out.println(jsonObject.getString("data")); -// } - - } -}