Skip to content

feat(f1): 독립 pairing validator (C1/C2/C4/C5) 구현 - #32

Open
ohchanju3 wants to merge 5 commits into
mainfrom
f1-independent-validator
Open

feat(f1): 독립 pairing validator (C1/C2/C4/C5) 구현#32
ohchanju3 wants to merge 5 commits into
mainfrom
f1-independent-validator

Conversation

@ohchanju3

Copy link
Copy Markdown
Collaborator

요약

F1(V1) 중 찬주 담당 파트) — 생성 코드와 독립적인 pairing legality validator, source_type별 분리 집계, LLM adapter 구현.

포함된 것

  • evaluation/validator.py — 독립 validator. RL/environment.py::get_mask()를 재사용하지 않고 14개 violation code(base 출발/복귀, duty 내외 공항 연속성, connection/rest 시간, duty·leg·pairing 기간, duplicate, unknown flight 등)를 전부 새로 구현. Turkish HB1/HB2 비대칭 복귀(allowed_return_bases opt-in)도 지원
  • evaluation/validation_report.pyaggregate_by_source()로 policy_direct/ salvage/repair/forced 4종류 분리 집계(pairing 수, coverage, invalid 수, duplicate, deadhead 수, ManDays, FTC — 전부 flights 데이터로 독립 재계산).
    aggregate_by_source_per_chunk()로 chunk마다 base가 다른 경우도 대응.
  • evaluation/llm_adapter.py — LLM 원시 출력 파싱 → pairing_record 변환 adapter(재채점 준비용, 파싱만 독립 재구현하고 validity 판정은 전부 validator에 위임).
  • provenance: validator_version/constraint_hash를 검증 결과에 기록.
  • 테스트 28개 전부 통과(tests/test_validator.py, test_validation_report.py,test_llm_adapter.py).

아직 안 된 것 (혜린 코드 필요)

  • evaluate_ip.py/eval_best.py 실제 연결(C3) — 실제 pairing pool 출력 형태 확인 후 진행
  • MIN_REST_FAILURE 1개 violation code — pairing_record가 duty 경계를 명시적으로 주는지에 따라 구현 방식 달라짐, TODO로 문서화(evaluation/validator.py 주석 참고)

확인 필요(merge 후 재검토 예정)

  • allowed_return_bases 필드명이 Turkish constraint 쪽 구현과 맞는지
  • constraint dict에 strict mode 관련 새 키가 추가됐는지

@ohchanju3
ohchanju3 requested a review from pkhyrn268 August 20, 2026 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant