/java-chat

spring boot와 react 채팅 - 비속어 탐지 기능이 들어간 웹소켓 채팅 서비스

Primary LanguageJavaMIT LicenseMIT

채팅 서비스

Bert를 이용한 비속어 탐지 AI가 적용된 실시간 양방향 채팅 서비스

Demo

스크린샷

로그인 알람
친구초대 회원가입

채팅 영상

비속어 감지

  • 사용자들이 보낸 메시지가 채팅방에 보내진다.
  • 약 10초의 시간동안 비속어 여부를 판별 후
    • 비속어인 경우 메시지가 가려진다. 비속어가 탐지되어 메시지가 가려졌습니다. 로 업데이트 된다.

docs

제목 파일
API 문서 📑
AI 사용 데이터 및 학습 📖
AI 실제 학습 코드 📑

Steps to Setup

Local

Requirements

java - 17, maven - 4.0.0, node - 20.13.1, Azurite

AI

🔗 비속어 탐지 onnx 모델 다운로드 링크
위 파일을 다운로드 후 AI 서버의 spring-boot의 resources에 파일명을 model.onnx로 변경해 넣는다.

azurite --silent --location c:\azurite --debug c:\azurite\debug.log
  • azurite 실행 후, input-queueoutput-queue 생성(이름 그대로 사용)
mvn spring-boot:run

Backend

mvn spring-boot:run

Frontend

npm install
npm start
http://localhost:3000/

workflow & architecture

cicd worflow & architecture image

학습 내역

AI

제목 학습내역
BERT 모델 소개 📖
사용 데이터 및 학습 📖

backend

제목 학습 내역
비동기 처리와 약한 결합을 위한 event학습 - event, publish, listeners 📖
JWT authentication 구현 마스터하기! 📖
채팅 구현을 위한 STOMP 사용 방법 📖
Spring WebFulx - sync, async와 blocking, nonblocking부터 webflux 사용법까지 📖

frontend

제목 학습 내역
react에서 api 사용하기 - fetch, axios 📖
react에서 navigation하기 - react router dom 사용법 📖
context API로 props drilling 해결 및 data shring 📖
websocket의 필요와 connection 📖

이 문서와 코드는 KSY(HwiYul-G)에 의해 작성되었습니다. 클론 시 꼭 표기 부탁드립니다.
This document and code were written by KSY(HwiYul-G). Please be sure to indicate this when cloning

Copyright (c) 2024. Soyeon Kim(Hwiyul_G). All rights reserved.