From 5c71283bce20bcfca7c2c5e0d9b6b86d3897224b 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 10:11:11 +0800 Subject: [PATCH] 'commit' --- .../Tools/MaxKb/Service/Impl/MaxKbImpl.java | 28 ++++++++++++++++++- .../Tools/MaxKb/Service/MaxKbService.java | 26 +++++++++++++++-- src/main/java/Tools/MaxKb/UploadDocument.java | 6 ++-- src/main/resources/MaxKbGenerateRelated.json | 7 +++++ 4 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/MaxKbGenerateRelated.json diff --git a/src/main/java/Tools/MaxKb/Service/Impl/MaxKbImpl.java b/src/main/java/Tools/MaxKb/Service/Impl/MaxKbImpl.java index a47e76bf..3f113403 100644 --- a/src/main/java/Tools/MaxKb/Service/Impl/MaxKbImpl.java +++ b/src/main/java/Tools/MaxKb/Service/Impl/MaxKbImpl.java @@ -1,13 +1,16 @@ package Tools.MaxKb.Service.Impl; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; +import com.jfinal.kit.PathKit; import com.jfinal.kit.PropKit; import java.io.File; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class MaxKbImpl { @@ -194,7 +197,7 @@ public class MaxKbImpl { .header("Connection", "keep-alive") .header("Content-Type", "application/json") .body(body).execute(); - return response.body(); + return JSONObject.parseObject(response.body()).getJSONArray("data").getJSONObject(0).getString("id"); } /** @@ -237,4 +240,27 @@ public class MaxKbImpl { .body(); return result; } + + /** + * 针对已经上传的文档进行生成问题 + * + * @param authCode 授权码 + * @param zskId 知识库ID + * @param documentId 文档ID + * @return + */ + public static String batch_generate_related(String authCode, String zskId, String documentId) { + String url = baseUrl + "/api/dataset/" + zskId + "/document/batch_generate_related"; + String generateRelatedJson = FileUtil.readUtf8String(PathKit.getRootClassPath() + "/MaxKbGenerateRelated.json"); + JSONObject jo = JSONObject.parseObject(generateRelatedJson); + jo.remove("document_id_list"); + jo.put("document_id_list", Arrays.asList(documentId)); + var result = HttpRequest.put(url) + .header("Authorization", authCode) + .header("Content-Type", "application/json") + .body(jo.toString()) + .execute() + .body(); + return result; + } } diff --git a/src/main/java/Tools/MaxKb/Service/MaxKbService.java b/src/main/java/Tools/MaxKb/Service/MaxKbService.java index 0e7fe51f..95ccc1e6 100644 --- a/src/main/java/Tools/MaxKb/Service/MaxKbService.java +++ b/src/main/java/Tools/MaxKb/Service/MaxKbService.java @@ -74,6 +74,7 @@ public class MaxKbService { /** * 分割文档 + * * @param uploadFile * @return */ @@ -102,11 +103,32 @@ public class MaxKbService { JSONArray ja = jo.getJSONArray("data"); JSONArray jaRes = new JSONArray(); for (Object o : ja) { - cn.hutool.json.JSONObject j = (cn.hutool.json.JSONObject) (o); - j.set("paragraphs", j.getJSONArray("content")); + JSONObject j = (JSONObject) (o); + j.put("paragraphs", j.getJSONArray("content")); j.remove("content"); jaRes.add(j); } return MaxKbImpl._bach(MaxKbImpl.getAuthorization(), zskId, jaRes.toString()); } + + /** + * 批量生成相关问题 + * @param dataSetName 数据集名称 + * @param documentId 文档id + * @return + */ + public static String batch_generate_related(String dataSetName, String documentId) { + List list = mm.getDataSetList(dataSetName); + if (list.size() > 1) { + System.out.println("数据集:【" + dataSetName + "】名称重复,请检查后重新运行!"); + return null; + } + if (list.isEmpty()) { + System.out.println("数据集:【" + dataSetName + "】不存在,请检查后重新运行!"); + return null; + } + //数据集ID + String zskId = list.getFirst().getStr("id"); + return MaxKbImpl.batch_generate_related(MaxKbImpl.getAuthorization(), zskId, documentId); + } } diff --git a/src/main/java/Tools/MaxKb/UploadDocument.java b/src/main/java/Tools/MaxKb/UploadDocument.java index 8f689ee9..3495e09d 100644 --- a/src/main/java/Tools/MaxKb/UploadDocument.java +++ b/src/main/java/Tools/MaxKb/UploadDocument.java @@ -15,8 +15,10 @@ public class UploadDocument { MaxKbUtil.Init(); //测试上传 - String dataSetName = "XXX的知识库"; - String res = MaxKbService._bach(dataSetName, uploadFile); + String dataSetName = "知识库【模板】"; + String documentId = MaxKbService._bach(dataSetName, uploadFile); + //生成问题 + String res = MaxKbService.batch_generate_related(dataSetName, documentId); System.out.println(res); } } \ No newline at end of file diff --git a/src/main/resources/MaxKbGenerateRelated.json b/src/main/resources/MaxKbGenerateRelated.json new file mode 100644 index 00000000..b05abfb6 --- /dev/null +++ b/src/main/resources/MaxKbGenerateRelated.json @@ -0,0 +1,7 @@ +{ + "model_id": "f9312e42-c67f-11ef-9a78-0242ac120003", + "prompt": "内容:{data}\n\n请总结上面的内容,并根据内容总结生成 5 个问题。\n回答要求:\n- 请只输出问题;\n- 请将每个问题放置标签中。", + "document_id_list": [ + "6a213896-c71a-11ef-b276-0242ac120003" + ] +} \ No newline at end of file