-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat: gradeExam #144
Feat: gradeExam #144
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아따 복잡허네 간밤에 수고 좀 했겠구먼요 고생했씁니당
val exam = | ||
examRepository.save( | ||
Exam | ||
.createExam( | ||
memberRepository.findById(memberId).getOrElse { throw NotFoundException(fieldName = "member") }, | ||
workbook, | ||
examRepository.findMaxSequenceByWorkbookId(workbook) + 1, | ||
), | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현재 time을 저장하는 로직이 빠진 것 같습니다
request로 time(문제풀이 소요 시간) 받고 같이 저장해줘야 할 듯 합니당
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그리고 만약 문제 정답을 입력하지 않았다면 request에
[
{
"questionId" : "133222-f3443",
"submittedAnswer" : "",
}
]
이런식으로 빈 문자열을 보내줘야하는건가요?? 아니면 그냥 request에서 빼도 되는건가요?? 명세서에 관련 설명도 같이 있으면 좋을 것 같습니다!!
현재 그냥 후자(request에 안넣고 빼고) 보내면 request에 들어있는 문제들만 채점되어 저장하고 있어서 여쭤봅니당. 만약 후자가 맞는거라면 request에 없는 문제도 탐색해서 따로 isCorrect를 false로해서 저장해야 될 것 같은데 그러면 굳이 또 쿼리 발생하고 복잡하니 전자가 나은 것 같고,
전자를 의도로 개발하신 것 같은데 맞나 아닌가 몰겠어서 질문!!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
앗 api docs 업데이트를 안해뒀네요!!
빈 답안인 경우 submittedAnswer : null
처럼 보내면 됩니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
헉 time 추가하겠슴둥
part of swm-125 related to: #135
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
따봉~
PR
✨ 작업 내용
gpt-4o-mini
(하위 버전) 을 사용하는 것으로 결정했습니다.gpt-3.5-turbo
로 고려했는데 공식 문서에서 2024년 7월부로 터보 버전 대신 4o mini 버전을 권장한다고 합니다<응답 바디 예시>
✨ 참고 사항
Answer
클래스의isMultipleAndCheckAnswer()
이 모냥이 조금 애매하네요.. 객관식인 경우 문자열 비교만 하면 되서 해당 메서드 내에서 채점까지 하고, 주관식인 경우에는 chatgpt 외부 의존성이 있어서 false 만 반환하고AnswerService
에서 chatGPT 호출할 수 있도록 했습니다. -> 멘토님께 개선 방향을 여줘보려고 합니다!⏰ 현재 버그
true
라고 판단한 답변도false
라고 답하는 경우가 잦아서 일단은 한글로 유지해두고 있습니다. (토큰 수가 많이 차이나서 이것도 언젠간 영어 프롬프트로 바꾸긴 해야할 듯 합니다)<⚠️ 오류 예시 >
isNew = false
로 인식해서 select로 확인을 거친다고 합니다.@GeneratedValue(strategy = GenerationType.UUID)
로 생성 후에 id 값을 채우도록 했고 성공적으로 쿼리 개수를 줄일 수 있었습니다.!!
을 추가했습니다!✏ Git Close