1.修复创建多个向量库2.查看试卷没有用户答案3.向量化自动出题

This commit is contained in:
2026-06-11 21:50:27 +08:00
parent 6cdb38df68
commit a8e28e513d
74 changed files with 5120 additions and 5326 deletions

View File

@@ -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();
}
}