fix(knowledge): normalize no-evidence model replies

This commit is contained in:
key
2026-07-31 00:50:19 +08:00
parent bf703b7853
commit 218d6e38c9
2 changed files with 14 additions and 2 deletions
@@ -3599,8 +3599,11 @@ public class AihrSopSeedService {
return truncate(firstNonBlank(cleaned, "请参考下方命中片段。"), 180);
}
private static boolean isNoEvidenceAnswer(String answer) {
return NO_CLEAR_SOP_EVIDENCE.equals(Optional.ofNullable(answer).orElse("").trim());
static boolean isNoEvidenceAnswer(String answer) {
String normalized = Optional.ofNullable(answer).orElse("")
.replaceAll("\\s+", "")
.trim();
return NO_CLEAR_SOP_EVIDENCE.replaceAll("\\s+", "").equals(normalized);
}
private static SearchResponse noEvidenceResponse(String queryText, String category) {
@@ -30,6 +30,15 @@ import static org.mockito.Mockito.verify;
public class AihrSopSeedServiceTest {
@Test
@Tag("dev")
public void noEvidenceAnswerIgnoresModelWhitespaceDifferences() {
assertTrue(AihrSopSeedService.isNoEvidenceAnswer("未在已入库 SOP 中找到明确依据"));
assertTrue(AihrSopSeedService.isNoEvidenceAnswer("未在已入库SOP中找到明确依据"));
assertTrue(AihrSopSeedService.isNoEvidenceAnswer(" 未在已入库\tSOP 中找到明确依据 "));
assertFalse(AihrSopSeedService.isNoEvidenceAnswer("已找到正式制度依据"));
}
@Test
@Tag("dev")
public void rawHitResponseKeepsSnippetsWhenDigestUnavailable() {