main
黄海 7 months ago
parent 72ab4b44a7
commit 9a2713595d

@ -1,11 +1,11 @@
package Tools.MaxKb.Service.Impl;
import Tools.MaxKb.Util.MaxKbUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.jfinal.kit.PropKit;
import java.io.File;
@ -48,6 +48,37 @@ public class MaxKbImpl {
return jo.getJSONArray("data").getJSONObject(0).getStr("id");
}
/**
*
*
* @param authCode
* @param uploadFile
* @return
*/
public static JSONObject uploadDocumentSplit(String authCode, String uploadFile) {
//知识库url上传地址
String qaUrl = baseUrl + "/api/dataset/document/split";
//使用hutool工具箱里面的httpPost功能向指定的接口发起上传文件的请求在Header中携带参数authCode
HttpResponse response = HttpRequest.post(qaUrl)
.header("Accept", "application/json, text/plain, */*")
.header("Accept-Encoding", "gzip,deflate")
.header("Accept-Language", "zh-CN,zh;q=0.9")
.header("Authorization", authCode)// 添加header
.header("Connection", "keep-alive")
.header("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundaryhEiEDpZDka6byweA")
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36")
.form("file", new File(uploadFile)).execute();// 添加文件
// 获取响应内容
String result = response.body();
JSONObject jo = JSONUtil.parseObj(result);
int code = jo.getInt("code");
if (code != 200) {
System.out.println("请求失败");
return null;
}
return jo;
}
/**
*
@ -120,9 +151,10 @@ public class MaxKbImpl {
/**
*
* @param authCode
* @param zskId id
* @param modelId id
*
* @param authCode
* @param zskId id
* @param modelId id
* @param documentId id
* @return
*/
@ -134,7 +166,6 @@ public class MaxKbImpl {
List<String> list = new ArrayList<>();
list.add(documentId);
jo.put("document_id_list", list);
//使用Hutool的PUT调用接口
HttpResponse response = HttpRequest.put(url)
.header("Accept", "application/json, text/plain, */*")
.header("Accept-Encoding", "gzip,deflate")
@ -146,4 +177,17 @@ public class MaxKbImpl {
return com.alibaba.fastjson.JSONObject.parseObject(response.body());
}
public static String _bach(String authCode, String zskId, String body) {
String url = baseUrl + "/api/dataset/" + zskId + "/document/_bach";
HttpResponse response = HttpRequest.put(url)
.header("Accept", "application/json, text/plain, */*")
.header("Accept-Encoding", "gzip,deflate")
.header("Accept-Language", "zh-CN,zh;q=0.9")
.header("Authorization", authCode)// 添加header
.header("Connection", "keep-alive")
.header("Content-Type", "application/json")
.body(body).execute();
return response.body();
}
}

@ -2,6 +2,8 @@ package Tools.MaxKb.Service;
import Tools.MaxKb.Service.Impl.MaxKbImpl;
import Tools.MaxKb.Model.MaxKbModel;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.Record;
@ -13,10 +15,11 @@ public class MaxKbService {
/**
*
*
* @param dataSetName
* @param uploadFile
* @param uploadFile
*/
public static void uploadQA(String dataSetName,String uploadFile) {
public static void uploadQA(String dataSetName, String uploadFile) {
List<com.jfinal.plugin.activerecord.Record> list = mm.getDataSetList(dataSetName);
if (list.size() > 1) {
System.out.println("数据集:【" + dataSetName + "】名称重复,请检查后重新运行!");
@ -68,4 +71,25 @@ public class MaxKbService {
if (list.isEmpty()) return null;
return list.getFirst().getStr("id");
}
public static JSONObject uploadDocumentSplit(String uploadFile) {
return MaxKbImpl.uploadDocumentSplit(MaxKbImpl.getAuthorization(), uploadFile);
}
/**
*
*/
public static String _bach(String zskId, String uploadFile) {
//上传文件
cn.hutool.json.JSONObject jo = uploadDocumentSplit(uploadFile);
JSONArray ja = jo.getJSONArray("data");
cn.hutool.json.JSONArray jaRes = new JSONArray();
for (Object o : ja) {
cn.hutool.json.JSONObject j = (cn.hutool.json.JSONObject) (o);
j.set("paragraphs", j.getJSONArray("content"));
j.remove("content");
jaRes.put(j);
}
return MaxKbImpl._bach(MaxKbImpl.getAuthorization(), zskId, jaRes.toString());
}
}

@ -0,0 +1,20 @@
package Tools.MaxKb;
import Tools.MaxKb.Service.MaxKbService;
import Tools.MaxKb.Util.MaxKbUtil;
import cn.hutool.json.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jfinal.kit.PropKit;
public class UploadDocument {
//要上传的文档内容
static String uploadFile = "D:\\dsWork\\QingLong\\Doc\\MaxKB\\黄海的个人简历.txt";
public static void main(String[] args) throws Exception {
//加载配置文件
PropKit.use("MaxKb.properties");
//初始化数据库
MaxKbUtil.Init();
}
}

@ -5,7 +5,6 @@ import Tools.MaxKb.Util.MaxKbUtil;
import com.jfinal.kit.PropKit;
public class UploadQA {
//要上传的QA知识内容
static String uploadFile = "D:\\dsWork\\QingLong\\Doc\\MaxKB\\各学校人员和班级统计【结果】.xlsx";
@ -18,7 +17,6 @@ public class UploadQA {
//获取数据集名称
String dataSetName = "应用【模板】";
MaxKbService.uploadQA(dataSetName,uploadFile);
System.out.println("恭喜,所有操作成功完成!");
}
}
Loading…
Cancel
Save