Fix/s3 image upload cors#147
Merged
Merged
Conversation
- few-shot 프롬프트 리소스와 FewShotPromptProvider 추가 - few-shot 예시를 4개로 재구성하고 questionAnalyses 개수 분포를 0/1/2/1로 분산 - few-shot 예시에서 점수, weaknessType, dimension, relatedRequirement 제거 - 실제 JD/답변 앞에 few-shot 블록 삽입 - 포부/계획, 경험/성과, 지원동기, 역량/자격 문장 평가 기준 분리 - 포부/계획 문장에는 과거 성과 수치나 Before-After를 요구하지 않도록 프롬프트 보강 - JD 반영 우선순위를 mainTask > qualification >>> preference로 조정 - JD 영역을 main_tasks, qualifications, preferences로 분리하고 preference를 보조 기준으로 제한 - preference-only 누락을 문장 첨삭 사유로 사용하지 않도록 규칙 추가 - PROVEN은 완벽한 문장이 아니라 충분한 직접 근거가 있는 상태임을 명시 - questionAnalyses를 유효한 분석 대상에 따라 0~3개 허용하도록 조정 - 항상 1개를 반환하지 않도록 few-shot 및 프롬프트 규칙 보강 - 점수는 few-shot 예시와 독립적으로 실제 JD/답변 전체 기준으로 산정하도록 명시 - AnalysisAiClient 출력 규칙에서 전체 JSON 예시와 점수 placeholder 제거 - Structured Output 기반 필드 의미와 제약만 설명하도록 출력 규칙 정리 - missingKeywords를 실제 JD 원문 기반 경험형 키워드로 제한 - missingKeywords 검증을 exact substring에서 보수적 토큰 기반 검증으로 완화 - preference source 및 정형 자격요건 missingKeyword 제외 - 영어 공인성적, 전공, 경력 연차 등 정형 조건은 제외하고 경험형 키워드는 유지하도록 필터 조정 - 원문 동일, 다른 원문 문장 복사, 메타 조언형 improvement 제거 - improvement가 원문 시제를 바꾸는 경우 제거하도록 안전장치 추가 - PROVEN + 부족 reason 모순 검사를 단어 기반에서 결핍 구문 기반으로 조정 - 유효한 PROVEN 분석은 유지하고 improvement만 제거하도록 후처리 유지 - EvaluationAnalysisBatchService에도 운영과 동일한 sanitizer 적용 - few-shot/provider/prompt/sanitizer/운영/평가 후처리 테스트 추가 및 보강
- questionAnalyses 허용 status를 MENTIONED/FABRICATED 중심으로 정리 - PROVEN 문장은 questionAnalyses에서 제외하고 keyStrengths로 표현하도록 프롬프트 수정 - MISSING은 questionAnalyses가 아닌 missingKeywords로만 처리하도록 규칙 명시 - 내부 10단계 판단 순서와 chain-of-thought 비출력 규칙 추가 - 여러 독립 문제 문장은 대표 1개로 축소하지 않고 최대 3개까지 반환하도록 보강 - keyStrengths와 questionAnalyses의 동일 문장 중복 제거 - 서버 후처리에서 PROVEN/MISSING questionAnalysis 최종 제외 - FABRICATED는 reason이 비어 있거나 직접 충돌 근거가 없으면 제외 - EvaluationAnalysisBatchService에도 운영과 동일한 상태 필터 적용 - v5-A 상태 정책과 역할 분리 테스트 추가 및 보강
- analysis.two-pass.enabled feature flag 추가 - 기본값 false에서 기존 single-pass 분석 경로 유지 - 1차 후보 판정용 AnalysisCandidateResponse 내부 DTO 추가 - 1차 호출에서 strength/analysis/missingKeyword 후보만 추출하도록 프롬프트 추가 - 1차 후보에 점수, feedback, improvement 생성 금지 규칙 적용 - 후보 sanitizer로 questionId, 원문 substring, source, status, 중복, 최대 개수 검증 - FABRICATED 후보는 직접 충돌 reasonBasis가 있을 때만 유지 - missingKeyword 후보는 기존 JD 기반 sanitizer 재사용 - 2차 호출에서 검증된 후보만 입력으로 최종 AnalysisLlmResponse 생성 - 2차 프롬프트에 새 questionAnalysis 추가 금지와 improvement 안전 규칙 추가 - 평가 CSV에 raw/sanitized candidate JSON, 후보 개수, latency, failureStage 컬럼 추가 - v5-A의 questionAnalyses 첨삭 대상 전용 정책 유지 - 1차/2차 프롬프트, 후보 검증, 평가 CSV 테스트 보강
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (17)
📝 WalkthroughWalkthroughLLM 분석을 단일 호출에서 후보 생성·정제·최종 생성의 2-pass 흐름으로 확장했습니다. 후보 검증과 분석 후처리 규칙을 추가하고, 평가 결과에 후보 응답·호출 지연·실패 단계를 기록합니다. S3 CORS 허용 오리진과 검증 문서도 갱신했습니다. Changes분석 파이프라인 확장
S3 CORS 설정
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant AnalysisAiClient
participant OpenAI
participant AnalysisSanitizationRules
participant EvaluationAnalysisBatchService
EvaluationAnalysisBatchService->>AnalysisAiClient: 평가 분석 요청
AnalysisAiClient->>OpenAI: 후보 생성 요청
OpenAI-->>AnalysisAiClient: 후보 응답
AnalysisAiClient->>AnalysisSanitizationRules: 후보 정제
AnalysisAiClient->>OpenAI: 최종 분석 요청
OpenAI-->>AnalysisAiClient: 최종 응답
AnalysisAiClient-->>EvaluationAnalysisBatchService: AnalysisAiCallResult
Possibly related PRs
Suggested labels: ✨ Finishing Touches📝 Generate docstrings
🧪 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.
✨ 어떤 이유로 PR를 하셨나요?
📋 세부 내용 - 왜 해당 PR이 필요한지 작업 내용을 자세하게 설명해주세요
📸 작업 화면 스크린샷
🚨 관련 이슈 번호 [ ]
Summary by CodeRabbit
개선 사항
버그 수정
문서