Skip to content

Repository files navigation

위허메, 금융범죄를 예방하는 가장 똑똑한 키보드

Slice 1 (3)

Group 1597880445

위 급한 판단 실수의 순간!
허 위 정보에 흔들리지 않도록!
메 시지를 감지해! 금융범죄를 예방하는 키보드 기반 서비스

시스템 아키텍쳐

Slice 2

ERD

Slice 2

설치

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt

테스트 도구까지 설치하려면 requirements-test.txt를 사용합니다.

config 가이드

기본 실행에는 app/config.py가 필요하지 않습니다. 서버·Ollama·푸시 설정은 환경변수에서 읽으며 비밀키와 Firebase/APNs 자격 증명 파일은 저장소 밖에 둡니다. 기존 배포처럼 로컬 설정 파일이 필요하면 아래 형식의 ignored app/config.py를 만들 수 있으며, 이 오버라이드가 환경변수 기반 기본값보다 우선합니다.

./app/config.py 파일을 생성 후 sample_config.py 파일을 참고하여 아래 코드와 같이 작성합니다.

from app.sample_config import Config

class Development(Config):
    WEB_HOST = '0.0.0.0'
    WEB_PORT = 서버 포트 번호

    # Ollama
    OLLAMA_URL = 'OLLAMA 서버 주소'
    OLLAMA_MODEL = 'fraud-detector:latest'

    # Push Alarm
    AUTH_KEY_PATH = '.p8 파일 경로'
    TEAM_ID = 'Apple Developer Team ID'
    AUTH_KEY_ID = '.p8 인증 키 ID'
    APP_BUNDLE_ID = '앱의 Bundle ID'
    IS_PRODUCTION = True | False # 프로덕션 환경 여부

.env 파일을 생성 후 아래 코드와 같이 작성합니다.

    # Kakao Login Settings
    kakao_token_url=https://kauth.kakao.com/oauth/token
    kakao_auth_url=https://kauth.kakao.com/oauth/authorize
    kakao_userInfo_url=https://kapi.kakao.com/v2/user/me
    kakao_client_url=your_kakao_client_url
    redirect_url=your_redirect_url

    # 새로운 설정들 (호환성)
    KAKAO_CLIENT_ID=your_kakao_client_url
    KAKAO_REDIRECT_URI=your_redirect_url
    KAKAO_ADMIN_KEY=your_kakao_admin_key

    # 프로젝트
    PROJECT_NAME=WatchOut
    APP_BUNDLE_ID=com.jaesuneo.WatchOut
    APP_CUSTOM_SCHEME=watchout

    # MySQL DB
    MYSQL_HOST=127.0.0.1
    MYSQL_PORT=3306
    MYSQL_DATABASE=your_db
    MYSQL_USERNAME=your_username
    MYSQL_PASSWORD=your_pw

    # Legacy MySQL 세팅 (config.py에서 사용)
    MYSQL_SERVER=127.0.0.1
    MYSQL_USER=your_db
    MYSQL_PASSWORD=your_username
    MYSQL_DB=your_pw

    # JWT 세팅
    JWT_SECRET_KEY=your_jwt_secret_key
    JWT_ALGORITHM=HS256
    JWT_ACCESS_TOKEN_EXPIRE_MINUTES=43200 

    # 서버 설정
    SERVER_HOST=0.0.0.0
    SERVER_PORT=8000
    ENVIRONMENT=production

    # 로깅 설정
    LOG_LEVEL=INFO
    SQL_ECHO=false

    # ML 라벨링 CSV 저장 디렉터리 (없으면 <repo>/data/ml_inbox)
    # POST /api/ml/labeled-csv 로 수신한 라벨링 CSV(원시 바이트, BOM 보존)가 여기에 쌓인다.
    # ml/phishing-classifier 학습 파이프라인의 import_csv.py 가 data/inbox/*.csv 를 glob 하므로,
    # 운영 시 이 값을 그 inbox 로 지정하거나 해당 디렉터리로 rsync 한다.
    ML_INBOX_DIR=/srv/ml/phishing-classifier/data/inbox

Ollama 및 Gemma 3:4B 설치 가이드

1. Ollama 설치

Windows:

# 1. Ollama 공식 사이트에서 Windows 설치 파일 다운로드
# https://ollama.ai/download/windows

# 2. 다운로드한 .exe 파일 실행하여 설치

# 3. 설치 완료 후 명령 프롬프트/PowerShell에서 확인
ollama --version

macOS:

# 1. Homebrew를 사용한 설치
brew install ollama

# 2. 또는 공식 사이트에서 .dmg 파일 다운로드
# https://ollama.ai/download/mac

2. Gemma3 4B 모델 설치

# Ollama 서비스 시작
ollama serve

# 새 터미널에서 Gemma 3 4B 모델 다운로드 및 설치
ollama pull gemma3:4b

# 설치 확인
ollama list

# 모델에 System prompt 통합
ollama create fraud-detector -f ./Modelfile

실행법

python -m app

Android 모델 배포와 자동 학습

서버 PC에서 pull 후 최초 설치·실행 절차는 모델 배포 가이드를 참고하세요. 모델 다운로드 API는 기존 FastAPI에 연결되며, 초기 모델은 별도 GitHub 릴리스에서 설치합니다. 사용자 감지 기록·학습 데이터는 공개 저장소에 올리지 않습니다.

About

[2025 kakao X groom 시즌톤] 89팀 [ 위허메요!! ] - BE

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages