|
@@ -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)
|