You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
4.3 KiB

7 months ago
package Tools.MaxKb.Service;
7 months ago
import Tools.MaxKb.Service.Impl.MaxKbImpl;
7 months ago
import Tools.MaxKb.Model.MaxKbModel;
7 months ago
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
7 months ago
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.Record;
import java.io.File;
import java.util.List;
public class MaxKbService {
public static MaxKbModel mm = new MaxKbModel();
/**
7 months ago
* ID
7 months ago
*
7 months ago
* @param zskName
* @return
7 months ago
*/
7 months ago
public static String getZskId(String zskName) {
List<Record> list = mm.getDataSetList(zskName);
7 months ago
if (list.size() > 1) {
7 months ago
System.out.println("数据集:【" + zskName + "】名称重复,请检查后重新运行!");
return null;
7 months ago
}
if (list.isEmpty()) {
7 months ago
System.out.println("数据集:【" + zskName + "】不存在,请检查后重新运行!");
return null;
7 months ago
}
//数据集ID
7 months ago
return list.getFirst().getStr("id");
}
7 months ago
7 months ago
/**
*
*
* @param zskName
* @param uploadFile
*/
public static String uploadQA(String zskName, String uploadFile) {
//数据集ID
String zskId = getZskId(zskName);
7 months ago
//在上传文档前,需要删除掉旧的同名文档
File fi = new File(uploadFile);
String fileName = fi.getName();
//获取身份识别
String authCode = MaxKbImpl.getAuthorization();
//上传文档
7 months ago
List<Record> listDocuments = mm.getDocumentListByDataSetId(zskId);
7 months ago
for (Record record : listDocuments) {
String documentName = record.getStr("name");
if (documentName.equals(fileName)) {
String documentId = record.getStr("id");
7 months ago
//1、需要找出根据此文档有哪些已经生成的问题并且需要删除掉所有已经生成的问题
mm.delDocumentProblem(documentId);
7 months ago
//准备删除掉旧的文档
MaxKbImpl.delDocument(authCode, zskId, documentId);
System.out.println("删除旧的文档成功:" + documentName);
}
}
//上传新的文档
7 months ago
return MaxKbImpl.uploadQA(authCode, zskId, uploadFile);
7 months ago
}
/**
* ID
*
* @param modelName
* @return
*/
public static String getModelIdByModelName(String modelName) {
List<Record> list = mm.getModel(modelName);
if (list.isEmpty()) return null;
return list.getFirst().getStr("id");
7 months ago
}
7 months ago
7 months ago
/**
*
7 months ago
*
7 months ago
* @param uploadFile
* @return
*/
public static JSONObject splitDocument(String uploadFile) {
7 months ago
return MaxKbImpl.uploadDocumentSplit(MaxKbImpl.getAuthorization(), uploadFile);
}
/**
*
*/
7 months ago
public static String _bach(String zskName, String uploadFile) {
7 months ago
//数据集ID
7 months ago
String zskId = getZskId(zskName);
7 months ago
//上传文件
7 months ago
JSONObject jo = splitDocument(uploadFile);
7 months ago
JSONArray ja = jo.getJSONArray("data");
7 months ago
JSONArray jaRes = new JSONArray();
7 months ago
for (Object o : ja) {
7 months ago
JSONObject j = (JSONObject) (o);
j.put("paragraphs", j.getJSONArray("content"));
7 months ago
j.remove("content");
7 months ago
jaRes.add(j);
7 months ago
}
return MaxKbImpl._bach(MaxKbImpl.getAuthorization(), zskId, jaRes.toString());
}
7 months ago
/**
*
7 months ago
*
* @param documentId id
7 months ago
* @return
*/
7 months ago
public static String batch_generate_related(String zskName, String documentId) {
7 months ago
//数据集ID
7 months ago
String zskId = getZskId(zskName);
7 months ago
return MaxKbImpl.batch_generate_related(MaxKbImpl.getAuthorization(), zskId, documentId);
}
7 months ago
/**
*
* @param zskName
* @param modelName
* @param documentId Id
* @return
*/
public static JSONObject generateQuestion(String zskName, String modelName, String documentId){
return MaxKbImpl.generateQuestion(getZskId(zskName), getModelIdByModelName(modelName), documentId);
}
7 months ago
}