main
黄海 7 months ago
parent 7b1b5950fe
commit 3898ea5135

@ -9,23 +9,23 @@ import java.util.UUID;
public class MaxKbModel {
/**
* @param dataSetName
* @param zskName
* @return
*/
public List<Record> getDataSetList(String dataSetName) {
public List<Record> 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<Record> getDocumentListByDataSetId(String dataset_id) {
public List<Record> 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<Record> getModel(String model_name) {
public List<Record> 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<Record> list = Db.find(sql);

@ -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
*

@ -20,7 +20,7 @@ public class MaxKbService {
* @return
*/
public String getZskId(String zskName) {
List<Record> list = mm.getDataSetList(zskName);
List<Record> 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<Record> listDocuments = mm.getDocumentListByDataSetId(zskId);
List<Record> 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);
}
}

@ -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 = "应用【模板】";

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

@ -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("恭喜,所有操作成功完成!");
}
}

@ -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"));
// }
}
}
Loading…
Cancel
Save