Skip to content

시스템 아키텍처

iNotePal은 Python 기반의 풀스택 프레임워크인 Reflex를 사용하여 개발되었으며, 효율적인 데이터 처리를 위해 Supabase와 Vector DB를 활용합니다.

  • 프레임워크: Reflex (Python)
  • 특징: 프론트엔드와 백엔드 모두 Python으로 작성 가능. 실제로는 Next.js로 컴파일되어 동작.
  • 배포:
    • 프론트엔드: GitHub Pages (Static Site)
    • 백엔드: 자체 서버 구성
  • Vector DB: Supabase (pgvector)
  • 역할: 문장 임베딩 벡터 저장 및 코사인 유사도 검색.
  • 최적화: HNSW 인덱스를 사용하여 쿼리 응답 속도 개선.
  1. 사용자 입력: 사용자가 챗봇에게 메시지를 입력합니다.
  2. 임베딩: 입력된 문장을 벡터로 변환합니다.
  3. 유사도 검색: Supabase Vector DB에서 입력된 문장과 가장 유사한 답변을 코사인 유사도를 통해 검색합니다.
  4. 감정 분석: 별도의 감정 분석 모델(BERT 기반)이 입력된 문장의 감정을 분류합니다.
  5. 응답 생성: 검색된 답변과 분석된 감정을 바탕으로 챗봇이 응답합니다.
  6. 시각화: 대화 데이터와 감정 분석 결과가 대시보드에 시각화됩니다.