diff --git a/journey/plans/260323_다형식문서_RAG_2단계_1800개_증분인덱싱_계획.md b/journey/plans/260323_다형식문서_RAG_2단계_1800개_증분인덱싱_계획.md new file mode 100644 index 0000000..b0ffb70 --- /dev/null +++ b/journey/plans/260323_다형식문서_RAG_2단계_1800개_증분인덱싱_계획.md @@ -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 그래프 노드/엣지 반영 +- [ ] 워크플로우 문서 수치 갱신