|
|
@@ -491,39 +491,59 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
|
|
|
}
|
|
|
|
|
|
TakaiDocumentSettings settings = new TakaiDocumentSettings();
|
|
|
-// settings.setDocumentId("a" + documentId);
|
|
|
settings.setKnowledgeId(knowledgeId);
|
|
|
- boolean flag = analysisFile(params, settings, "upload");
|
|
|
-
|
|
|
- if (flag) {
|
|
|
- for (TakaiSysOss oss : result) {
|
|
|
- // oss保存到数据库
|
|
|
- takaiSysOssMapper.insertSysOss(oss);
|
|
|
- }
|
|
|
+ JSONObject jsonObject = analysisFile(params, settings, "upload");
|
|
|
|
|
|
+ if (jsonObject != null && jsonObject.containsKey("code") && jsonObject.getInteger("code") == 200) {
|
|
|
for (UploadDocumentParams vo : params) {
|
|
|
- // 保存知识信息
|
|
|
- TakaiDocument document = TakaiDocument.builder()
|
|
|
- .documentId(vo.getDocument_id())
|
|
|
- .knowledgeId(knowledgeId)
|
|
|
- .customSeparator(String.format("[\"%s\"", "\\n") + "]")
|
|
|
- .sentenceSize("300")
|
|
|
- .name(vo.getName())
|
|
|
- .url(vo.getUrl()).build();
|
|
|
- int documentIdInsert = takaiDocumentMapper.insertDocument(document);
|
|
|
-
|
|
|
- if (documentIdInsert > 0) {
|
|
|
- // 保存知识设置信息
|
|
|
- SnowflakeDigitGenerator snowflakeDigitGenerator = new SnowflakeDigitGenerator(1, 1);
|
|
|
- long id = snowflakeDigitGenerator.nextId();
|
|
|
- TakaiDocumentSettings dSettings = new TakaiDocumentSettings();
|
|
|
- dSettings.setId(String.valueOf(id));
|
|
|
- dSettings.setKnowledgeId(knowledgeId);
|
|
|
- dSettings.setDocumentId(vo.getDocument_id());
|
|
|
- dSettings.setSetSlice("0"); // 默认 按标题段落切片
|
|
|
- dSettings.setSetAnalyze("1"); // 默认 图片转换成标识符
|
|
|
- dSettings.setSetTable("0"); // 默认 ttable转图片
|
|
|
- takaiDocumentSettingsMapper.insertDocumentSettings(dSettings);
|
|
|
+ TakaiKnowledge info = takaiKnowledgeMapper.selectTargetKnowledge(TakaiKnowledge.builder().knowledgeId(knowledgeId).build());
|
|
|
+ if(info != null){
|
|
|
+ // 更新知识库文件大小,总字符数, 文件总数
|
|
|
+ JSONObject docInfo = jsonObject.getJSONObject("doc_info");
|
|
|
+ if(docInfo != null){
|
|
|
+ Integer fileLen = docInfo.getInteger("file_size");
|
|
|
+ Integer wordNum = docInfo.getInteger("total_char_len");
|
|
|
+ Integer sliceTotal = docInfo.getInteger("slice_num");
|
|
|
+ TakaiKnowledge paramInfo = TakaiKnowledge.builder().knowledgeId(knowledgeId)
|
|
|
+ .length(info.getLength() == null ? fileLen : info.getLength() + fileLen ) // 文件大小
|
|
|
+ .wordNum(info.getWordNum() == null ? wordNum : info.getWordNum() + wordNum) // 总字符数
|
|
|
+ .documentSize(info.getDocumentSize() == null ? sliceTotal : info.getDocumentSize() + sliceTotal) // 文件总数
|
|
|
+ .build();
|
|
|
+ takaiKnowledgeMapper.updateKnowledge(paramInfo);
|
|
|
+
|
|
|
+ for (TakaiSysOss oss : result) {
|
|
|
+ // oss保存到数据库
|
|
|
+ takaiSysOssMapper.insertSysOss(oss);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存知识信息
|
|
|
+ TakaiDocument document = TakaiDocument.builder()
|
|
|
+ .documentId(vo.getDocument_id())
|
|
|
+ .knowledgeId(knowledgeId)
|
|
|
+ .customSeparator(String.format("[\"%s\"", "\\n") + "]")
|
|
|
+ .sentenceSize("300")
|
|
|
+ .name(vo.getName())
|
|
|
+ .url(vo.getUrl())
|
|
|
+ .sliceTotal(sliceTotal)
|
|
|
+ .length(fileLen)
|
|
|
+ .wordNum(wordNum)
|
|
|
+ .build();
|
|
|
+ int documentIdInsert = takaiDocumentMapper.insertDocument(document);
|
|
|
+
|
|
|
+ if (documentIdInsert > 0) {
|
|
|
+ // 保存知识设置信息
|
|
|
+ SnowflakeDigitGenerator snowflakeDigitGenerator = new SnowflakeDigitGenerator(1, 1);
|
|
|
+ long id = snowflakeDigitGenerator.nextId();
|
|
|
+ TakaiDocumentSettings dSettings = new TakaiDocumentSettings();
|
|
|
+ dSettings.setId(String.valueOf(id));
|
|
|
+ dSettings.setKnowledgeId(knowledgeId);
|
|
|
+ dSettings.setDocumentId(vo.getDocument_id());
|
|
|
+ dSettings.setSetSlice("0"); // 默认 按标题段落切片
|
|
|
+ dSettings.setSetAnalyze("1"); // 默认 图片转换成标识符
|
|
|
+ dSettings.setSetTable("0"); // 默认 ttable转图片
|
|
|
+ takaiDocumentSettingsMapper.insertDocumentSettings(dSettings);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
setRedisCache(knowledgeId);
|
|
|
@@ -568,7 +588,19 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
|
|
|
JSONObject obj = JSON.parseObject(body);
|
|
|
Integer code = obj.getInteger("code");
|
|
|
if (code == 200) {
|
|
|
- return takaiDocumentMapper.delDocument(documentId);
|
|
|
+ int i = takaiDocumentMapper.delDocument(documentId);
|
|
|
+ if(i > 0){
|
|
|
+ TakaiKnowledge info = takaiKnowledgeMapper.selectTargetKnowledge(TakaiKnowledge.builder().knowledgeId(vo.getKnowledgeId()).build());
|
|
|
+ if(info != null){
|
|
|
+ // 更新知识库文件大小,总字符数, 文件总数
|
|
|
+ TakaiKnowledge paramInfo = TakaiKnowledge.builder().knowledgeId(vo.getKnowledgeId())
|
|
|
+ .length(vo.getLength() == null ? info.getLength() == null ? 0 : info.getLength() : info.getLength() - vo.getLength()) // 文件大小
|
|
|
+ .wordNum(vo.getWordNum() == null ? info.getWordNum() == null ? 0 : info.getWordNum() : info.getWordNum() - vo.getWordNum()) // 总字符数
|
|
|
+ .documentSize(info.getDocumentSize() == null ? 0 : info.getDocumentSize() - 1) // 文件总数
|
|
|
+ .build();
|
|
|
+ takaiKnowledgeMapper.updateKnowledge(paramInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
@@ -727,12 +759,11 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
|
|
|
listParams.add(params);
|
|
|
}
|
|
|
|
|
|
- boolean status = analysisFile(listParams, settings, "update");
|
|
|
- if (status) {
|
|
|
+ JSONObject jsonObject = analysisFile(listParams, settings, "update");
|
|
|
+ if (jsonObject != null && jsonObject.containsKey("code") && jsonObject.getInteger("code") == 200) {
|
|
|
logger.info("update document setting success, id:{}", documentId);
|
|
|
documentSettings.setDocumentId(documentId);
|
|
|
- int i = takaiDocumentSettingsMapper.updateDocumentSettings(documentSettings);
|
|
|
- return i;
|
|
|
+ return takaiDocumentSettingsMapper.updateDocumentSettings(documentSettings);
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
|
@@ -771,10 +802,8 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public int deleteSlice(String sliceId, String knowledgeId) {
|
|
|
-// TakaiKnowledge knowledge = takaiKnowledgeMapper.selectTargetKnowledge(TakaiKnowledge.builder().knowledgeId(knowledgeId).build());
|
|
|
-
|
|
|
- String url = deepseekConfig.getBaseurl() + deepseekConfig.getDeleteSlice() + "/" + sliceId + "/" + knowledgeId;
|
|
|
+ public int deleteSlice(String sliceId, String knowledgeId, String documentId) {
|
|
|
+ String url = deepseekConfig.getBaseurl() + deepseekConfig.getDeleteSlice() + "/" + sliceId + "/" + knowledgeId + "/" + documentId;
|
|
|
Request request = buildDeleteRequest(url);
|
|
|
OkHttpClient client = buildOkHttpClient();
|
|
|
Response response = null;
|
|
|
@@ -822,6 +851,7 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
|
|
|
object.put("knowledge_id", params.getKnowledgeId());
|
|
|
object.put("slice_id", params.getSliceId());
|
|
|
object.put("slice_text", params.getSliceText());
|
|
|
+ object.put("document_id", params.getDocumentId());
|
|
|
RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8"), object.toJSONString());
|
|
|
|
|
|
Request request = buildPutRequest(url, requestBody);
|
|
|
@@ -852,16 +882,11 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
|
|
|
return mrVo;
|
|
|
}
|
|
|
|
|
|
- private boolean analysisFile(List<UploadDocumentParams> result, TakaiDocumentSettings settings, String flag) {
|
|
|
-// TakaiKnowledge knowledge = takaiKnowledgeMapper.selectTargetKnowledge(TakaiKnowledge.builder().knowledgeId(settings.getKnowledgeId()).build());
|
|
|
+ private JSONObject analysisFile(List<UploadDocumentParams> result, TakaiDocumentSettings settings, String flag) {
|
|
|
String url = deepseekConfig.getBaseurl() + deepseekConfig.getUploadKnowledge();
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("knowledge_id", settings.getKnowledgeId());
|
|
|
-// json.put("document_id", settings.getDocumentId());
|
|
|
-// json.put("embedding_id", knowledge == null ? "" : knowledge.getEmbeddingId());
|
|
|
json.put("docs", result);
|
|
|
-// json.put("name", result.getOriginalName());
|
|
|
-// json.put("url", result.getUrl());
|
|
|
if ("upload".equals(flag)) {
|
|
|
json.put("set_slice", "0");
|
|
|
json.put("slice_value", null);
|
|
|
@@ -888,16 +913,16 @@ public class TakaiAiServiceImpl implements ITakaiAiService {
|
|
|
Integer code = obj.getInteger("code");
|
|
|
if (code == 200) {
|
|
|
logger.info("上传文档调用python接口成功,返回内容:{}", body);
|
|
|
- return true;
|
|
|
+ return obj;
|
|
|
}
|
|
|
- return false;
|
|
|
+ return obj;
|
|
|
} else {
|
|
|
logger.error("上传文档调用python接口失败返回code:{}", response.code());
|
|
|
- return false;
|
|
|
+ return null;
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
logger.error("上传文档调用python接口失败", e.getMessage());
|
|
|
- return false;
|
|
|
+ return null;
|
|
|
}
|
|
|
}
|
|
|
|