diff --git a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/enums/MemoryReviewResult.java b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/enums/MemoryReviewResult.java index df706ab76..57bfcc27e 100644 --- a/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/enums/MemoryReviewResult.java +++ b/chat/api/src/main/java/com/tencent/supersonic/chat/api/pojo/enums/MemoryReviewResult.java @@ -1,9 +1,21 @@ package com.tencent.supersonic.chat.api.pojo.enums; +import com.tencent.supersonic.common.pojo.exception.InvalidArgumentException; +import org.apache.commons.lang3.StringUtils; + public enum MemoryReviewResult { POSITIVE, - NEGATIVE + NEGATIVE; + public static MemoryReviewResult getMemoryReviewResult(String value) { + String validValue = StringUtils.trim(value); + for (MemoryReviewResult reviewRet : MemoryReviewResult.values()) { + if (StringUtils.equalsIgnoreCase(reviewRet.name(), validValue)) { + return reviewRet; + } + } + throw new InvalidArgumentException("Invalid MemoryReviewResult type:[" + value + "]"); + } } diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/memory/MemoryReviewTask.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/memory/MemoryReviewTask.java index 326201424..f9802a5d6 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/memory/MemoryReviewTask.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/memory/MemoryReviewTask.java @@ -67,7 +67,7 @@ public class MemoryReviewTask { Matcher matcher = OUTPUT_PATTERN.matcher(response); if (matcher.find()) { - m.setLlmReviewRet(MemoryReviewResult.valueOf(matcher.group(1))); + m.setLlmReviewRet(MemoryReviewResult.getMemoryReviewResult(matcher.group(1))); m.setLlmReviewCmt(matcher.group(2)); // directly enable memory if the LLM determines it positive if (MemoryReviewResult.POSITIVE.equals(m.getLlmReviewRet())) {