plan: 2단계 ~1,800개 증분 인덱싱 계획 — 23·24 동시 진행, 200개 파일럿 → 500개 배치

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
happybell80 2026-03-23 01:12:15 +09:00
parent c6a7f402b1
commit 0a0645c407

View File

@ -0,0 +1,118 @@
---
type: plans
tags: [plans, rag, companyx, indexing, incremental, stage2]
status: open
depends_on: 260320_로빙_다형식문서_RAG_적용1_계획.md
closing_criteria: 증분 ~1,800개 인덱싱 완료 + 품질 게이트 3축 통과 + AGE 그래프 반영 + 문서 갱신
---
# 260323 다형식문서 RAG 2단계 ~1,800개 증분 인덱싱 계획
## 목적
1단계(2,000개) 완료 후, NAS mtime 2025-11-30 이후 증분 ~1,800개를 인덱싱하여 검색 범위를 확장한다.
## 참조 문서
- [증분 인덱싱 워크플로우](../../workflow/03_rag/companyx_incremental_indexing_workflow.md)
- [260320 적용1 계획 (닫힘)](./260320_로빙_다형식문서_RAG_적용1_계획.md)
- NAS 협업 드래프트: `/mnt/nas/workspace/shared-editing/drafts/[24]_260323_2단계_최종종합.md`
## 실측 기반 수치 (260323)
| 항목 | 값 |
|------|-----|
| NAS mtime 2025-11-30 이후 | 5,038개 |
| 사전 제외 (이미지/압축/임시/빈) | 771개 |
| 기존 인덱싱 | 2,506건 |
| **실제 증분** | **~1,761개** |
| 현재 청크 | 19,996 |
| AGE 노드 | 2,369 / 엣지 2,064,720 |
## 대상 리스트 관리
- 3분할 JSONL: 전체 후보 / 사전 제외 / 실행 대상
- 포맷: `{"path": "...", "mtime": "...", "size": 0, "ext": ".pdf"}`
- 위치: git 레포(`scripts/targets_stage2.jsonl`) + NAS 스냅샷
- 생성 주체: 23 클로드 (DB diff + NAS 스캔)
## 실행 전략
### 23·24 서버 동시 진행
| 서버 | 역할 |
|------|------|
| **23서버** | 리스트 JSONL 생성, AGE 엣지 시간 측정, DB 모니터링, 문서 관리 |
| **24서버** | 배치 스크립트 실행 (skill-rag-file 컨테이너), 품질 검증 |
### 배치 전략
```
파일럿 200개 → 검증 → 500개 배치 × ~3회 → 나머지 → 완료
```
- concurrency: 2
- 배치 간 5초 sleep (WAL write 집중 방지)
- 야간 실행 (APScheduler 충돌 없음 확인)
### 배치별 로그 (필수 기록)
- 소요 시간
- 생성 문서 수 / 청크 수
- 실패 수 + 원인 분류
- AGE 엣지 생성 시간
- DB CPU / 메모리
## 품질 게이트 3축
1. 기존 17개 질문 비회귀
2. chunk_text 품질 (길이 0 또는 50자 미만 비율)
3. 확장자별 실패율
## 실패 분류
| 유형 | 재시도 | 처리 |
|------|--------|------|
| 텍스트 추출 실패 | 1회 | 격리 |
| 임베딩 API 실패 (429/5xx) | 3회 (지수 백오프) | 재시도 |
| DB write 실패 | 1회 | 중단 + 조사 |
| PPTX no_chunks | 0회 | 즉시 격리 |
| OCR 깨짐 (chunk < 50자) | 0회 | 격리 + 파일명 보완 |
## 주의사항
- **AGE 엣지 200만개**: 1,800개 추가 시 엣지 수백만 추가 가능. 파일럿에서 반드시 측정
- **1단계 실패 7건 전부 PPTX no_chunks**: 2단계에서도 반복 예상
- **DB 증분 ~300MB**: 디스크(가용 140GB) 문제없음
## 담당 분배
| 작업 | 담당 | 서버 |
|------|------|------|
| 리스트 JSONL 3분할 생성 | 23 클로드 | 23 |
| 200개 파일럿 실행 | 24 클로드 | 24 |
| 파일럿 검증 | 24 코덱스 | 24 |
| AGE 엣지 시간 측정 | 23 클로드 | 23 |
| 500개 배치 실행 | 24 클로드 | 24 |
| DB 모니터링 | 23 클로드 | 23 |
| 문서 갱신 | 23 코덱스 | 23 |
| 코드/로그 리뷰 | 23 Cursor | 23 |
## 실행 순서
```
[23] 리스트 JSONL 생성 ──→ [24] 200개 파일럿 실행 ──→ [24] 검증
[23] AGE 측정 (병렬) ──┘ ↓
통과 → [24] 500개 배치 × ~3회
[23] DB 모니터링 (병렬)
[23] 문서 갱신 + [24] 최종 검증
```
## 닫는 조건
- [ ] 증분 ~1,800개 인덱싱 완료 (실패 격리 포함)
- [ ] 기존 17개 질문 비회귀
- [ ] chunk_text 품질 게이트 통과
- [ ] AGE 그래프 노드/엣지 반영
- [ ] 워크플로우 문서 수치 갱신