Skip to content

Latest commit

 

History

History
executable file
·
122 lines (103 loc) · 4.37 KB

File metadata and controls

executable file
·
122 lines (103 loc) · 4.37 KB

CLAUDE.md - ParseNoteLM 프로젝트 컨텍스트

프로젝트 개요

ParseNoteLM은 AI 기반 문서 분석 및 질의응답 서비스입니다. 대학생과 대학원생을 위한 PDF/TXT 문서 분석 도구로, OpenAI GPT-3.5-turbo와 RAG(Retrieval-Augmented Generation) 기술을 활용합니다.

기술 스택

  • 백엔드: Python 3.11, FastAPI 0.95.1, SQLAlchemy 2.0
  • 프론트엔드: React 18, TypeScript, Tailwind CSS
  • 데이터베이스: SQLite (개발), PostgreSQL (프로덕션 예정)
  • AI/ML: OpenAI API (GPT-3.5-turbo, text-embedding-ada-002), FAISS
  • 인증: JWT + BCrypt

프로젝트 구조

ParseNoteLM/
├── backend/
│   ├── app/
│   │   ├── core/        # 핵심 기능 (인증, 설정, 보안)
│   │   ├── models/      # SQLAlchemy 모델
│   │   ├── routes/      # API 엔드포인트
│   │   ├── schemas/     # Pydantic 스키마
│   │   └── services/    # 비즈니스 로직
│   ├── data/
│   │   └── vector_stores/  # FAISS 벡터 저장소
│   ├── uploads/         # 업로드된 파일
│   └── main.py         # FastAPI 앱 진입점
├── frontend/
│   ├── src/
│   │   ├── components/  # React 컴포넌트
│   │   ├── pages/      # 페이지 컴포넌트
│   │   ├── services/   # API 통신 서비스
│   │   └── types/      # TypeScript 타입 정의
│   └── public/
└── scripts/            # 실행 스크립트

실행 스크립트

프로젝트에는 다음 실행 스크립트들이 포함되어 있습니다:

  1. setup.sh - 초기 환경 설정

    • Python/Node.js 환경 확인
    • 가상환경 생성 및 패키지 설치
    • .env 파일 생성
    • 데이터베이스 초기화
  2. run-backend.sh - 백엔드 서버 실행

    • 포트 8000 자동 정리
    • Python 가상환경 활성화
    • FastAPI 서버 실행
  3. run-frontend.sh - 프론트엔드 서버 실행

    • 포트 3000 자동 정리
    • npm 패키지 확인
    • React 개발 서버 실행
  4. run-all.sh - 전체 서비스 실행

    • tmux/screen을 사용한 동시 실행
    • 기존 프로세스 자동 종료
  5. stop-all.sh - 모든 서비스 종료

    • 포트 8000, 3000 프로세스 종료
    • tmux/screen 세션 정리

주요 기능

  1. 사용자 인증: JWT 기반 인증, 비밀번호 재설정, RBAC 권한 관리
  2. 프로젝트 관리: 사용자당 3개 프로젝트, 프로젝트당 5개 문서
  3. 문서 처리: PDF/TXT 파일 업로드, 자동 텍스트 추출, 청킹
  4. RAG 시스템: 벡터 검색, 컨텍스트 기반 답변, 소스 추적
  5. 마인드맵: 문서 내용의 시각적 표현
  6. 프로젝트 멤버: 역할 기반 권한 (OWNER, ADMIN, EDITOR, VIEWER)

API 엔드포인트

  • 인증: /auth/register, /auth/login, /auth/me
  • 프로젝트: /api/projects (CRUD)
  • 문서: /api/projects/{id}/documents (업로드, 목록, 삭제)
  • RAG: /api/rag/projects/{id}/chat, /api/rag/projects/{id}/search
  • 멤버: /api/projects/{id}/members (초대, 관리)

환경 설정

백엔드 .env 파일 필수 설정:

DATABASE_URL=sqlite:///./parsenotelm.db
SECRET_KEY=your-secret-key-here
OPENAI_API_KEY=your-openai-api-key-here

프론트엔드 .env 파일:

REACT_APP_API_URL=http://localhost:8000

최근 작업 내역 (2025-08-30)

  1. 프로젝트 정리

    • 47,184개의 macOS 메타데이터 파일 삭제 (276MB 공간 확보)
    • pycache, .pyc, .DS_Store 파일 정리
  2. 실행 스크립트 추가

    • 포트 자동 정리 기능
    • tmux/screen 지원
    • 환경 설정 자동화
  3. 프론트엔드 오류 수정

    • ESLint jest 환경 설정 문제 해결
    • reactflow Background 컴포넌트 제거
    • lucide-react 타입 정의 파일 추가

알려진 문제

  • 모든 주요 문제는 해결된 상태
  • 자세한 내용은 KNOWN_ISSUES.md 참조

개발 팁

  1. 프로젝트 시작: ./setup.sh 실행 후 ./run-all.sh
  2. 기본 관리자 계정: admin@parsenotelm.com / admin123!
  3. API 문서: http://localhost:8000/docs
  4. 프론트엔드: http://localhost:3000

향후 계획

  • Task 13: 사용량 추적 및 제한 시스템
  • Task 14: 성능 최적화 (캐싱, 인덱싱)
  • PostgreSQL + pgvector 마이그레이션
  • 클라우드 스토리지 연동
  • Docker 컨테이너화