Spaces:
Sleeping
Sleeping
κ°λ―Όκ· commited on
Commit Β·
9f03b39
1
Parent(s): aa1a383
Refactor: Combine Backend and Frontend into Monorepo structure
Browse files- Dockerfile +8 -15
- README.md +17 -74
- .dockerignore β backend/.dockerignore +0 -0
- .gitattributes β backend/.gitattributes +0 -0
- {.github β backend/.github}/workflows/fly-deploy.yml +0 -0
- .gitignore β backend/.gitignore +0 -0
- backend/Dockerfile +22 -0
- backend/README.md +96 -0
- {data β backend/data}/final_recipe_data.csv +0 -0
- {data β backend/data}/stats.pkl +0 -0
- {docs β backend/docs}/logic_explanation.md +0 -0
- fly.toml β backend/fly.toml +0 -0
- {models β backend/models}/d2v.model +0 -0
- {models β backend/models}/d2v.model.dv.vectors.npy +0 -0
- {models β backend/models}/w2v.model +0 -0
- requirements.txt β backend/requirements.txt +0 -0
- {src β backend/src}/api.py +0 -0
- {src β backend/src}/app.py +0 -0
- {src β backend/src}/logic.py +0 -0
- web +1 -0
Dockerfile
CHANGED
|
@@ -1,22 +1,15 @@
|
|
| 1 |
FROM python:3.9-slim
|
| 2 |
|
| 3 |
-
|
| 4 |
-
RUN useradd -m -u 1000 user
|
| 5 |
-
USER user
|
| 6 |
-
ENV PATH="/home/user/.local/bin:$PATH"
|
| 7 |
|
| 8 |
-
|
|
|
|
| 9 |
|
| 10 |
-
#
|
| 11 |
-
|
| 12 |
-
RUN pip install --no-cache-dir --upgrade pip && \
|
| 13 |
-
pip install --no-cache-dir -r requirements.txt
|
| 14 |
|
| 15 |
-
#
|
| 16 |
-
|
| 17 |
|
| 18 |
-
#
|
| 19 |
-
EXPOSE 7860
|
| 20 |
-
|
| 21 |
-
# μ€ν λͺ
λ Ήμ΄
|
| 22 |
CMD ["uvicorn", "src.api:app", "--host", "0.0.0.0", "--port", "7860"]
|
|
|
|
| 1 |
FROM python:3.9-slim
|
| 2 |
|
| 3 |
+
WORKDIR /code
|
|
|
|
|
|
|
|
|
|
| 4 |
|
| 5 |
+
# Copy backend files
|
| 6 |
+
COPY ./backend /code/backend
|
| 7 |
|
| 8 |
+
# Change working directory to backend
|
| 9 |
+
WORKDIR /code/backend
|
|
|
|
|
|
|
| 10 |
|
| 11 |
+
# Install dependencies
|
| 12 |
+
RUN pip install --no-cache-dir -r requirements.txt
|
| 13 |
|
| 14 |
+
# Run the application
|
|
|
|
|
|
|
|
|
|
| 15 |
CMD ["uvicorn", "src.api:app", "--host", "0.0.0.0", "--port", "7860"]
|
README.md
CHANGED
|
@@ -5,92 +5,35 @@ colorFrom: yellow
|
|
| 5 |
colorTo: red
|
| 6 |
sdk: docker
|
| 7 |
pinned: false
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
# π³ K-Recipe2Vec
|
| 11 |
|
| 12 |
-
|
| 13 |
|
| 14 |
-
|
|
|
|
| 15 |
|
| 16 |
-
|
| 17 |
-
Doc2Vecκ³Ό Word2Vec λͺ¨λΈμ νμ©νμ¬ μμ¬λ£ κ°μ μλ―Έμ μ μ¬λλ₯Ό λΆμν©λλ€.
|
| 18 |
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
π **[Live Demo](https://korea-recipe-ai.streamlit.app/)** - Streamlit Cloud λ°°ν¬
|
| 22 |
-
|
| 23 |
-
## β¨ Features
|
| 24 |
-
|
| 25 |
-
- **π₯¬ μμ¬λ£ λ체 μΆμ²**: μλ μ¬λ£μ λν μ μ¬ μ¬λ£ μΆμ²
|
| 26 |
-
- **π 3D μκ°ν**: PCA κΈ°λ° μ¬λ£ λ²‘ν° κ³΅κ° μκ°ν
|
| 27 |
-
- **π° κ°κ²© μ 보**: μ¬λ£λ³ κ°κ²© μ 보 μ 곡
|
| 28 |
-
- **βοΈ μλν΄λΌμ°λ**: μΆμ² μ¬λ£ μκ°ν
|
| 29 |
-
|
| 30 |
-
## π οΈ Tech Stack
|
| 31 |
-
|
| 32 |
-
| Category | Technologies |
|
| 33 |
-
|----------|-------------|
|
| 34 |
-
| **Frontend** | Streamlit |
|
| 35 |
-
| **ML Models** | Gensim (Doc2Vec, Word2Vec) |
|
| 36 |
-
| **Data Processing** | Pandas, NumPy |
|
| 37 |
-
| **Visualization** | Plotly, Matplotlib, WordCloud |
|
| 38 |
-
| **Database** | Supabase |
|
| 39 |
-
| **Deployment** | Streamlit Cloud |
|
| 40 |
-
|
| 41 |
-
## π Project Structure
|
| 42 |
-
|
| 43 |
-
```
|
| 44 |
-
k-recipe2vec/
|
| 45 |
-
βββ app.py # Main Streamlit application
|
| 46 |
-
βββ logic.py # Core recommendation logic (if exists)
|
| 47 |
-
βββ requirements.txt # Python dependencies
|
| 48 |
-
βββ d2v.model # Doc2Vec trained model
|
| 49 |
-
βββ w2v.model # Word2Vec trained model
|
| 50 |
-
βββ price_rank.csv # Price data
|
| 51 |
-
βββ stats.pkl # Preprocessed statistics
|
| 52 |
-
```
|
| 53 |
|
| 54 |
## π Getting Started
|
| 55 |
|
| 56 |
-
###
|
| 57 |
-
|
| 58 |
-
- Python 3.8+
|
| 59 |
-
- pip
|
| 60 |
-
|
| 61 |
-
### Installation
|
| 62 |
|
| 63 |
```bash
|
| 64 |
-
|
| 65 |
-
git clone https://github.com/nneans/k-recipe2vec.git
|
| 66 |
-
cd k-recipe2vec
|
| 67 |
-
|
| 68 |
-
# Install dependencies
|
| 69 |
pip install -r requirements.txt
|
| 70 |
-
|
| 71 |
-
# Run the app
|
| 72 |
-
streamlit run src/app.py
|
| 73 |
```
|
| 74 |
|
| 75 |
-
##
|
| 76 |
-
|
| 77 |
-
### Doc2Vec Model
|
| 78 |
-
- νκ΅ λ μνΌ λ°μ΄ν° κΈ°λ° νμ΅
|
| 79 |
-
- λ μνΌ λ¨μ λ¬Έμ μλ² λ©
|
| 80 |
-
|
| 81 |
-
### Word2Vec Model
|
| 82 |
-
- μμ¬λ£ κ° μλ―Έμ μ μ¬λ νμ΅
|
| 83 |
-
- λ체 κ°λ₯ν μ¬λ£ μΆμ²μ νμ©
|
| 84 |
-
|
| 85 |
-
## π€ Contributing
|
| 86 |
-
|
| 87 |
-
λ²κ·Έ 리ν¬νΈ, κΈ°λ₯ μ μ, PR νμν©λλ€!
|
| 88 |
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
**Mingyun Kang**
|
| 96 |
-
- GitHub: [@nneans](https://github.com/nneans)
|
|
|
|
| 5 |
colorTo: red
|
| 6 |
sdk: docker
|
| 7 |
pinned: false
|
| 8 |
+
app_port: 7860
|
| 9 |
---
|
| 10 |
|
| 11 |
+
# π³ K-Recipe2Vec (Monorepo)
|
| 12 |
|
| 13 |
+
μ΄ λ¦¬ν¬μ§ν 리λ λ°±μλ APIμ νλ‘ νΈμλ μΉμ¬μ΄νΈλ₯Ό ν¬ν¨νλ λͺ¨λ
Έλ ν¬μ
λλ€.
|
| 14 |
|
| 15 |
+
- **Frontend**: [Github Pages](https://nneans.github.io/k-recipe2vec/)
|
| 16 |
+
- **Backend API**: [Hugging Face Space](https://huggingface.co/spaces/nneans/k-recipe2vec)
|
| 17 |
|
| 18 |
+
## π Structure
|
|
|
|
| 19 |
|
| 20 |
+
- `backend/`: FastAPI κΈ°λ° AI λͺ¨λΈ API
|
| 21 |
+
- `web/`: React κΈ°λ° μΉ νλ‘ νΈμλ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
|
| 23 |
## π Getting Started
|
| 24 |
|
| 25 |
+
### Backend
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
```bash
|
| 28 |
+
cd backend
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
pip install -r requirements.txt
|
| 30 |
+
uvicorn src.api:app --reload
|
|
|
|
|
|
|
| 31 |
```
|
| 32 |
|
| 33 |
+
### Frontend
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
|
| 35 |
+
```bash
|
| 36 |
+
cd web
|
| 37 |
+
npm install
|
| 38 |
+
npm run dev
|
| 39 |
+
```
|
|
|
|
|
|
|
|
|
.dockerignore β backend/.dockerignore
RENAMED
|
File without changes
|
.gitattributes β backend/.gitattributes
RENAMED
|
File without changes
|
{.github β backend/.github}/workflows/fly-deploy.yml
RENAMED
|
File without changes
|
.gitignore β backend/.gitignore
RENAMED
|
File without changes
|
backend/Dockerfile
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.9-slim
|
| 2 |
+
|
| 3 |
+
# 보μ λ° κΆν μ€μ μ μν μ μ μμ± (Hugging Face κΆμ₯ μ¬ν)
|
| 4 |
+
RUN useradd -m -u 1000 user
|
| 5 |
+
USER user
|
| 6 |
+
ENV PATH="/home/user/.local/bin:$PATH"
|
| 7 |
+
|
| 8 |
+
WORKDIR /app
|
| 9 |
+
|
| 10 |
+
# μμ‘΄μ± μ€μΉ
|
| 11 |
+
COPY --chown=user requirements.txt requirements.txt
|
| 12 |
+
RUN pip install --no-cache-dir --upgrade pip && \
|
| 13 |
+
pip install --no-cache-dir -r requirements.txt
|
| 14 |
+
|
| 15 |
+
# μ½λ λ³΅μ¬ (λͺ¨λΈ νμΌ ν¬ν¨)
|
| 16 |
+
COPY --chown=user . .
|
| 17 |
+
|
| 18 |
+
# ν¬νΈ μ€μ (Hugging Faceλ 7860 ν¬νΈλ₯Ό μ¬μ©ν©λλ€)
|
| 19 |
+
EXPOSE 7860
|
| 20 |
+
|
| 21 |
+
# μ€ν λͺ
λ Ήμ΄
|
| 22 |
+
CMD ["uvicorn", "src.api:app", "--host", "0.0.0.0", "--port", "7860"]
|
backend/README.md
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: K-Recipe2Vec API
|
| 3 |
+
emoji: π³
|
| 4 |
+
colorFrom: yellow
|
| 5 |
+
colorTo: red
|
| 6 |
+
sdk: docker
|
| 7 |
+
pinned: false
|
| 8 |
+
---
|
| 9 |
+
|
| 10 |
+
# π³ K-Recipe2Vec
|
| 11 |
+
|
| 12 |
+
AI κΈ°λ° νμ μμ¬λ£ λ체 μΆμ² μλΉμ€
|
| 13 |
+
|
| 14 |
+
## π Overview
|
| 15 |
+
|
| 16 |
+
νκ΅ μ리μμ μμ¬λ£λ₯Ό λ체ν μ μλ μ¬λ£λ₯Ό AIκ° μΆμ²ν΄μ£Όλ μΉ μλΉμ€μ
λλ€.
|
| 17 |
+
Doc2Vecκ³Ό Word2Vec λͺ¨λΈμ νμ©νμ¬ μμ¬λ£ κ°μ μλ―Έμ μ μ¬λλ₯Ό λΆμν©λλ€.
|
| 18 |
+
|
| 19 |
+
## π Demo
|
| 20 |
+
|
| 21 |
+
π **[Live Demo](https://korea-recipe-ai.streamlit.app/)** - Streamlit Cloud λ°°ν¬
|
| 22 |
+
|
| 23 |
+
## β¨ Features
|
| 24 |
+
|
| 25 |
+
- **π₯¬ μμ¬λ£ λ체 μΆμ²**: μλ μ¬λ£μ λν μ μ¬ μ¬λ£ μΆμ²
|
| 26 |
+
- **π 3D μκ°ν**: PCA κΈ°λ° μ¬λ£ λ²‘ν° κ³΅κ° μκ°ν
|
| 27 |
+
- **π° κ°κ²© μ 보**: μ¬λ£λ³ κ°κ²© μ 보 μ 곡
|
| 28 |
+
- **βοΈ μλν΄λΌμ°λ**: μΆμ² μ¬λ£ μκ°ν
|
| 29 |
+
|
| 30 |
+
## π οΈ Tech Stack
|
| 31 |
+
|
| 32 |
+
| Category | Technologies |
|
| 33 |
+
|----------|-------------|
|
| 34 |
+
| **Frontend** | Streamlit |
|
| 35 |
+
| **ML Models** | Gensim (Doc2Vec, Word2Vec) |
|
| 36 |
+
| **Data Processing** | Pandas, NumPy |
|
| 37 |
+
| **Visualization** | Plotly, Matplotlib, WordCloud |
|
| 38 |
+
| **Database** | Supabase |
|
| 39 |
+
| **Deployment** | Streamlit Cloud |
|
| 40 |
+
|
| 41 |
+
## π Project Structure
|
| 42 |
+
|
| 43 |
+
```
|
| 44 |
+
k-recipe2vec/
|
| 45 |
+
βββ app.py # Main Streamlit application
|
| 46 |
+
βββ logic.py # Core recommendation logic (if exists)
|
| 47 |
+
βββ requirements.txt # Python dependencies
|
| 48 |
+
βββ d2v.model # Doc2Vec trained model
|
| 49 |
+
βββ w2v.model # Word2Vec trained model
|
| 50 |
+
βββ price_rank.csv # Price data
|
| 51 |
+
βββ stats.pkl # Preprocessed statistics
|
| 52 |
+
```
|
| 53 |
+
|
| 54 |
+
## π Getting Started
|
| 55 |
+
|
| 56 |
+
### Prerequisites
|
| 57 |
+
|
| 58 |
+
- Python 3.8+
|
| 59 |
+
- pip
|
| 60 |
+
|
| 61 |
+
### Installation
|
| 62 |
+
|
| 63 |
+
```bash
|
| 64 |
+
# Clone the repository
|
| 65 |
+
git clone https://github.com/nneans/k-recipe2vec.git
|
| 66 |
+
cd k-recipe2vec
|
| 67 |
+
|
| 68 |
+
# Install dependencies
|
| 69 |
+
pip install -r requirements.txt
|
| 70 |
+
|
| 71 |
+
# Run the app
|
| 72 |
+
streamlit run src/app.py
|
| 73 |
+
```
|
| 74 |
+
|
| 75 |
+
## π Model Information
|
| 76 |
+
|
| 77 |
+
### Doc2Vec Model
|
| 78 |
+
- νκ΅ λ μνΌ λ°μ΄ν° κΈ°λ° νμ΅
|
| 79 |
+
- λ μνΌ λ¨μ λ¬Έμ μλ² λ©
|
| 80 |
+
|
| 81 |
+
### Word2Vec Model
|
| 82 |
+
- μμ¬λ£ κ° μλ―Έμ μ μ¬λ νμ΅
|
| 83 |
+
- λ체 κ°λ₯ν μ¬λ£ μΆμ²μ νμ©
|
| 84 |
+
|
| 85 |
+
## π€ Contributing
|
| 86 |
+
|
| 87 |
+
λ²κ·Έ 리ν¬νΈ, κΈ°λ₯ μ μ, PR νμν©λλ€!
|
| 88 |
+
|
| 89 |
+
## π License
|
| 90 |
+
|
| 91 |
+
MIT License
|
| 92 |
+
|
| 93 |
+
## π€ Author
|
| 94 |
+
|
| 95 |
+
**Mingyun Kang**
|
| 96 |
+
- GitHub: [@nneans](https://github.com/nneans)
|
{data β backend/data}/final_recipe_data.csv
RENAMED
|
File without changes
|
{data β backend/data}/stats.pkl
RENAMED
|
File without changes
|
{docs β backend/docs}/logic_explanation.md
RENAMED
|
File without changes
|
fly.toml β backend/fly.toml
RENAMED
|
File without changes
|
{models β backend/models}/d2v.model
RENAMED
|
File without changes
|
{models β backend/models}/d2v.model.dv.vectors.npy
RENAMED
|
File without changes
|
{models β backend/models}/w2v.model
RENAMED
|
File without changes
|
requirements.txt β backend/requirements.txt
RENAMED
|
File without changes
|
{src β backend/src}/api.py
RENAMED
|
File without changes
|
{src β backend/src}/app.py
RENAMED
|
File without changes
|
{src β backend/src}/logic.py
RENAMED
|
File without changes
|
web
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
Subproject commit a4271215feae73d4660de0c761bffa3bd3f2f20a
|