summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgujinkai <[email protected]>2024-04-11 17:58:46 +0800
committergujinkai <[email protected]>2024-04-11 17:58:46 +0800
commit519b0466fb6ee29330f87a2c66707a52f4cff4d6 (patch)
treeca5d873b17f29e49003f011bd9fc127e75ec624e
parent0e16b559798033f291b714a6bbdc8a3792fb0791 (diff)
[Fix][core] fix knowledge metadata isValid not use and improve the download of user define knowledge
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractMultipleKnowledgeBaseHandler.java14
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractSingleKnowledgeBaseHandler.java9
2 files changed, 17 insertions, 6 deletions
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractMultipleKnowledgeBaseHandler.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractMultipleKnowledgeBaseHandler.java
index 4bbafd5..716a480 100644
--- a/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractMultipleKnowledgeBaseHandler.java
+++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractMultipleKnowledgeBaseHandler.java
@@ -35,14 +35,17 @@ public abstract class AbstractMultipleKnowledgeBaseHandler extends AbstractKnowl
protected KnowledgeBaseConfig knowledgeBaseConfig;
- protected Map<String, KnowLedgeBaseFileMeta> knowledgeMetedataCacheMap;
+ protected Map<String, KnowLedgeBaseFileMeta> knowledgeMetedataCacheMap = new HashMap<>();
private static final CloseableHttpClient HTTP_CLIENT = HttpClients.createMinimal();
@Override
public boolean initKnowledgeBase(KnowledgeBaseConfig knowledgeBaseConfig) {
this.knowledgeBaseConfig = knowledgeBaseConfig;
if ("http".equals(knowledgeBaseConfig.getFsType())) {
- this.knowledgeMetedataCacheMap = getMetadata(knowledgeBaseConfig.getFsPath());
+ Map<String, KnowLedgeBaseFileMeta> metadata = getMetadata(knowledgeBaseConfig.getFsPath());
+ if (metadata != null) {
+ this.knowledgeMetedataCacheMap = metadata;
+ }
}
return buildKnowledgeBase();
}
@@ -58,7 +61,7 @@ public abstract class AbstractMultipleKnowledgeBaseHandler extends AbstractKnowl
protected byte[] downloadFile(Long id) {
if ("http".equals(knowledgeBaseConfig.getFsType())) {
- return downloadFile(knowledgeMetedataCacheMap.get(encodeId(id)).getPath(), 1);
+ return downloadFile(knowledgeMetedataCacheMap.get(encodeId(id)).getPath(), knowledgeMetedataCacheMap.get(encodeId(id)).getIsValid());
}
if ("local".equals(knowledgeBaseConfig.getFsType())) {
return getFileFromLocal(knowledgeBaseConfig.getFsPath() + id);
@@ -78,6 +81,9 @@ public abstract class AbstractMultipleKnowledgeBaseHandler extends AbstractKnowl
protected Boolean ifNeedUpdate() {
Map<String, KnowLedgeBaseFileMeta> knowledgeMetedataMap = getMetadata(knowledgeBaseConfig.getFsPath());
+ if (knowledgeMetedataMap == null) {
+ return false;
+ }
if (knowledgeMetedataMap.size() != knowledgeMetedataCacheMap.size()) {
this.knowledgeMetedataCacheMap = knowledgeMetedataMap;
return true;
@@ -110,7 +116,7 @@ public abstract class AbstractMultipleKnowledgeBaseHandler extends AbstractKnowl
} catch (IOException e) {
logger.error("fetch knowledge metadata error", e);
}
- return new HashMap<>();
+ return null;
}
public static boolean checkId(String id) {
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractSingleKnowledgeBaseHandler.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractSingleKnowledgeBaseHandler.java
index f44df1f..c460961 100644
--- a/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractSingleKnowledgeBaseHandler.java
+++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/knowlegdebase/handler/AbstractSingleKnowledgeBaseHandler.java
@@ -45,7 +45,12 @@ public abstract class AbstractSingleKnowledgeBaseHandler extends AbstractKnowled
@Override
public void updateKnowledgeBase() {
if (ifNeedUpdate()) {
- buildKnowledgeBase();
+ Boolean result = buildKnowledgeBase();
+ if (result) {
+ logger.warn("KnowledgeBase " + knowledgeBaseConfig.getName() + " update success!");
+ } else {
+ logger.error("KnowledgeBase " + knowledgeBaseConfig.getName() + " update failed!");
+ }
}
}
@@ -53,7 +58,7 @@ public abstract class AbstractSingleKnowledgeBaseHandler extends AbstractKnowled
public byte[] downloadFile() {
if ("http".equals(knowledgeBaseConfig.getFsType())) {
- return downloadFile(knowledgeMetedataCache.getPath(), 1);
+ return downloadFile(knowledgeMetedataCache.getPath(), knowledgeMetedataCache.getIsValid());
}
if ("local".equals(knowledgeBaseConfig.getFsType())) {
return getFileFromLocal(knowledgeBaseConfig.getFsPath() + knowledgeBaseConfig.getFiles().get(0));