Conversation
- 후보별 document embedding 메모리 캐시 적용 - 캐시 miss 후보만 Cohere Embed API로 요청하도록 개선 - datasetVersion, caseId, 후보 내용을 캐시 키에 반영 - 후보 데이터 변경 시 선택 결과와 document embedding 자동 갱신 - TTL 만료 캐시 정리 및 동시 초기화 중 중복 호출 방지 - caseId가 달라도 JD, 문항, 답변이 동일한 후보 제외 - Unicode, 대소문자, 반복 공백을 정규화한 입력 hash 비교 적용 - 자기 참조 조건이 다른 선택 결과의 캐시 재사용 방지 - 캐시 및 평가 누수 방지 회귀 테스트 추가
- 후보별 CompletableFuture 기반 in-flight 초기화 상태 추가 - 동일 후보 임베딩 요청의 Cohere 중복 호출 방지 - Cohere document embedding 호출을 동기화 구간 밖에서 실행 - 서로 다른 후보 키의 임베딩 호출 병렬 실행 허용 - 임베딩 성공 결과를 캐시에 저장한 뒤 대기 요청에 전달 - 임베딩 실패 시 예외 전파 및 in-flight 상태 정리 - selection cache 접근 시 전체 만료 항목 제거 - 동일 키 중복 방지, 서로 다른 키 병렬 처리 및 전역 만료 제거 테스트 추가
…afety-cache [Fix] 동적 Few-shot 후보 캐시와 평가 누수 방지 보강
- FewShotSelectionMode enum 추가 - 임베딩 선택, 로컬 fallback, 정적 fallback 경로 구분 - 동적 Few-shot 선택 완료 로그에 selectionMode 추가 - 선택 캐시에 최초 선택 모드를 함께 저장 - 캐시 적중 시 기존 선택 모드가 유지되도록 개선 - 빈 검색 결과와 검색 예외의 정적 fallback 로그 통일 - Cohere 임베딩 선택 경로 테스트 보강
…afety-cache [Fix] 동적 Few-shot 선택 모드 로깅 보강
- Few-shot 검색 질의와 후보 문서의 HTML 태그 제거 - script, style 및 HTML 주석이 임베딩 입력에 포함되지 않도록 처리 - HTML 엔티티와 반복 공백 및 줄바꿈 정규화 - 직무, JD, 문항, 답변, 태그별 최대 길이 제한 적용 - 블록 태그와 인라인 태그의 텍스트 결합 방식 구분 - 일반 비교 표현의 꺾쇠 문자가 삭제되지 않도록 HTML 패턴 제한 - HTML 정규화 및 답변 길이 제한 회귀 테스트 추가
…afety-cache [Fix] Few-shot 검색 입력 정규화와 길이 제한 적용
- min-similarity 설정을 추가하고 기존 min-rerank-score 설정과 호환 - minimum-selected-count 설정을 통한 최소 선택 개수 보장 - 임베딩 후보가 최소 개수에 미달하면 로컬 fallback 수행 - 후보별 유사도 분포의 최고점, 최저점, 평균점 로그 추가 - 임계값 통과 후보 개수와 적용 임계값 로그 기록 - 유사도 정책을 Few-shot 선택 캐시 키에 반영 - 유사도 정책을 분석 입력 fingerprint에 반영 - 개발, 운영, 평가 환경 설정에 신규 옵션 추가 - 임계값 필터링과 최소 개수 fallback 회귀 테스트 추가
…afety-cache [Fix] Few-shot 유사도 임계값과 선택 품질 로그 추가
- 검색 질의 해시 기반 query embedding 캐시 구현 - 동일 질의의 반복 Cohere embedQuery 호출 방지 - topK 또는 후보 데이터셋이 달라도 동일 질의 임베딩 재사용 - CompletableFuture 기반 동일 질의 in-flight 요청 공유 - Cohere API 호출을 캐시 상태 처리 구간 밖에서 실행 - 만료된 query embedding 캐시 항목 전역 정리 - 임베딩 배열 저장 및 조회 시 방어적 복사 적용 - 캐시 비활성화 시 기존 호출 방식 유지 - 반복 요청, 동시 요청 및 캐시 비활성화 회귀 테스트 추가
- query embedding 캐시의 요청별 전체 만료 항목 순회 제거 - 요청 키의 TTL을 개별적으로 검사하도록 변경 - 1분 간격의 주기적 전역 만료 정리 적용 - query embedding 캐시 최대 크기 설정 추가 - 최대 크기 도달 시 오래된 항목을 일괄 제거하도록 개선 - 동시 캐시 정리 작업 중복 실행 방지 - 실패한 query embedding in-flight 상태 제거 검증 - 실패 후 동일 질의 재시도 및 정상 복구 테스트 추가 - TTL 만료와 최대 캐시 크기 회귀 테스트 추가
- query embedding 캐시 hit 시 lastAccessedAt 갱신 - 캐시 최대 크기 정리 기준을 최근 접근 시각으로 변경 - 공유 query embedding future 대기에 timeout 적용 - timeout, 인터럽트 및 공유 future 실패 시 로컬 fallback 유지 - owner 임베딩 실패 시 모든 대기 요청의 fallback 동작 검증 - 실패한 in-flight 상태 제거 후 동일 질의 재시도 검증 - Cohere Retry-After 값을 최대 재시도 backoff 범위로 제한 - 최근 접근 항목 보존 및 미사용 항목 제거 테스트 추가 - in-flight 대기 timeout 설정을 개발·평가·운영 환경에 추가
…afety-cache [Fix] Few-shot query embedding 캐시 추가
- 주요 업무·자격요건·우대사항 중 하나 이상 존재하면 적재 허용 - 실제 직무명을 보존하고 기존 CSV의 소분류 대체 동작 유지 - 예시 프롬프트에 우대사항 포함 - 승인 분석 JSON의 단일 객체 형식 검사 및 오류 행 개별 제외 - CSV 호환성과 오류 처리 회귀 테스트 추가 - 검수 데이터 적재 설정 및 재확인 내용 문서화
…on-domain [Feat] 지원관리 카드 도메인 및 기본 등록 API 구현
…on-kanban [Feat] 지원관리 칸반 조회 및 카드 이동 구현
…on-details [Feat] 지원관리 상세 모달 데이터 저장 API 구현 (#302)
…on-archive [Feat] 지원관리 카드 보관함 및 삭제 기능 구현 (#304)
- 필수 필드 및 분석 JSON 검증 이후 caseId 등록 - 동일 ID의 첫 유효 행 유지 및 유효 행 중복 처리 보존 - 비활성·미승인·필수값 누락·잘못된 JSON 이후 정상 행 적재 회귀 테스트 추가 - Few-shot 관련 테스트 28개 통과
…afety-cache [Fix] PM 검수 Few-shot CSV 적재 조건 및 필드 보존 개선
- 검수 승인 후보 5개와 평가 전용 프로필 추가 - CSV 헤더·열 개수 및 부분 분석 JSON 계약 검증 - JSON 리소스의 승인 검증 우회 방지 - 입력 해시 공통화 및 중복 입력 후보 제외 - 파싱 오류 로그의 원문 노출 방지 - 데이터 로딩·자기 참조·중복 제외 회귀 테스트 추가 - 관련 테스트 149개 통과
…ataset [Feat] PM 검수 Few-shot 데이터 연결 및 적재 검증 강화
- 프롬프트 조립 시 선택 후보와 모드·점수·설정 스냅샷 수집 - 정적 사용·임베딩·로컬/정적 fallback·미적용 구분 - 실행별 JSONL 파일에 성공 및 실패 행의 선택 이력 저장 - 중복 caseId를 실행 ID와 입력 행 번호로 구분 - 기존 운영 응답과 평가 CSV 형식 유지 - 관련 테스트 192개 통과 및 사용 문서 추가
…-metadata [Feat] 평가 실행별 Few-shot 선택 메타데이터 기록
- Cohere Embed v2 응답의 추가 필드 역직렬화 허용 - 실제 embed-v4.0 응답 구조 회귀 테스트 보강 - single-pass 후보 응답 JSON null 처리 - NLG Judge single-pass 입력 회귀 테스트 추가 - STATIC/DYNAMIC holdout 20건 분석 및 Judge 비교 - 케이스별 개선·동일·악화 결과와 지연·품질 지표 문서화 - 전체 테스트 663개 통과
- NlgJudgeInput을 ArgumentCaptor로 캡처 - null 후보 스냅샷의 validatedMissingKeywordCandidateCount가 0인지 검증 - 기존 배치 성공 및 failureStage 회귀 검증 유지
…runtime [Fix] Few-shot 비교 평가 실행 오류 수정 및 품질 결과 문서화
- OpenAI 분석 응답의 입력 및 출력 토큰 사용량 수집 - single-pass와 two-pass 평가 결과에 토큰 사용량 전달 - 선택적 recheck 호출 토큰을 final 사용량에 합산 - 평가 CSV의 candidate/final/total 토큰 컬럼 기록 - Few-shot 선택 sidecar에 케이스별 Cohere 논리 호출 수 기록 - STATIC/DYNAMIC 20건 사용량 재평가 결과 문서화 - 토큰 및 Cohere 호출 수 회귀 테스트 추가
…-usage-metrics [Feat] Few-shot 비교 평가 사용량 계측 추가
- Few-shot similarity 분포와 후보 선택 개수 분석 - top-k 및 min-similarity 조합별 품질·비용 평가 - minimum-selected-count fallback 품질 비교 - 권장값을 top-k 5, min-similarity 0.40, minimum-selected-count 2로 확정 - dev, prod, evaluation 프로필에 권장 설정 반영 - feature flag 기본 비활성 상태 유지 - 튜닝 결과와 결정 근거 문서화
…threshold-tuning [Feat] 동적 Few-shot 선택 임계값 및 후보 수 튜닝
- Cohere 검색 입력 전용 개인정보 마스커 추가 - 실시간 질의와 승인 후보 문서에 동일한 마스킹 정책 적용 - 이메일, 국내 전화번호, URL, 주민번호 형식 마스킹 - 라벨형 이름, 주소, 계정, 사번 및 학번 마스킹 - HTML 제거 후 마스킹과 공백 정규화가 수행되도록 처리 순서 정리 - 회사명과 학교명은 직무 의미 보존을 위해 자동 마스킹 대상에서 제외 - 개인정보 자동 처리 범위와 PM 수동 검수 항목 문서화 - 대표 개인정보 유형 및 검색 문서 회귀 테스트 추가
…sking [Feat] Few-shot 검색 입력 개인정보 마스킹 적용
- Few-shot 선택 모드별 실행 횟수 기록 - embedding 및 fallback 선택 비율 관측 지원 - 검색 지연 histogram과 선택 후보 수 분포 추가 - Few-shot 전용 Cohere 논리 호출량 및 실패 유형 기록 - 메트릭 태그 cardinality 제한 - 단계적 운영 활성화와 중단 판단 기준 문서화 - feature flag 기반 즉시 정적 Few-shot 복귀 절차 추가 - fallback 및 Cohere 실패 메트릭 회귀 테스트 추가
…monitoring [Feat] 동적 Few-shot 운영 모니터링 지표 추가
- selection cache 최대 크기 및 LRU 제거 정책 추가 - document embedding cache 최대 크기 및 LRU 제거 정책 추가 - 기존 query embedding cache와 TTL 정책 정렬 - 동일 selection 키의 동시 요청 결과 공유 - in-flight 요청을 캐시 제거 대상에서 보호 - 캐시별 hit, miss, expired, evicted 메트릭 추가 - dev, prod, evaluation 환경별 캐시 크기 설정 추가 - 캐시 상한과 동시 외부 호출 방지 회귀 테스트 추가 - 캐시 운영 정책 및 Grafana 조회 쿼리 문서화
- 만료된 document embedding을 cache hit 처리 전에 제거 - selection in-flight 공유 대기에 configurable timeout 적용 - selection 대기의 timeout, interruption, owner failure 예외 처리 - selection 및 document 캐시 정리 중 발생한 추가 정리 요청 보존 - 동시 삽입 완료 후 설정된 캐시 최대 크기를 재적용 - 캐시 동시 삽입 및 selection timeout 회귀 테스트 추가 - hit_after_claim 메트릭 outcome 문서화 - 환경별 selection in-flight wait timeout 설정 추가
- selection 캐시 조회 중 불필요한 후속 정리 예약 방지 - document embedding 캐시 조회 중 불필요한 후속 정리 예약 방지 - 캐시 삽입 및 in-flight 제거 경로에서만 dirty 상태 기록 - 동시 삽입 후 캐시 최대 크기 보장 동작 유지 - 조회와 캐시 정리 경합에 대한 회귀 테스트 추가
…-limit [Feat] Few-shot 메모리 캐시 최대 크기 제한 적용
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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이 필요한지 작업 내용을 자세하게 설명해주세요
📸 작업 화면 스크린샷
🚨 관련 이슈 번호 [ ]