RAG2026-5일40차시 · 발표와 정리6 / 16← 이전목차다음 →MetaContents

40차시. 발표와 정리

2. [15~35분] 문서화

출처: 원본 PDF 40차시_발표와정리.pdf 4쪽 · 쪽 그림 4쪽

코드만 남기면 6개월 뒤의 나도 못 씁니다. README를 씁니다.

📝 README.md

출력
# 사내 인사규정 Q&A 시스템

취업규칙 문서를 기반으로 인사 관련 질문에 답하는
LangGraph 기반 Modular RAG 시스템입니다.

## 무엇을 하나
- 직원의 인사 문의에 규정 근거와 함께 답변
- 규정에 없는 내용은 "확인할 수 없다"고 답변
- 인사말·범위 밖 질문은 검색 없이 처리

## 성능 (2026-08-06)
| 지표 | Dev(21문항) | Holdout(9문항) | 목표 |
|---|---|---|---|
| Correctness | 85.7% | 77.8% | 85% |
| Faithfulness | 0.928 | 0.933 | 0.95 |
| Abstention | 100% | 100% | 100% |
| P95 응답 | 11.8초 | — | 10초 |

## 구조
![architecture](docs/architecture.png)

노드 10개 · 조건부 분기 3곳 · 루프 2개
- classify → 질문 유형 판별 (smalltalk/calculate/reject/search)
- retrieve → 검색, ok/weak/empty 3단계 판정
- rewrite → 질의 재작성 후 재검색 (최대 1회)
- generate → 근거 기반 답변 생성
- verify → LLM 심판으로 검증 (pass/retry/research)
- bump → 재시도 카운터 (최대 2회)
- fallback → 5단계 계층 안내

## 설치와 실행
'''
pip install -r requirements.txt
cp .env.example .env      # OPENAI_API_KEY 입력
python app.py
'''

## 주요 설정 (config.py)
| 값 | 설정 | 근거 |
|---|---|---|
| CHUNK_SIZE | 350 | 조항 하나가 한 조각이 되도록 |
| MIN_SCORE | 0.42 | 관련/무관 질문 20개 실측 |
| TOP_K | 7 | MMR 적용 후 실험으로 결정 |
| MAX_RETRY | 2 | 3회 이상 개선 효과 없음 |
| MAX_RESEARCH | 1 | 2회 이상 정답률 변화 없음 |

## 알려진 한계
1. P95 응답 11.8초 — 목표 10초 미달. 캐싱 미적용
2. 복합 질문 정답률 낮음 — Verifier가 완결성 미검사
3. 표 형식 조항 처리 불가 — 텍스트 추출 한계
4. 대화 맥락 미지원 — 매 질문을 독립 처리

## 다음에 할 것
- [ ] 응답 캐싱 적용 (33차시 방법)
- [ ] Verifier에 completeness 기준 추가
- [ ] 평가셋 30 → 50문항 확장
← 이전 절40차시 · 1. [0~15분] Holdout 최종 평가다음 절 →40차시 · 3. 문서화 체크리스트