Skip to content

YEOUL0520/antiphishing_pyserver

 
 

Repository files navigation

pyserver

Python FastAPI 기반 피싱 탐지 서버

개요

보이스피싱, 문서 위조, URL 피싱, SMS 피싱 등을 탐지하는 AI 기반 서버

디렉토리 구조

 pyserver/
  ├── app/
  │   ├── __init__.py
  │   ├── main.py                      # FastAPI 앱 초기화, 라우터 등록
  │   ├── config.py                    # 환경변수 관리 (JWT, DB, API 키)
  │   │
  │   ├── core/                        # 핵심 기능 ✅
  │   │   ├── __init__.py
  │   │   ├── database.py              # SQLAlchemy DB 연결 및 세션 관리
  │   │   ├── security.py              # JWT 토큰 생성/검증, 비밀번호 해싱
  │   │   └── dependencies.py          # FastAPI 의존성 함수 (인증)
  │   │
  │   ├── models/                      # ORM 모델 (DB 테이블) ✅
  │   │   ├── __init__.py
  │   │   └── user.py                  # User 테이블 (username, email, password 등)
  │   │
  │   ├── schemas/                     # Pydantic 스키마 (요청/응답) ✅
  │   │   ├── __init__.py
  │   │   ├── auth.py                  # 로그인/회원가입 요청/응답
  │   │   ├── user.py                  # 사용자 정보 요청/응답
  │   │   └── voice_phishing.py        # 보이스피싱 분석 요청/응답
  │   │
  │   ├── api/                         # API 라우터 ✅
  │   │   ├── __init__.py
  │   │   ├── auth.py                  # 인증 API (회원가입, 로그인, 토큰 갱신)
  │   │   ├── user.py                  # 사용자 관리 API (탈퇴, 정보수정, 찾기)
  │   │   ├── transcribe.py            # 음성 변환 API (STT + 실시간 탐지)
  │   │   ├── voice_phishing.py        # 보이스피싱 탐지 API
  │   │   ├── document.py              # 문서 위조 탐지 API
  │   │   └── upload.py                # 파일 업로드 API
  │   │
  │   ├── services/                    # 비즈니스 로직
  │   │   ├── __init__.py
  │   │   └── voice_phishing_service.py  # 보이스피싱 탐지 서비스
  │   │
  │   ├── ml/                          # AI 모델
  │   │   ├── __init__.py
  │   │   ├── predictors/       # 예측 관련 파일
  │   │   │   ├── keyword_predictor.py # 키워드 위험도 확인 함수
  │   │   │   ├── layout_predictor.py  # 레이아웃 위험도 확인 함수
  │   │   │   ├── ocr_predictor.py     # ocr 결과 확인 함수
  │   │   │   └── stamp_predictor.py   # 직인 결과 확인 함수
  │   │   └── kobert_classifier/       # KoBERT 보이스피싱 분류기
  │   │       ├── BERTClassifier.py    # BERT 모델 구조
  │   │       ├── BERTDataset.py       # 데이터셋 클래스
  │   │       ├── predict.py           # 추론 함수
  │   │       └── train.py             # 학습 함수
  │   │
  │   └── utils/                       # 공통 유틸리티
  │       ├── __init__.py
  │       └── ...
  │
  ├── data/                            # 학습 데이터 및 모델 파일
  │   ├── csv/                         # 학습 데이터셋
  │   │   ├── 500_가중치.csv           # 위험 단어 가중치
  │   │   ├── type_token_가중치.csv    # 범죄 유형별 단어 가중치
  │   │   └── KoBERT_dataset_v2.5.csv  # KoBERT 학습 데이터
  │   └── models/
  │       └── kobert/
  │           └── train.pt             # 학습된 KoBERT 모델
  │
  ├── grpc_client/                     # gRPC 클라이언트 (CLOVA STT)
  │   └── ...
  │
  ├── legacy/                          # 기존 코드 (마이그레이션 전)
  │   └── ...
  │
  ├── uploads/                         # 업로드 파일 저장소
  ├── .env                             # 환경변수 파일 (git ignore)
  ├── .gitignore
  ├── requirements.txt                 # Python 의존성
  ├── README.md
  └── index.html                       # 프론트엔드 페이지

데이터베이스

User 테이블

- id: 기본키
- username: 사용자 아이디 (unique)
- email: 이메일 (unique)
- hashed_password: 해시된 비밀번호
- full_name: 이름
- phone: 전화번호
- is_active: 활성화 여부
- created_at: 생성일시
- updated_at: 수정일시

보안

  • 비밀번호: bcrypt 해싱
  • 인증: JWT (HS256)
  • 액세스 토큰: 30분 유효
  • 리프레시 토큰: 7일 유효

About

소공 보이스피싱 탐지 어플리케이션 python server 구축을 위한 레포

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages