프로젝트 소개 — 양동이

흩어진 학사 정보를 대신 찾아 정리해 주는 동양미래대학교 학생 전용 챗봇

핵심 소주제

1

흩어진 학사 정보를 한 번에

공지, 시간표, 성적, 과제, 캠퍼스 시설, 학과 정보가 여러 사이트에 흩어져 있고 모바일에서 보기 불편하다. 양동이는 이를 한 채팅창에서 질문 하나로 확인하게 한다.

2

학칙 · 공지 RAG (원본 2025)

학칙 PDF와 크롤링한 공지·학과 정보를 한국어 임베딩(ko-sroberta)으로 Chroma에 넣고, 검색한 근거로 GPT-4o-mini가 답했다. 업데이트용과 서빙용 인덱스를 분리하는 A/B 전략과 변경분만 다시 넣는 증분 인덱싱을 썼다.

3

음성 질의응답 (원본 2025)

faster-whisper로 말을 글로 바꾸고, 답변은 edge-tts로 읽어 주는 음성 대화 서버를 FastAPI로 따로 두었다.

4

비용 없는 키워드 챗봇으로 리라이트 (2026)

2026년 9월, Flask·MySQL·MongoDB·로컬 LLM 구성을 Next.js + Prisma + PostgreSQL 한 벌로 다시 만들었다. LLM 호출 대신 질문을 8개 카테고리로 키워드 매칭하고 DB를 조회해 답해, 운영 비용 없이 Vercel 하나로 배포된다.

5

회원 · 학생 · 게스트 3가지 계정

학번으로 로그인하는 학생은 개인 시간표·성적·과제를 보고, 일반 회원은 대화 기록이 남으며, 입학 희망자 같은 게스트는 기록 없이 공개 정보만 묻는다.

주요 기능

기능설명상태
키워드 챗봇인사·시간표·성적·자격증·공지·과제·캠퍼스·학과 8개 카테고리 매칭 후 DB 조회현재
요일별 시간표"화요일 수업", "오늘 시간표" 같은 질문 처리현재
성적 · 과제로그인 학생의 성적, 30일 안에 마감되는 과제현재
공지 · 자격증최근 공지 5건, 자격증·시험 관련 공지현재
로그인 · 회원가입NextAuth Credentials, bcrypt, 회원/학번 계정현재
게스트 모드로그인 없이 이용, 기록 저장 안 함현재
학칙 · 공지 RAGChroma 벡터 검색 + GPT-4o-mini원본
음성 대화faster-whisper STT · edge-tts TTS원본
공지 요약 · 즐겨찾기 · 다크모드README 기획에만 있음설계

기술 스택

현재Next.js 15 · React 19 · TypeScript · Tailwind v4 · Prisma 5 · NextAuth 4 · PostgreSQL · Vercel
원본Flask · MySQL · MongoDB · ChromaDB · OpenAI GPT-4o-mini · ko-sroberta 임베딩 · faster-whisper · edge-tts · Docker Compose

아키텍처 (현재)

계층기술배포
화면Next.js App Router — 로그인 · 회원가입 · 채팅 · 게스트Vercel · yangdongi.cloverky.cloud
APINext API 라우트 (/api/chat, /api/signup 등)Vercel
챗봇 엔진키워드 인텐트 매칭 (src/lib/chatbot.ts)—
DBPostgreSQL + Prisma (pgbouncer)관리형 PostgreSQL