Quellcode durchsuchen

core-ai autoScore update

deason vor 2 Monaten
Ursprung
Commit
6f0f063020
1 geänderte Dateien mit 6 neuen und 1 gelöschten Zeilen
  1. 6 1
      core-ai/src/main/java/com/qmth/boot/core/ai/service/AiService.java

+ 6 - 1
core-ai/src/main/java/com/qmth/boot/core/ai/service/AiService.java

@@ -95,6 +95,12 @@ public class AiService {
         if (StringUtils.isBlank(request.getStudentAnswer())) {
         if (StringUtils.isBlank(request.getStudentAnswer())) {
             throw new IllegalArgumentException("考生回答不能为空");
             throw new IllegalArgumentException("考生回答不能为空");
         }
         }
+        if (request.getTotalScore() <= 0) {
+            throw new IllegalArgumentException("试题总分必须大于0");
+        }
+        if (request.getIntervalScore() <= 0) {
+            throw new IllegalArgumentException("最小间隔分必须大于0");
+        }
 
 
         ChatResult result = llmApiClient.chatTemplate(signature, LlmAppType.AUTO_SCORE, request);
         ChatResult result = llmApiClient.chatTemplate(signature, LlmAppType.AUTO_SCORE, request);
         String text = result.getChoices().stream().filter(choice -> choice.getMessage().getRole() == ChatRole.assistant)
         String text = result.getChoices().stream().filter(choice -> choice.getMessage().getRole() == ChatRole.assistant)
@@ -167,7 +173,6 @@ public class AiService {
         }
         }
 
 
         BigDecimal interval = BigDecimal.valueOf(intervalScore);
         BigDecimal interval = BigDecimal.valueOf(intervalScore);
-
         // 计算结果 = 近似取整(score / intervalScore) * intervalScore
         // 计算结果 = 近似取整(score / intervalScore) * intervalScore
         return BigDecimal.valueOf(score)
         return BigDecimal.valueOf(score)
                 .divide(interval, 0, RoundingMode.HALF_UP)
                 .divide(interval, 0, RoundingMode.HALF_UP)