Skip to content

Conversation

@brothergiven
Copy link
Contributor

refact: 프로젝트 구조 수정

📝 개요

전반적인 프로젝트 구조를 수정했습니다.
특히, 프로젝트의 주된 기능을 크게 5 가지 : Captioning, Classifying, Masking, Myomyo, Lulu 로 정리하였습니다.

  • Captioning: 해당 이미지를 묘사하는 적절한 문장을 반환합니다.
  • Classifying: QuickDraw 데이터셋에 기반해 해당 이미지를 분류합니다.
  • Masking: 이미지 파일에서 텍스트를 인식해 지우고, S3에 업로드합니다.
  • MyoMyo: 묘묘를 속여라 게임 진행에 필요한 기능들(GPT API)
  • Lulu: 루루의 미대입시 게임 진행에 필요한 기능들(GPT API)

⚙️ 구현 내용

수정된 프로젝트 구조:


├── src/
│   ├── __init__.py
│   ├── main.py                # entry point (FastAPI 객체 생성)
│   ├── config.py
│   ├── api/                   # 라우팅 구성
│   │   ├── __init__.py
│   │   ├── captioning.py  
│   │   ├── classifying.py  
│   │   ├── lulu.py  
│   │   ├── masking.py  
│   │   └── myomyo.py 
│   ├── core/              # 기능 별 핵심 로직
│   │   ├── __init__.py
│   │   ├── caption.py        # BLIP 기반 이미지 텍스트 추출 포함
│   │   ├── classify.py         # QuickDraw 기반 분류 포함
│   │   ├── lulu.py         # GPT API 호출 포함
│   │   ├── mask.py       # EasyOCR로 이미지 추출 포함
│   │   └── myomyo.py       # GPT API 호출 포함


📎 기타

기존 Spring 서버에 (GotchaAI/was#62) 작성되어 있던 S3 이미지 업로드 코드를 AI 서버로 옮겼습니다.

기존의 경우 원본 이미지를 Spring에서 S3로 업로드 -> 매 로직(분류, 캡션) 시마다 S3에 저장된 원본 이미지를 불러와 텍스트 마스킹(EasyOCR) 으로 전처리를 해주는 것 보다 마스킹 된 파일 자체를 AI 서버에서 바로 S3에 올려주는 것이 훨씬 효율적일 것이라 판단했습니다.


🧪 테스트 결과


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants