From f49218b44c471e2e709ee33c075f7748daf87998 Mon Sep 17 00:00:00 2001 From: let5sne Date: Tue, 14 Jul 2026 08:32:37 +0800 Subject: [PATCH] fix(aihr): hide speech and llm error payloads --- .../java/org/dromara/aihr/service/AihrModelSeedService.java | 2 +- .../main/java/org/dromara/aihr/service/AihrSpeechService.java | 4 ++-- .../java/org/dromara/aihr/service/AihrSensitiveTextTest.java | 2 ++ scripts/demo-check.sh | 2 ++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java index bf3ae285..5b7ba084 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java @@ -409,7 +409,7 @@ public class AihrModelSeedService { .send(builder.build(), HttpResponse.BodyHandlers.ofString()); if (response.statusCode() < 200 || response.statusCode() >= 300) { - throw new IllegalStateException("LLM HTTP " + response.statusCode() + ": " + truncate(response.body(), 240)); + throw new IllegalStateException("LLM HTTP " + response.statusCode() + "(外部响应体已隐藏)"); } JsonNode root = objectMapper.readTree(response.body()); diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java index 34f2f87a..16cc32db 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java @@ -60,7 +60,7 @@ public class AihrSpeechService { .build(); HttpResponse response = client().send(httpRequest, HttpResponse.BodyHandlers.ofString()); if (response.statusCode() < 200 || response.statusCode() >= 300) { - log.warn("asr http {}: {}", response.statusCode(), truncate(response.body())); + log.warn("asr http {}(外部响应体已隐藏)", response.statusCode()); return Optional.empty(); } String text = objectMapper.readTree(response.body()).path("text").asText(""); @@ -92,7 +92,7 @@ public class AihrSpeechService { .build(); HttpResponse response = client().send(httpRequest, HttpResponse.BodyHandlers.ofByteArray()); if (response.statusCode() < 200 || response.statusCode() >= 300) { - log.warn("tts http {}: {}", response.statusCode(), truncate(new String(response.body(), StandardCharsets.UTF_8))); + log.warn("tts http {}(外部响应体已隐藏)", response.statusCode()); return Optional.empty(); } return response.body().length == 0 ? Optional.empty() : Optional.of(response.body()); diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSensitiveTextTest.java b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSensitiveTextTest.java index 852f8d47..6d5a8f77 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSensitiveTextTest.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSensitiveTextTest.java @@ -44,10 +44,12 @@ class AihrSensitiveTextTest { String orgSyncSource = Files.readString(source("AihrOrgSyncService.java")); assertTrue(modelSource.contains("AihrSensitiveText.forModel(prompt)")); + assertTrue(modelSource.contains("外部响应体已隐藏")); assertTrue(sopSource.contains("AihrSensitiveText.forModel(renderPrompt(prompt.template(), queryText, context))")); assertTrue(sopSource.contains("AihrSensitiveText.forModel(\"\"\"")); assertTrue(interviewSource.contains("AihrSensitiveText.personName(candidate.name(), \"候选人\")")); assertTrue(speechSource.contains("AihrSensitiveText.forModel(text.trim())")); + assertTrue(speechSource.contains("asr http {}(外部响应体已隐藏)")); assertTrue(orgSyncSource.contains("外部响应体已隐藏")); assertTrue(orgSyncSource.contains("AihrSensitiveText.forModel(e.getMessage())")); } diff --git a/scripts/demo-check.sh b/scripts/demo-check.sh index c54b573c..5034d235 100755 --- a/scripts/demo-check.sh +++ b/scripts/demo-check.sh @@ -461,8 +461,10 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "aihr_knowledge_gap" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSensitiveText.java "外部 AI 模型前" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java "AihrSensitiveText.forModel(prompt)" +contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrModelSeedService.java "外部响应体已隐藏" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "AihrSensitiveText.forModel(renderPrompt" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java "AihrSensitiveText.forModel(text.trim())" +contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java "asr http {}(外部响应体已隐藏)" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrVideoService.java "AihrSensitiveText.forModel(fileName)" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrOrgSyncService.java "外部响应体已隐藏" contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrCaseController.java "仅项目负责人或主管可提交案例素材"