EvaluationController.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.njuzr.eaibackend.controller;
  2. import com.njuzr.eaibackend.service.AIEvaluationService;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.springframework.web.bind.annotation.*;
  5. import java.util.concurrent.ExecutionException;
  6. /**
  7. * @author BaiBai
  8. * @date 2025-01-17 10:58
  9. */
  10. @Slf4j
  11. @RestController
  12. @RequestMapping("/api/evaluation")
  13. public class EvaluationController {
  14. private final AIEvaluationService aiEvaluationService;;
  15. public EvaluationController(AIEvaluationService aiEvaluationService) {
  16. this.aiEvaluationService = aiEvaluationService;
  17. }
  18. /**
  19. * 对作文整体进行评价
  20. * @param assignmentId 作业ID
  21. * @param studentId 学生ID
  22. * @return
  23. */
  24. @PostMapping("/overall")
  25. public MyResponse rewrite(
  26. @RequestParam Long assignmentId,
  27. @RequestParam Long studentId
  28. ) throws ExecutionException, InterruptedException {
  29. return MyResponse.success(aiEvaluationService.evaluationAsync(assignmentId, studentId).get());
  30. }
  31. /**
  32. * 对作文进行逐句批改
  33. * @param assignmentId 作业ID
  34. * @param studentId 学生ID
  35. * @return
  36. */
  37. @PostMapping("/sentence")
  38. public MyResponse rewritePerSentence(
  39. @RequestParam Long assignmentId,
  40. @RequestParam Long studentId
  41. ) {
  42. return MyResponse.success(aiEvaluationService.rewritePerSentence(assignmentId, studentId));
  43. }
  44. /**
  45. * 获取整体评价内容
  46. * @param assignmentId
  47. * @param studentId
  48. * @param version 作业版本
  49. * @return
  50. */
  51. @GetMapping("/select/overall")
  52. public MyResponse selectOverall(
  53. @RequestParam Long assignmentId,
  54. @RequestParam Long studentId,
  55. @RequestParam(value = "version", defaultValue = "-1") Integer version
  56. ){
  57. return MyResponse.success(aiEvaluationService.getRewrite(assignmentId, studentId, version));
  58. }
  59. /**
  60. * 获取逐句评价内容
  61. * @param assignmentId
  62. * @param studentId
  63. * @param version 作业版本
  64. * @return
  65. */
  66. @GetMapping("/select/sentence")
  67. public MyResponse selectSentence(
  68. @RequestParam Long assignmentId,
  69. @RequestParam Long studentId,
  70. @RequestParam(value = "version", defaultValue = "-1") Integer version
  71. ){
  72. return MyResponse.success(aiEvaluationService.getRewritePerSentence(assignmentId, studentId, version));
  73. }
  74. /**
  75. * 获取评价版本列表
  76. * @param assignmentId
  77. * @param studentId
  78. * @return
  79. */
  80. @GetMapping("/record/list")
  81. public MyResponse getRewriteVersionList(
  82. @RequestParam Long assignmentId,
  83. @RequestParam Long studentId
  84. ){
  85. return MyResponse.success(aiEvaluationService.getVersionList(assignmentId, studentId));
  86. }
  87. /**
  88. * 用于支持单句重试
  89. * @param assignmentId
  90. * @param studentId
  91. * @param version
  92. * @param sentenceNo
  93. * @return
  94. */
  95. @PostMapping("/sentence/byOne")
  96. public MyResponse evaluateSentenceByOne(
  97. @RequestParam Long assignmentId,
  98. @RequestParam Long studentId,
  99. @RequestParam Integer version,
  100. @RequestParam Integer sentenceNo
  101. ){
  102. return MyResponse.success(aiEvaluationService.evaluateSentenceByOne(assignmentId, studentId, version, sentenceNo));
  103. }
  104. }