Conversation
* [ICC-316] ♻️ refactor: 4종 퀴즈 프롬프트를 few-shot 중심 구조로 통일
규칙 나열 → few-shot 중심으로 전환하여 Gemini의 프롬프트 준수율을 개선한다.
- 공통 구조: Step 1(지식유형 판별) → Step 2(라우팅 테이블 + few-shot) → Step 3-4(Step 2 따르라)
- MULTIPLE: 규칙 22개 → 3개, few-shot 8→14개 (9도메인), 숏컷 방지 점수 1.80→2.65
- OX: few-shot 중심 재작성, 9쌍 (6도메인), Understand/Apply 수준 검증
- BLANK: few-shot 중심 재작성, 8개 (3도메인), Remember/Understand 수준
- ESSAY: few-shot 중심 재작성, 10개 (5도메인), Analyze/Evaluate 수준, 채점기준표 유지
- RequestPrompt: 사용자 지시 반영 시 Step 1-2 테이블 라우팅 참조로 통일
* [ICC-316] ✨ feat: BLANK 퀴즈 프롬프트 품질 개선 — 패턴 다양화 및 빈칸 위치 전략
- 패턴 C(특성형) 신규 추가, A~F 알파벳 순서 재조정
- few-shot 예시 빈칸 위치를 문장 중간으로 다양화 (B~F)
- 비교형(D) 경제학 도메인 예시 추가
- 배분 전략: A 편중 방지, 빈칸 문장 끝 편중 방지
- 오답 규칙 강화: 동일 범주 유사 개념 최소 2개
* [ICC-316] ♻️ refactor: OX 퀴즈 프롬���트 few-shot 품질 개선
- O 예시에 한계/비용/예��� 조건 추가하여 숏컷 방지 강화
- X 예시의 극단어("즉시", "모든") 제거 및 미묘한 변조로 교체
- 라벨 통일: "O정답/X정답" → "참(O) 진술문/거짓(X) 진술문"
- 패턴 A·C few-shot을 관계 추론형으로 교체 (Remember→Understand)
- 6라운드 evaluator 평�� 결과: R1 6.6 → R5 8.65/12 (역대 최고)
* [ICC-316] ♻️ refactor: OX 퀴즈 프롬프트 few-shot 전면 개편
- O/X 진술문 어조·길이 대칭화로 숏컷 방지 강화
- X 변조 고도화: 단순 역전 → 조건누락형·범위과잉형·핵심역전형 혼합
- O 진술문 간결화: 독립 판단 최대 2개로 제한하여 학습자 친화성 확보
- 주제 다양화: 경제학 편중(5/9) → 8종 분야 분산
(생물학-자연선택, 물리학-엔트로피, 사회과학-생태학적 오류 추가)
- 완성본 예시 JSON을 열역학 문항으로 동기화
* [ICC-316] 🐛 fix: ESSAY 채점 프롬프트에 maxPoints 배점 고정 제약 추가
AI가 루브릭의 배점(maxPoints)을 임의로 재해석하여 동일 문제의 max_score가
재제출마다 달라지는 버그를 수정. 시스템 프롬프트에 루브릭 표의 [카테고리, N점]
값을 그대로 복사하라는 명시적 지시와 경고를 추가.
* [ICC-316] ♻️ refactor: MULTIPLE 프롬프트 전면 재설계 — 설명·예시·설명 삼중 구조 도입
- 모든 지시사항에 -> 예시: + -> 설명: 인라인 구조 추가
- 선택지를 자연스러운 구어체("~하는 대신, ~걸 감수한다")로 통일
- Checking 패턴 2-2 배치(같은 지목 대상 2개씩) 소거법 방지
- 오답 설명에 "극단적이지 않으면서 매력적인 구성 방법" 명시
- Step 3 해설을 Step 2 설명 직접 참조 구조로 변경
- 완성본 퓨샷을 새 해설 포맷(정답 설명/오답 설명)에 맞춤
- 중립성 검토: 수식어("일부"/"크게") 및 비중립 표현 제거
* [ICC-316] 🔧 chore: Resilience4j 슬로우 콜 임계값 설정 추가
Gemini 호출 서킷 브레이커에 slow-call-duration-threshold(60초)와
slow-call-rate-threshold(100%) 옵션을 추가하여 장시간 응답 케이스에 대한
서킷 동작을 제어할 수 있도록 한다.
* [ICC-316] ✨ feat: PDF 전용 Gemini 캐시 등록 메서드 추가
3-chunk 병렬 생성에서 각 청크가 서로 다른 시스템 프롬프트를 사용하면서
동일한 PDF를 공유할 수 있도록 createPdfOnlyCache(fileUri)를 추가한다.
시스템 프롬프트를 제외하고 PDF 콘텐츠만 캐시에 등록한다.
* [ICC-316] ✨ feat: TTLQ 메트릭 도입 및 MULTIPLE 청크 모드 설정 추가
마지막 문항 생성까지 걸린 시간(TTLQ)을 기록하여 Slack 성공/부분성공
알림에 노출한다. 기존 TTFQ와 함께 첫·마지막 문항 응답 시간 분포를
함께 관찰할 수 있게 한다.
또한 MULTIPLE 청크 모드(단일/멀티턴/병렬)를 설정으로 분기할 수 있도록
q-asker.ai.multiple.chunk-mode 옵션을 추가한다.
* [ICC-316] ♻️ refactor: 4종 퀴즈 프롬프트 구조 개선 — 패턴별 풀이 절차 명세화
BLANK·MULTIPLE·OX·ESSAY 프롬프트를 지식 유형(사실적/개념적/절차적/메타인지적)
단위로 재구성하고, 각 패턴별 단계별 풀이 절차와 자가점검 단계를 명시한다.
- MULTIPLE: 정답 풀이 R1~R4 단계화, 오답을 R1/R2/R3 이탈로 도출하는 구조 도입
- OX: 비교형/인과형/분류형/상황 전이형 패턴별 O/X 변별 메커니즘 설명 추가
- BLANK: 패턴별 단서 분산 전략과 오답 유형(유사개념형/혼동유발형) 가이드 강화
- OXRequestPrompt: 변조 유형 강제 제약을 제거하고 O/X 정답 준수만 명시
* [ICC-316] ♻️ refactor: 로그 메시지 [카테고리] key=value 포맷으로 통일
운영 알림·검색·메트릭 라벨링이 용이하도록 로그 메시지를
"[카테고리] 설명 key=value" 포맷으로 통일한다. 또한 예외를
문자열로 직렬화하던 케이스를 Throwable 인자로 바꿔 스택트레이스가
유실되지 않도록 한다.
대상: GlobalExceptionHandler, SlackNotifier, HashUtil,
NoOpConvertService, BlankQuizOrchestrator, EssayQuizOrchestrator,
OXQuizOrchestrator, EssayGradingServiceImpl, GeminiChatService,
GeminiFileServiceImpl, StreamingQuestionExtractor,
StreamingEssayQuestionExtractor, PdfUtils, EssayGradeService,
SseNotificationServiceImpl, FileUploadService,
StaleGenerationRecoveryScheduler
* [ICC-316] ⏪️ revert: OXGuideLine을 develop 시점으로 되돌림
직전 프롬프트 구조 개선 커밋(ab0b0a0)에 포함된 OXGuideLine 변경을
원복한다. OX 가이드라인은 별도 검토 후 다시 반영한다.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
규칙 나열 → few-shot 중심으로 전환하여 Gemini의 프롬프트 준수율을 개선한다.
AI가 루브릭의 배점(maxPoints)을 임의로 재해석하여 동일 문제의 max_score가 재제출마다 달라지는 버그를 수정. 시스템 프롬프트에 루브릭 표의 [카테고리, N점]
값을 그대로 복사하라는 명시적 지시와 경고를 추가.
Gemini 호출 서킷 브레이커에 slow-call-duration-threshold(60초)와 slow-call-rate-threshold(100%) 옵션을 추가하여 장시간 응답 케이스에 대한 서킷 동작을 제어할 수 있도록 한다.
3-chunk 병렬 생성에서 각 청크가 서로 다른 시스템 프롬프트를 사용하면서
동일한 PDF를 공유할 수 있도록 createPdfOnlyCache(fileUri)를 추가한다. 시스템 프롬프트를 제외하고 PDF 콘텐츠만 캐시에 등록한다.
마지막 문항 생성까지 걸린 시간(TTLQ)을 기록하여 Slack 성공/부분성공
알림에 노출한다. 기존 TTFQ와 함께 첫·마지막 문항 응답 시간 분포를
함께 관찰할 수 있게 한다.
또한 MULTIPLE 청크 모드(단일/멀티턴/병렬)를 설정으로 분기할 수 있도록
q-asker.ai.multiple.chunk-mode 옵션을 추가한다.
BLANK·MULTIPLE·OX·ESSAY 프롬프트를 지식 유형(사실적/개념적/절차적/메타인지적) 단위로 재구성하고, 각 패턴별 단계별 풀이 절차와 자가점검 단계를 명시한다.
운영 알림·검색·메트릭 라벨링이 용이하도록 로그 메시지를
"[카테고리] 설명 key=value" 포맷으로 통일한다. 또한 예외를
문자열로 직렬화하던 케이스를 Throwable 인자로 바꿔 스택트레이스가
유실되지 않도록 한다.
대상: GlobalExceptionHandler, SlackNotifier, HashUtil, NoOpConvertService, BlankQuizOrchestrator, EssayQuizOrchestrator, OXQuizOrchestrator, EssayGradingServiceImpl, GeminiChatService, GeminiFileServiceImpl, StreamingQuestionExtractor, StreamingEssayQuestionExtractor, PdfUtils, EssayGradeService, SseNotificationServiceImpl, FileUploadService,
StaleGenerationRecoveryScheduler
직전 프롬프트 구조 개선 커밋(ab0b0a0)에 포함된 OXGuideLine 변경을
원복한다. OX 가이드라인은 별도 검토 후 다시 반영한다.
📢 설명
변경 1: [제목]
[변경에 대한 설명]
의사 선택과정 (trade-off)
얻은 것
잃은 것
코드 설명: 인라인 코멘트 확인
✅ 체크 리스트
재현 확인
기본