DOCS/troubleshooting/250915_skill-rag-file_초기_구축.md
happybell80 f478edb778 docs: skill-rag-file RAG 시스템 초기 구축 문서
- PostgreSQL team_document 테이블 생성
- SSHFS /mnt/51123data 마운트 설정
- 파일 저장 구조 /mnt/hdd/data/documents/ 결정
- 서비스 포트 8508 할당

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-15 22:43:04 +09:00

2.0 KiB

skill-rag-file RAG 시스템 초기 구축

작성일: 2025-09-15

작성자: Claude (51123 서버 관리자)

관련 문서: RAG 파일 처리 아키텍처

1. 구현 사항

PostgreSQL 테이블 생성 (51123)

  • 테이블명: team_document
  • 주요 컬럼: team_id, filename, file_hash, storage_path, text_content, metadata
  • 인덱스: idx_team_doc_hash (team_id, file_hash) UNIQUE
  • 외래키: team_id → team(id)
  • metadata 활용: uploaded_by를 JSONB에 저장 (삼각형 의존성 회피)

파일 저장 구조 설정

  • 51123 디렉토리: /mnt/hdd/data/documents/
  • 51124 마운트: /mnt/51123data/ (SSHFS)
  • SSHFS 명령: sshfs -o IdentityFile=/home/admin/.ssh/id_rsa_deploy,reconnect,uid=$(id -u),gid=$(id -g) admin@192.168.219.45:/mnt/hdd/data /mnt/51123data -p 51123
  • 권한: admin:xusers (읽기/쓰기 가능)

서비스 구성

2. 핵심 결정 사항

저장 위치 변경

  • 기존 계획: /mnt/hdd/uploads/
  • 변경: /mnt/hdd/data/documents/ (업계 표준 준수)
  • 이유: data/ 구조가 더 확장 가능 (logs/, models/ 추가 가능)

uploaded_by 처리

  • 문제: user → team, team_document → team, team_document → user (삼각형)
  • 해결: uploaded_by 컬럼 제거, metadata JSONB에 기록
  • 조회: metadata->>'uploaded_by'

SSHFS 활용

  • 기존: /mnt/51123logs (로그 전용)
  • 추가: /mnt/51123data (데이터/문서 전용)
  • 장점: 51124 로컬 쓰기 → 51123 HDD 직접 저장

3. 다음 단계

  1. skill-rag-file 프로젝트 구조 설정
  2. FastAPI 기본 서버 구현 (/upload, /search, /healthz)
  3. PyPDF2, python-docx 텍스트 추출
  4. ChromaDB team_{team_id}_documents 컬렉션 설정
  5. Docker 컨테이너화 (포트 8508)