이 곳은 ClubFinder.AI의 공식 저장소입니다. 자랑하고 싶은 우리 학교의 동아리를 작성하고 재학생들이 자신과 어울리는 동아리를 확인할 수 있는 웹 페이지를 만들어보세요!
ClubFinder는 Sentence Transformer 모델을 이용해 입력된 동아리 정보를 벡터로 임베딩하여 faiss 라이브러리를 통해 인덱스로 저장하며, 사용자 입력에 어울리는 상위 3개 동아리를 추려냅니다. 추려진 상위 3개의 동아리 정보 기반으로 Chat GPT API를 RAG 방식으로 이용해 추천 동아리를 제안합니다!
- 세종대학교 동아리 일부 예시
- 챗봇 예시
저희의 서비스를 이용하기 위해서는 docker가 설치된 환경이어야 합니다.
👉 Docker 설치 가이드
챗봇 서비스를 이용하기 위해 GPT API를 필요로 합니다.
👉 GPT API KEY 발급
| 서비스 | 포트 번호 |
|---|---|
| AI 서버 | 8000 |
| 백엔드 | 8080 |
| 프론트엔드 | 5173 |
| DB (MySQL) | 3307 |
❗ 위 포트가 다른 프로세스에 점유되어 있으면 실행되지 않습니다.
ClubFinder.AI 서비스는 정식 릴리즈 버전의 ClubFinder의 이미지를 사용하여 도커 컨테이너 환경에서 실행됩니다. 자세한 방법은 아래 bash 명령어를 참고해 주세요.
# 로컬 터미널
git clone https://github.com/OpenSW-3341/ClubFinder.AI.git
cd ClubFinder.AI
vi .env
# env 파일 내에서 사용할 OPENAI_API_KEY, ADMIN_ID, ADMIN_PASSWORD, SPRING_PROFILES_ACTIVE 를 수정해주세요.
docker compose -f docker-compose-image.yml up --build하드웨어 사양에 따라 서버 실행까지 걸리는 시간이 상이합니다.
AI 서버 같은 경우 수 분 ~ 수십분 정도 시간이 소요될 수 있습니다.
ai-server | INFO: Started server process [8]
ai-server | INFO: Waiting for application startup.
ai-server | INFO: Application startup complete.
ai-server에서 위 로그가 나와야 정상 작동됩니다.
최근 커밋을 반영하고 싶은 로컬 개발 환경에서는 아래의 bash 명령어를 통해 도커 컨테이너 환경을 구성할 수 있습니다.
git clone https://github.com/OpenSW-3341/ClubFinder.AI.git
cd ClubFinder.AI
vi .env
# env 파일 내에서 사용할 OPENAI_API_KEY, ADMIN_ID, ADMIN_PASSWORD, SPRING_PROFILES_ACTIVE 를 수정해주세요.
docker compose -f docker-compose.yml up --build하드웨어 사양에 따라 서버 실행까지 걸리는 시간이 상이합니다.
AI 서버 같은 경우 수 분 ~ 수십분 정도 시간이 소요될 수 있습니다.
ai-server | INFO: Started server process [8]
ai-server | INFO: Waiting for application startup.
ai-server | INFO: Application startup complete.
ai-server에서 위 로그가 나와야 정상 작동됩니다.
아래 설명의 URL은 localhost에서 실행한다는 가정 하에 작성되었습니다.
호스트명의 수정이 발생한 경우 그에 맞는 호스트 명으로 URL을 수정하여 사용해주세요.
http://localhost:5173/admin에 접속합니다.- 본인이 docker-compose.yml에 지정한 admin 계정으로 로그인을 진행합니다.
- 로그인 이후
동아리 등록버튼을 통해 등록하고 싶은 동아리의 정보를 입력합니다. - 수정 및 삭제가 자유롭게 가능합니다.
동아리 정보가 3개 이상 등록되어야 챗봇이 원활하게 작동합니다.
http://localhost:5173/user에 접속합니다.- 등록된 동아리를 전체 조회할 수 있습니다.
- 등록된 동아리를 카테고리 별로 조회할 수 있습니다.
- 우측 하단의 챗봇 아이콘을 클릭하면 챗봇 기능 사용이 가능합니다.
- 사용자 입력에 따라 등록된 동아리 중 당신과 어울리는 동아리를 추천합니다.
기본적으로 설정되어있는 사용자 명과 비밀번호입니다. 필요에 따라 내부 파일 수정을 통해 변경이 가능합니다.
- mysql
사용자명: root
비밀번호: passw0rd
- 웹사이트 admin
사용자명: admin
비밀번호: admin1234
본 프로젝트는 React(MIT License), Spring Boot(Apache License 2.0), FastAPI(MIT License), Docker(Apache License 2.0), Sentence Transformer(Apache License 2.0), Faiss(MIT License), MySQL(GPL 2.0) 등의 기술 스택을 사용하여 개발되었습니다. 프로젝트 개발에 사용된 대부분의 오픈소스 기술은 MIT 또는 Apache License 2.0으로 배포되어 있어 상업적 사용, 수정, 배포가 자유롭고, 라이선스 간의 충돌 없이 함께 사용할 수 있습니다.
MySQL의 경우 GPL 2.0 라이선스이지만, 독립된 Docker 이미지로 사용되기 때문에 GPL의 라이센스 전염성 조항이 본 프로젝트 전체에 영향을 미치지 않습니다.
이러한 라이센스 검토 내용을 바탕으로, 본 프로젝트는 사용자들이 자유롭게 사용하고, 수정하며, 배포할 수 있도록 MIT License를 채택하여 오픈소스로 공개하려고 합니다. MIT License는 간단하고 이해하기 쉬우며, 누구나 프로젝트를 자유롭게 활용할 수 있게 합니다.



