kgdxpr 7 months ago
commit 451ecaad69

@ -68,38 +68,35 @@ public class MaxKbController extends Controller {
String person_name = rPerson.getStr("person_name");
//开始创建应用程序与知识库
//1、拷贝生成应用
String sourceApplicationName = "应用【模板】";
String targetApplicationName = person_name + "的应用";
mkm.delApplication(targetApplicationName);//先删除后插入
String applicationId = mkm.addApplication(sourceApplicationName, targetApplicationName);
//3、拷贝生成知识库
//2、拷贝生成知识库
String sourceDataSetName = "知识库【模板】";
String targetDataSetName = person_name + "的知识库";
mkm.delZsk(targetDataSetName);
String zskId = mkm.addZsk(sourceDataSetName, targetDataSetName);
//4、应用与知识库关联
Record record = new Record();
record.set("create_time", LocalDateTime.now());
record.set("update_time", LocalDateTime.now());
record.set("id", UUID.randomUUID());
record.set("application_id", UUID.fromString(applicationId));
record.set("dataset_id", UUID.fromString(zskId));
Db.save("application_dataset_mapping", "id", record);
//3、应用与知识库关联
mkm.saveApplicationZskId(applicationId, zskId);
//5、给当前人员上传他个人的知识库
//4、给当前人员上传他个人的知识库
//获取身份识别
String authCode = MaxKbImpl.getAuthorization();
String documentId = service.uploadQA(authCode, targetDataSetName, uploadFile);
//6、手动生成问题
//5、手动生成问题
String modelName = "DeepSeek";//使用哪个模型
JSONObject res = service.manualQuestion(authCode, targetDataSetName, modelName, documentId);
//7、生成应用的访问Token
//6、生成应用的访问Token
String access_token = mkm.addAccessToken(applicationId);
//8、保存
//7、保存
mkm.delPersonApplication(person_id);
mkm.savePersonApplication(person_id, applicationId);
//9、返回结果
//8、返回结果
Kv kv = Kv.by("success", true);
kv.set("message", "创建成功!");
kv.set("access_token", access_token);

@ -103,9 +103,9 @@ public class MaxKbModel {
* @param zskName
* @return
*/
public Record getZsk(String zskName) {
public List<Record> getZsk(String zskName) {
String sql = "select * from dataset where name=?";
return Db.use(DbConst.MAXKB).findFirst(sql, zskName);
return Db.use(DbConst.MAXKB).find(sql, zskName);
}
/**
@ -115,13 +115,13 @@ public class MaxKbModel {
*/
public String addZsk(String sourceZskName, String targetZskName) {
//获取数据集
Record record = getZsk(sourceZskName);
if (record == null) {
List<Record> records = getZsk(sourceZskName);
if (records == null) {
System.out.println(sourceZskName + "数据集不存在!");
System.exit(0);
}
//克隆出对象
record = new Record().setColumns(record.getColumns());
Record record = new Record().setColumns(records.getFirst().getColumns());
//生成一个uuid
record.set("id", UUID.randomUUID());
//名称
@ -224,13 +224,30 @@ public class MaxKbModel {
return Db.findFirst(sql, person_id);
}
/**
*
*
* @param applicationId ID
* @param zskId ID
*/
public void saveApplicationZskId(String applicationId, String zskId) {
Record record = new Record();
record.set("create_time", LocalDateTime.now());
record.set("update_time", LocalDateTime.now());
record.set("id", UUID.randomUUID());
record.set("application_id", UUID.fromString(applicationId));
record.set("dataset_id", UUID.fromString(zskId));
Db.use(DbConst.MAXKB).save("application_dataset_mapping", "id", record);
}
/**
*
*
* @param person_id ID
*/
public void delPersonApplication(String person_id){
String sql="delete from t_ai_person_application where person_id=?";
Db.update(sql,person_id);
public void delPersonApplication(String person_id) {
String sql = "delete from t_ai_person_application where person_id=?";
Db.update(sql, person_id);
}
/**
@ -245,4 +262,61 @@ public class MaxKbModel {
record.set("application_id", applicationId);
Db.save("t_ai_person_application", "person_id", record);
}
/**
*
*
* @param applicationName
*/
public void delApplication(String applicationName) {
String sql = "select * from application where name=?";
List<Record> list = Db.use(DbConst.MAXKB).find(sql, applicationName);
for (Record record : list) {
String application_id = record.getStr("id");
//删除应用与知识库的关联
sql = "delete from application_dataset_mapping where application_id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(application_id));
sql = "delete from application_access_token where application_id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(application_id));
sql = "select * from application_chat where application_id=?";
List<Record> list1 = Db.use(DbConst.MAXKB).find(sql, UUID.fromString(application_id));
for (Record record1 : list1) {
String chat_id = record1.getStr("id");
sql = "delete from application_chat_record where chat_id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(chat_id));
}
sql = "delete from application_chat where application_id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(application_id));
sql = "delete from application_api_key where application_id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(application_id));
//删除应用
sql = "delete from application where id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(application_id));
}
sql = "delete from dataset where name=?";
Db.use(DbConst.MAXKB).update(sql, applicationName);
}
/**
*
*
* @param zskName
*/
public void delZsk(String zskName) {
List<Record> records = getZsk(zskName);
for (Record record : records) {
String zskId = record.getStr("id");
String sql = "delete from problem_paragraph_mapping where dataset_id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(zskId));
sql = "delete from paragraph where dataset_id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(zskId));
sql = "delete from document where dataset_id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(zskId));
sql = "delete from dataset where id=?";
Db.use(DbConst.MAXKB).update(sql, UUID.fromString(zskId));
}
}
}

@ -137,4 +137,5 @@ public class MaxKbService {
}
return MaxKbImpl.manualQuestion(authCode, getZskId(zskName), getModelIdByModelName(modelName), documentId);
}
}

Loading…
Cancel
Save