냉장고 사진을 업로드하면 AI가 식재료를 인식하고, 인식된 재료를 바탕으로 레시피를 추천해주는 Flask 웹 애플리케이션입니다. OpenRouter API를 통해 이미지 인식 모델과 텍스트 생성 모델을 호출합니다.
- 냉장고 이미지 업로드 및 식재료 자동 인식
- 인식된 재료 목록 수정
- 요리 종류, 난이도, 인분 수, 추가 요청사항을 반영한 AI 레시피 생성
- 이메일/비밀번호 기반 회원가입 및 로그인
- 사용자 프로필 관리: 닉네임, 알레르기/기피 재료, 선호 요리, 기본 인분 수
- 생성된 레시피 저장, 조회, 삭제, 검색
- Python
- Flask
- Flask-SQLAlchemy
- Flask-Login
- Flask-Bcrypt
- Flask-WTF
- OpenRouter API
- SQLite 기본 설정
.
├── app.py # Flask 앱과 라우트
├── models.py # User, SavedRecipe 모델
├── config.py # 환경 변수 로딩
├── openrouter_client.py # OpenRouter API 클라이언트
├── requirements.txt
├── static/ # CSS/JS 정적 파일
├── templates/ # Jinja2 템플릿
└── PRD_step*.md # 기능 단계별 PRD
git clone https://github.com/perust/Fridge-Recipe-App.git
cd Fridge-Recipe-App
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt프로젝트 루트에 .env 파일을 만들고 필요한 값을 설정합니다.
OPENROUTER_API_KEY=your_openrouter_api_key
SECRET_KEY=your_flask_secret_key
# 선택: DATABASE_URI=sqlite:///app.dbSECRET_KEY는 다음 명령으로 생성할 수 있습니다.
python -c "import secrets; print(secrets.token_hex(32))"앱 실행:
python app.py브라우저에서 로컬 서버 주소로 접속해 냉장고 사진을 업로드합니다.
- 이미지 재료 인식:
google/gemma-3-27b-it:free - 레시피 생성:
openai/gpt-oss-120b:free
무료 모델을 사용할 경우 OpenRouter 설정에서 관련 권한과 모델 사용 가능 여부를 확인해야 합니다.
PRD_step1.md: 냉장고 이미지 재료 인식PRD_step2.md: AI 레시피 생성PRD_step3.md: 사용자 프로필 및 레시피 저장