1.修复创建多个向量库2.查看试卷没有用户答案3.向量化自动出题
This commit is contained in:
@@ -77,6 +77,26 @@ public class AsyncExamService {
|
||||
updateFileExamStatus(fileId, EXAM_STATUS_GENERATED, "警告:未生成任何题目。可能原因:文档内容为空、文档内容无法提取题目、或文档格式不支持。source_chunks_used=" + response.getSourceChunksUsed());
|
||||
} else {
|
||||
String processMessage = "生成成功,共" + response.getTotal() + "道题";
|
||||
|
||||
// 追加题型统计信息
|
||||
if (response.getRequestedTypes() != null || response.getActualTypes() != null) {
|
||||
processMessage += "\n\n【题型统计】";
|
||||
if (response.getRequestedTypes() != null) {
|
||||
processMessage += "\n请求题型: " + formatQuestionTypes(response.getRequestedTypes());
|
||||
}
|
||||
if (response.getActualTypes() != null) {
|
||||
processMessage += "\n实际生成: " + formatQuestionTypes(response.getActualTypes());
|
||||
}
|
||||
}
|
||||
|
||||
// 追加短缺警告
|
||||
if (response.getWarnings() != null && !response.getWarnings().isEmpty()) {
|
||||
processMessage += "\n\n【短缺警告】";
|
||||
for (String warning : response.getWarnings()) {
|
||||
processMessage += "\n- " + warning;
|
||||
}
|
||||
}
|
||||
|
||||
log.info("response.getAiAnalysis() = {}", response.getAiAnalysis());
|
||||
log.info("response.getAiAnalysis() == null? {}", response.getAiAnalysis() == null);
|
||||
if (response.getAiAnalysis() != null) {
|
||||
@@ -214,4 +234,32 @@ public class AsyncExamService {
|
||||
throw new RuntimeException("更新文件状态失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化题型统计信息
|
||||
*/
|
||||
private String formatQuestionTypes(java.util.Map<String, Integer> types) {
|
||||
if (types == null || types.isEmpty()) {
|
||||
return "{}";
|
||||
}
|
||||
StringBuilder sb = new StringBuilder("{");
|
||||
java.util.Map<String, String> typeNames = new java.util.HashMap<>();
|
||||
typeNames.put("single_choice", "单选题");
|
||||
typeNames.put("multiple_choice", "多选题");
|
||||
typeNames.put("true_false", "判断题");
|
||||
typeNames.put("fill_blank", "填空题");
|
||||
typeNames.put("subjective", "主观题");
|
||||
|
||||
boolean first = true;
|
||||
for (java.util.Map.Entry<String, Integer> entry : types.entrySet()) {
|
||||
if (!first) {
|
||||
sb.append(", ");
|
||||
}
|
||||
String typeName = typeNames.getOrDefault(entry.getKey(), entry.getKey());
|
||||
sb.append(typeName).append(": ").append(entry.getValue()).append("道");
|
||||
first = false;
|
||||
}
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user