feat(feedback): 질문별 복기 — 답변마다 모범 답안·리라이트·코칭#120
Merged
Conversation
면접 도구를 "채점기"에서 "코치"로. 피드백 생성 시 자기소개를 제외한 모든
답변에 대해 AI가 모범 답안 + 내 답변 리라이트 + 한 줄 코칭을 생성하고,
피드백 리포트의 답변 버블 아래 '복기' 아코디언으로 보여준다(평가 점수 포함).
- AI: answer_coaching 프롬프트 + LlmAnswerCoach(Flash). FeedbackConsumer 가
자기소개 제외 (질문,답변) 쌍을 찾아 답변별 병렬 코칭 → callback.feedback 의
answerCoaching[{messageId, modelAnswer, answerRewrite, coachingComment}].
종합 generate·첫인상·직무 적합도와 asyncio.gather 병렬, 실패해도 피드백 계속.
- Core: V19(interview_messages +3컬럼) + InterviewMessage.recordCoaching.
FeedbackCallbackService 가 각 답변 메시지에 기록. MessageResult/Response 가
답변 평가 점수 + 복기를 노출(종료 세션 조회에서만 — expectedSignal 동일 게이팅).
- Frontend: AnswerCoachingAccordion(답변 버블 아래 '복기' 토글). OpenAPI 재생성.
- 테스트(AI/Core) + docs(database/messaging/CLAUDE) 갱신.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
변경 사항
면접 도구를 "채점기" → "코치" 로 끌어올립니다. 사용자는 점수뿐 아니라 "그래서 어떻게 답했어야 하는지" 를 봅니다.
피드백 생성 시, 자기소개를 제외한 모든 답변에 대해 AI가:
을 생성하고, 피드백 리포트의 답변 버블 아래 '복기' 아코디언(평가 점수 포함)으로 보여줍니다.
상세
AI
chain/prompts/answer_coaching.py+LlmAnswerCoach(Flash).FeedbackConsumer가 자기소개 제외 (질문,답변) 쌍을 찾아 답변별 병렬 코칭 →callback.feedback.answerCoaching[{messageId, modelAnswer, answerRewrite, coachingComment}]asyncio.gather병렬. 실패/빈 답변/자기소개는 건너뜀(피드백은 정상 발행). 답변 수 상한(기본 30)Core
interview_messages에model_answer/answer_rewrite/coaching_comment추가 +InterviewMessage.recordCoachingFeedbackCallbackService가answerCoaching[]을 각 답변 메시지에 기록(다른 세션 메시지는 방어적 skip)MessageResult/MessageResponse가 답변 평가 점수 + 복기를 노출하되 종료 세션 조회에서만(expectedSignal과 동일 게이팅 — 라이브 중 정답 유출 방지)Frontend
AnswerCoachingAccordion— 답변 버블 아래 '복기 보기' 토글(평가 점수 칩 → 한 줄 코칭 → 모범 답안 → 리라이트). 피드백 페이지의 기존InterviewTranscript재사용. OpenAPI 타입 재생성테스트
_collect_coachable_pairs·forwarding → 269 passed, black·flake8 통과FeedbackCallbackServiceTest코칭 기록 케이스 추가, 세션·ArchUnit·Flyway(V19) 통과tsc+ eslint + 인터뷰 테스트 통과문서
docs/database.md(V19 컬럼),docs/messaging.md(answerCoaching),backend·aiCLAUDE.md🤖 Generated with Claude Code