본 문서는 backend/ai/interview_graph 기준으로 2차 개선에서 반영한 내용을 통합 정리한다.
이번 2차 개선의 핵심은 다음 6가지다.
selector_lite에서 후속 처리 대상 5개를 선별한다.questioner뿐 아니라 predictor, driller, reviewer도 변경된 질문만 재처리하도록 개선한다.| 항목 | 내용 |
|---|---|
| 대상 | final_formatter, schemas.py, questioner, selector_lite, predictor, driller, reviewer, scorer, router |
| 한 줄 목적 | 질문 생성 완료 상태, 카테고리 계약, 재시도 비용 구조를 정리해 API 안정성과 단일 실행 성능을 함께 개선한다. |
| 실험 유형 | 성능 / 비용 / 안정성 / 품질 / State 구조 개선 |
| 기준 AS-IS | docs/HS/HS_랭그래프_기획.md |
| 주요 성능 기준 | 단일 실행 1건, LLM 호출 9회, 총 91,517 tokens, 총 LLM 시간 416.26초 |
partial_completed 의미 혼합기존에는 LangGraph 실행이 실패하지 않았고 질문도 저장되었지만, 최종 세션 상태가 COMPLETED가 아니라 PARTIAL_COMPLETED로 저장되는 케이스가 반복 관측되었다.
원인은 final_formatter_node가 질문 생성 성공 여부와 질문 품질 승인 여부를 하나의 status로 판단했기 때문이다.
is_partial = (
not has_extracted_text
or len(items) < 5
or approved_count < 5
or state.get("retry_count", 0) >= state.get("max_retry_count", 3)
or bool(state.get("node_warnings"))
)