docs: RAG 파일 처리에 로빙 철학 및 구체적 구현 전략 반영
- 기억 모듈 철학 추가 (정보엔트로피, 감정기반 선택적 저장) - 스탯 성장 원칙과 경험치(XP) 시스템 통합 - PDF 처리 스킬의 구체적 전략 (구조 분석, 청킹, 캐싱) - DB 스키마에 로빙 철학 기반 컬럼 추가 - 단계별 확장 계획 구체화 (베이지안 갱신, A/B 테스트 등) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
137bde59fa
commit
1d673ee0bb
@ -9,10 +9,19 @@
|
|||||||
사용자가 업로드한 문서를 로빙이 "기억"하고 대화에 활용할 수 있도록 하는 시스템.
|
사용자가 업로드한 문서를 로빙이 "기억"하고 대화에 활용할 수 있도록 하는 시스템.
|
||||||
|
|
||||||
## 2. 핵심 원칙
|
## 2. 핵심 원칙
|
||||||
- **로빙의 철학 반영**: 파일을 단순 데이터가 아닌 "경험"으로 축적
|
|
||||||
|
### 2.1 로빙 철학 기반
|
||||||
|
- **선택적 기억 저장**: 모든 파일이 아닌 의미 있는 정보만 저장 (정보엔트로피 + 감정편차 + 주제연관도 기준)
|
||||||
|
- **파일을 "경험"으로 축적**: 단순 데이터가 아닌 로빙의 성장 경험치로 변환
|
||||||
- **사용자별 격리**: 각 사용자의 지식베이스를 완전히 분리
|
- **사용자별 격리**: 각 사용자의 지식베이스를 완전히 분리
|
||||||
- **투명한 피드백**: 처리 과정을 실시간으로 사용자에게 전달
|
- **투명한 피드백**: 처리 과정을 실시간으로 사용자에게 전달
|
||||||
|
|
||||||
|
### 2.2 기억 모듈 원칙 (220_기억모듈 설계 기반)
|
||||||
|
- **저장 우선도 공식**: `우선도 = α*정보엔트로피 + β*감정편차 + γ*주제연관도`
|
||||||
|
- **깜놀 메모리 우선**: 놀람 지표가 높은 문서/섹션 우선 저장
|
||||||
|
- **에빙하우스 망각곡선**: 시간 경과에 따른 가치 하락 모델 적용
|
||||||
|
- **요약 후 압축**: 임계값 이하 정보는 LLM 요약 후 원본 삭제
|
||||||
|
|
||||||
## 3. 파일 저장 아키텍처
|
## 3. 파일 저장 아키텍처
|
||||||
|
|
||||||
### 3.1 디렉토리 구조
|
### 3.1 디렉토리 구조
|
||||||
@ -40,10 +49,17 @@
|
|||||||
2. 바이러스 검사 & 파일 타입 검증
|
2. 바이러스 검사 & 파일 타입 검증
|
||||||
3. 원본 저장 (/mnt/hdd/uploads/{user_id}/)
|
3. 원본 저장 (/mnt/hdd/uploads/{user_id}/)
|
||||||
4. 텍스트 추출 (Apache Tika or python-docx/PyPDF2)
|
4. 텍스트 추출 (Apache Tika or python-docx/PyPDF2)
|
||||||
5. 청킹 (1000 토큰 단위, 200 토큰 오버랩)
|
- PDF: 구조 분석 (제목 계층, 표/그림, 참조/인용) [250_스킬_사례_분석 기반]
|
||||||
|
- 청킹: 1000 토큰 단위, 200 토큰 오버랩
|
||||||
|
- 캐싱: 자주 접근하는 문서는 구조화 형태로 저장
|
||||||
|
5. 정보 가치 평가 (기억 모듈 원칙 적용)
|
||||||
|
- 정보엔트로피 계산: 예측 불가능성 측정
|
||||||
|
- 감정편차 분석: 문서의 감정 트리거 강도
|
||||||
|
- 주제연관도: 사용자 관심사와의 코사인 유사도
|
||||||
6. 임베딩 생성 (skill-embedding 서비스)
|
6. 임베딩 생성 (skill-embedding 서비스)
|
||||||
|
- 선택적 임베딩: 우선도 임계값 이상만 처리
|
||||||
7. ChromaDB 저장 (user_{user_id} 컬렉션)
|
7. ChromaDB 저장 (user_{user_id} 컬렉션)
|
||||||
8. PostgreSQL 메타데이터 저장
|
8. PostgreSQL 메타데이터 저장 + 경험치 기록
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.2 지원 파일 형식
|
### 4.2 지원 파일 형식
|
||||||
@ -52,6 +68,26 @@
|
|||||||
- 프레젠테이션: PPTX
|
- 프레젠테이션: PPTX
|
||||||
- 이미지 내 텍스트: PNG, JPG (OCR 구현 계획: [→250909_ocr_skill_implementation_plan.md](./250909_ocr_skill_implementation_plan.md))
|
- 이미지 내 텍스트: PNG, JPG (OCR 구현 계획: [→250909_ocr_skill_implementation_plan.md](./250909_ocr_skill_implementation_plan.md))
|
||||||
|
|
||||||
|
### 4.3 경험치(XP) 획득 시스템 (스탯 설계 원칙 기반)
|
||||||
|
```
|
||||||
|
파일 처리 XP = BaseScore × Impact × Novelty × ConfidenceAdj × Diminish
|
||||||
|
|
||||||
|
- BaseScore: 텍스트 추출 성공률 (0-1)
|
||||||
|
- Impact: 추출된 정보의 활용도 (회상 빈도로 측정)
|
||||||
|
- Novelty: KL Divergence(기존 지식 vs 새 정보)
|
||||||
|
- ConfidenceAdj: OCR/추출 신뢰도 보정
|
||||||
|
- Diminish: 동일 유형 파일 반복 처리 시 체감 (1/(1+k*streak))
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.4 스탯 성장 매핑
|
||||||
|
| 행동 | 경험치 | 영향 스탯 |
|
||||||
|
|------|--------|----------|
|
||||||
|
| PDF 구조 분석 성공 | +3 | 연산(Compute) |
|
||||||
|
| 새로운 지식 임베딩 | +5 | 기억(Memory) |
|
||||||
|
| 사용자 질문에 파일 정보 활용 | +7 | 기억(Memory) |
|
||||||
|
| 감정 트리거 문서 처리 | +4 | 공감(Empathy) |
|
||||||
|
| 멀티 파일 연관 분석 | +6 | 통솔(Leadership) |
|
||||||
|
|
||||||
## 5. 사용자 피드백 UI
|
## 5. 사용자 피드백 UI
|
||||||
|
|
||||||
### 5.1 웹 프론트엔드
|
### 5.1 웹 프론트엔드
|
||||||
@ -103,14 +139,26 @@ CREATE TABLE user_documents (
|
|||||||
upload_path TEXT,
|
upload_path TEXT,
|
||||||
chunk_count INTEGER,
|
chunk_count INTEGER,
|
||||||
processing_status VARCHAR(50),
|
processing_status VARCHAR(50),
|
||||||
|
-- 로빙 철학 기반 추가 컬럼
|
||||||
|
info_entropy FLOAT, -- 정보엔트로피 값
|
||||||
|
emotion_score FLOAT, -- 감정편차 점수
|
||||||
|
relevance_score FLOAT, -- 주제연관도
|
||||||
|
priority_score FLOAT, -- 종합 우선도 (α*entropy + β*emotion + γ*relevance)
|
||||||
|
xp_gained INTEGER, -- 획득한 경험치
|
||||||
|
recall_count INTEGER DEFAULT 0, -- 회상 횟수 (Impact 측정용)
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
processed_at TIMESTAMP
|
processed_at TIMESTAMP,
|
||||||
|
last_recalled_at TIMESTAMP -- 마지막 회상 시간 (망각곡선 적용용)
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6.2 ChromaDB 컬렉션
|
### 6.2 ChromaDB 컬렉션
|
||||||
- 컬렉션명: `user_{user_id}_documents`
|
- 컬렉션명: `user_{user_id}_documents`
|
||||||
- 메타데이터: document_id, chunk_index, source_file, page_number
|
- 메타데이터:
|
||||||
|
- document_id, chunk_index, source_file, page_number
|
||||||
|
- info_entropy, emotion_score (청크별 가치 평가)
|
||||||
|
- created_at, last_accessed (망각곡선 적용)
|
||||||
|
- structural_type (제목/본문/표/참조 등, PDF 구조 분석 결과)
|
||||||
|
|
||||||
## 7. 보안 고려사항
|
## 7. 보안 고려사항
|
||||||
- 파일 크기 제한: nginx `client_max_body_size 1000M`
|
- 파일 크기 제한: nginx `client_max_body_size 1000M`
|
||||||
@ -120,7 +168,19 @@ CREATE TABLE user_documents (
|
|||||||
- 사용자별 용량 쿼터 관리
|
- 사용자별 용량 쿼터 관리
|
||||||
|
|
||||||
## 8. 향후 확장 방안
|
## 8. 향후 확장 방안
|
||||||
- 버전 관리: 동일 파일의 업데이트 추적
|
|
||||||
- 협업 기능: 팀 단위 문서 공유
|
### 8.1 단기 (1-2개월)
|
||||||
- 자동 요약: 업로드 시 문서 요약 생성
|
- **적응형 임계값**: 최근 데이터 분포 기반 동적 우선도 임계값 조정
|
||||||
- 검색 고도화: 의미 기반 + 키워드 하이브리드 검색
|
- **베이지안 파라미터 갱신**: 처리 성공률 기반 α, β, γ 가중치 자동 튜닝
|
||||||
|
- **A/B 테스트**: 청킹 크기, 오버랩 비율 최적화
|
||||||
|
|
||||||
|
### 8.2 중기 (3-6개월)
|
||||||
|
- **버전 관리**: 동일 파일의 업데이트 추적 + 델타 저장
|
||||||
|
- **협업 기능**: 팀 단위 문서 공유 (레벨 15+ 로빙만 허용)
|
||||||
|
- **자동 요약**: 업로드 시 문서 요약 생성 + 감정 분석
|
||||||
|
- **멀티 암드 밴딧**: 파일 유형별 최적 처리 전략 자동 선택
|
||||||
|
|
||||||
|
### 8.3 장기 (6-12개월)
|
||||||
|
- **검색 고도화**: 의미 기반 + 키워드 + 구조 정보 하이브리드 검색
|
||||||
|
- **스카웃 시스템**: 레벨 20 로빙의 문서 처리 이력을 포트폴리오화
|
||||||
|
- **문서 간 연결망**: 지식 그래프 구축, 연관 문서 자동 추천
|
||||||
Loading…
x
Reference in New Issue
Block a user