| # ๐ ืืืจืื ืืคืืจื: ืคืจืืกื ื-Hugging Face Spaces | |
| ืืืจืื ืื ืืืืื ืืืชื ืฆืขื ืืืจ ืฆืขื ืืืงืืช ืืคืจืืืงื ื-Hugging Face Spaces. | |
| --- | |
| ## ๐ ืชืืื ืขื ืืื ืื | |
| 1. [ืืจืืฉืืช ืืงืืืืืช](#ืืจืืฉืืช-ืืงืืืืืช) | |
| 2. [ืฉืื 1: ืืฆืืจืช Space ืืืฉ](#ืฉืื-1-ืืฆืืจืช-space-ืืืฉ) | |
| 3. [ืฉืื 2: ืืื ืช ืืคืจืืืงื](#ืฉืื-2-ืืื ืช-ืืคืจืืืงื) | |
| 4. [ืฉืื 3: ืืขืืืช ืืงืื](#ืฉืื-3-ืืขืืืช-ืืงืื) | |
| 5. [ืฉืื 4: ืืืืจืช API Keys](#ืฉืื-4-ืืืืจืช-api-keys) | |
| 6. [ืฉืื 5: ืืขืืืช ืงืืืฅ ืื ืชืื ืื](#ืฉืื-5-ืืขืืืช-ืงืืืฅ-ืื ืชืื ืื) | |
| 7. [ืฉืื 6: ืืืืงื ืืคืชืจืื ืืขืืืช](#ืฉืื-6-ืืืืงื-ืืคืชืจืื-ืืขืืืช) | |
| 8. [ืฉืื 7: ืขืืืื ืื ืขืชืืืืื](#ืฉืื-7-ืขืืืื ืื-ืขืชืืืืื) | |
| --- | |
| ## ืืจืืฉืืช ืืงืืืืืช | |
| ืืคื ื ืฉื ืชืืื, ืืื ืฉืืฉ ืื: | |
| - โ **ืืฉืืื ื-Hugging Face** - [ืืืจืฉื ืืื](https://huggingface.co/join) | |
| - โ **API Key ื-Google Gemini** - [ืงืื ืืื](https://makersuite.google.com/app/apikey) | |
| - ืื **API Key ื-OpenAI** - [ืงืื ืืื](https://platform.openai.com/api-keys) | |
| - โ **ืงืืืฅ ืื ืชืื ืื** - `0_preprocessing/feedback_transformed_2.csv` | |
| - โ **Git ืืืชืงื** ืืืืฉื ืฉืื | |
| --- | |
| ## ืฉืื 1: ืืฆืืจืช Space ืืืฉ | |
| ### 1.1 ืื ืืกื ื-Hugging Face Spaces | |
| 1. ืืืื ืก ื-[Hugging Face Spaces](https://huggingface.co/spaces) | |
| 2. ืืืฅ ืขื ืืืคืชืืจ **"Create new Space"** (ืื **"New Space"**) | |
| ### 1.2 ืืืืจืช ื-Space | |
| ืืื ืืช ืืคืจืืื ืืืืื: | |
| - **Space name**: `feedback-analysis-agent` (ืื ืฉื ืืืจ ืืืืืจืชื) | |
| - โ ๏ธ **ืืฉืื**: ืืฉื ืืืื ืืืืืช ืืื ืืืืช, ืืื ืจืืืืื, ืขื ืืงืคืื ืืืื | |
| - **SDK**: ืืืจ **"Docker"** | |
| - ืื ื ืืจืฉ ืื ืื ืื ื ืืฉืชืืฉืื ื-FastAPI | |
| - **Visibility**: ืืืจ **Public** (ืฆืืืืจื) ืื **Private** (ืคืจืื) | |
| - ืื ืืฉ ืื ื ืชืื ืื ืจืืืฉืื, ืืืจ **Private** | |
| ### 1.3 ืืฆืืจืช ื-Space | |
| ืืืฅ ืขื **"Create Space"** | |
| ๐ **ืืื ืืื!** ืืฆืจืช Space ืืืฉ. ืขืืฉืื ืชืืขืืจ ืืืฃ ื-Space ืฉืื. | |
| --- | |
| ## ืฉืื 2: ืืื ืช ืืคืจืืืงื | |
| ### 2.1 ืืืืงืช ืืงืืฆืื ืื ืืจืฉืื | |
| ืืื ืฉืืฉ ืื ืืช ืืงืืฆืื ืืืืื ืืคืจืืืงื: | |
| ``` | |
| ๐ Feedback_Analysis_RAG_Agent_runpod/ | |
| โโโ ๐ app.py โ ื ืงืืืช ืื ืืกื ื-HF Spaces (ืืืฉ!) | |
| โโโ ๐ Dockerfile โ ืงืืืฅ Docker | |
| โโโ ๐ requirements.txt โ ืชืืืืืช Python | |
| โโโ ๐ README.md โ ืชืืขืื ืขื metadata | |
| โโโ ๐ 2_backend_llm/ โ ืงืื ื-backend | |
| โ โโโ ๐ app/ | |
| โ โ โโโ api.py | |
| โ โ โโโ config.py | |
| โ โ โโโ data_loader.py | |
| โ โ โโโ sql_service.py | |
| โ โโโ app.py | |
| โโโ ๐ 1_frontend/ โ ืงืื ื-frontend | |
| โ โโโ index.html | |
| โ โโโ app.js | |
| โโโ ๐ 0_preprocessing/ | |
| โโโ feedback_transformed_2.csv โ ืงืืืฅ ืื ืชืื ืื | |
| ``` | |
| ### 2.2 ืืืืงืช Git | |
| ืืื ืฉืืคืจืืืงื ืฉืื ืืื Git repository: | |
| ```bash | |
| cd /path/to/Feedback_Analysis_RAG_Agent_runpod | |
| git status | |
| ``` | |
| ืื ืื ืื Git repository, ืืคืขื: | |
| ```bash | |
| git init | |
| git add . | |
| git commit -m "Initial commit for HF Spaces deployment" | |
| ``` | |
| --- | |
| ## ืฉืื 3: ืืขืืืช ืืงืื | |
| ืืฉ ืื ืฉืชื ืืคืฉืจืืืืช ืืืขืืืช ืืช ืืงืื: | |
| ### ืืคืฉืจืืช ื': ืืจื Git (ืืืืืฅ) โญ | |
| ืื ืืืจื ืืืืืืฆืช ืื ืืื ืืืคืฉืจืช ืขืืืื ืื ืงืืื ืืขืชืื. | |
| #### 3.1 ืงืืืช ื-URL ืฉื ื-Space | |
| 1. ืคืชื ืืช ื-Space ืฉืื ื-Hugging Face | |
| 2. ืืืฅ ืขื ืืืคืชืืจ **"Files and versions"** (ืื **"Files"**) | |
| 3. ืชืืฆื ืืช ื-URL ืฉื ื-Git repository ืืืืง ืืขืืืื | |
| - ืื ืืืจืื ืื: `https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME` | |
| #### 3.2 ืืืกืคืช Remote | |
| ืคืชื ืืจืืื ื ืืชืืงืืืช ืืคืจืืืงื ืืืคืขื: | |
| ```bash | |
| # ืืืืฃ YOUR_USERNAME ื-YOUR_SPACE_NAME ืืฉื ืืืืืชื ืฉืื | |
| git remote add huggingface https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME | |
| ``` | |
| **ืืืืื:** | |
| ```bash | |
| git remote add huggingface https://huggingface.co/spaces/galbendavids/feedback-analysis-agent | |
| ``` | |
| #### 3.3 ืืืืคืช ืืงืื | |
| ```bash | |
| # ืืื ืฉืืชื ืขื branch main | |
| git checkout main | |
| # ืืืืฃ ืืช ืืงืื ื-Hugging Face | |
| git push huggingface main | |
| ``` | |
| **ืืขืจื**: ืืคืขื ืืจืืฉืื ื, Hugging Face ืืืงืฉ ืืื ืฉื ืืฉืชืืฉ ืืกืืกืื: | |
| - **Username**: ืฉื ืืืฉืชืืฉ ืฉืื ื-Hugging Face | |
| - **Password**: Token ืืืฉื (ืื ืืกืืกืื!) | |
| - ืงืื Token ื-[ืืื](https://huggingface.co/settings/tokens) | |
| - ืืืจ **"Write"** permissions | |
| ### ืืคืฉืจืืช ื': ืืจื ื-Web UI | |
| ืื ืืชื ืืขืืืฃ ืื ืืืฉืชืืฉ ื-Git: | |
| 1. ืคืชื ืืช ื-Space ื-Hugging Face | |
| 2. ืืืฅ ืขื **"Files and versions"** โ **"Add file"** โ **"Upload files"** | |
| 3. ืืขืื ืืช ืืงืืฆืื ืืืืื (ืืจืืจ ืืฉืืจืจ): | |
| - `app.py` | |
| - `Dockerfile` | |
| - `requirements.txt` | |
| - `README.md` | |
| - ืื ืืชืืงืืื `2_backend_llm/` (ืขื ืื ืืชืืื) | |
| - ืื ืืชืืงืืื `1_frontend/` (ืขื ืื ืืชืืื) | |
| โ ๏ธ **ืืฉืื**: ืืขืื ืืช ืื ืืงืืฆืื ืืืชืืงืืืช, ืืืจืช ืืืคืืืงืฆืื ืื ืชืขืืื! | |
| --- | |
| ## ืฉืื 4: ืืืืจืช API Keys | |
| **โ ๏ธ ืงืจืืื**: ืืื API Key, ืืืคืืืงืฆืื ืื ืชืขืืื! | |
| ### 4.1 ืืฆืืจืช Token ื-Hugging Face | |
| 1. ืื ื-[Hugging Face Settings โ Tokens](https://huggingface.co/settings/tokens) | |
| 2. ืืืฅ ืขื **"New token"** | |
| 3. ืชื ืฉื ื-Token (ืืืฉื: "HF Spaces API Key") | |
| 4. ืืืจ **"Read"** permissions (ืื ืืกืคืืง) | |
| 5. ืืืฅ ืขื **"Generate token"** | |
| 6. **ืืขืชืง ืืช ื-Token** - ืื ืชืืื ืืจืืืช ืืืชื ืฉืื! | |
| ### 4.2 ืืืกืคืช API Keys ื-Secrets | |
| 1. ืคืชื ืืช ื-Space ืฉืื ื-Hugging Face | |
| 2. ืื ื-**"Settings"** (ืืชืคืจืื ืืขืืืื) | |
| 3. ืืืฅ ืขื **"Repository secrets"** (ืืชืคืจืื ืืฆื) | |
| 4. ืืืฅ ืขื **"New secret"** | |
| #### ืืืกืฃ ืืช ื-Secrets ืืืืื: | |
| **Secret 1: GEMINI_API_KEY** | |
| - **Name**: `GEMINI_API_KEY` | |
| - **Value**: ื-API Key ืฉืื ื-Google Gemini | |
| - ืืืฅ ืขื **"Add secret"** | |
| **Secret 2: OPENAI_API_KEY** (ืืืคืฆืืื ืื - ืจืง ืื ืืชื ืืฉืชืืฉ ื-OpenAI) | |
| - **Name**: `OPENAI_API_KEY` | |
| - **Value**: ื-API Key ืฉืื ื-OpenAI | |
| - ืืืฅ ืขื **"Add secret"** | |
| **โ ๏ธ ืืฉืื**: ืืคืืืช ืืื ืื-API Keys ืืืื ืืืืืช ืืืืืจ! | |
| ### 4.3 ืืื ืืงืื API Keys? | |
| **Google Gemini:** | |
| 1. ืื ื-[Google AI Studio](https://makersuite.google.com/app/apikey) | |
| 2. ืืืฅ ืขื **"Get API Key"** | |
| 3. ืืืจ ืื ืฆืืจ ืคืจืืืงื | |
| 4. ืืขืชืง ืืช ื-API Key | |
| **OpenAI:** | |
| 1. ืื ื-[OpenAI Platform](https://platform.openai.com/api-keys) | |
| 2. ืืืฅ ืขื **"Create new secret key"** | |
| 3. ืชื ืฉื ื-Key | |
| 4. ืืขืชืง ืืช ื-API Key | |
| --- | |
| ## ืฉืื 5: ืืขืืืช ืงืืืฅ ืื ืชืื ืื | |
| ### 5.1 ืืืืงืช ืงืืืฅ ืื ืชืื ืื | |
| ืืื ืฉืงืืืฅ ืื ืชืื ืื ืงืืื: | |
| - `0_preprocessing/feedback_transformed_2.csv` | |
| ### 5.2 ืืขืืืช ืืงืืืฅ | |
| ืืฉ ืื ืฉืชื ืืคืฉืจืืืืช: | |
| #### ืืคืฉืจืืช ื': ืืจื Git (ืื ืืงืืืฅ ืงืื ื-10MB) | |
| ```bash | |
| # ืืื ืฉืืงืืืฅ ืงืืื | |
| ls 0_preprocessing/feedback_transformed_2.csv | |
| # ืืืกืฃ ื-Git (ืื ืืื ืื ื-.gitignore) | |
| git add 0_preprocessing/feedback_transformed_2.csv | |
| git commit -m "Add feedback data file" | |
| git push huggingface main | |
| ``` | |
| #### ืืคืฉืจืืช ื': ืืจื ื-Web UI | |
| 1. ืคืชื ืืช ื-Space ื-Hugging Face | |
| 2. ืืืฅ ืขื **"Files and versions"** โ **"Add file"** โ **"Upload files"** | |
| 3. ืฆืืจ ืชืืงืืื `0_preprocessing/` (ืื ืืื ืื ืงืืืืช) | |
| 4. ืืขืื ืืช `feedback_transformed_2.csv` ืืชืืงืืื `0_preprocessing/` | |
| **โ ๏ธ ืืขืจื**: ืื ืืงืืืฅ ืืืื ื-10MB, ืืืชืื ืฉืชืฆืืจื ืืืฉืชืืฉ ื-Git LFS: | |
| ```bash | |
| git lfs install | |
| git lfs track "*.csv" | |
| git add .gitattributes | |
| git add 0_preprocessing/feedback_transformed_2.csv | |
| git commit -m "Add feedback data with LFS" | |
| git push huggingface main | |
| ``` | |
| --- | |
| ## ืฉืื 6: ืืืืงื ืืคืชืจืื ืืขืืืช | |
| ### 6.1 ืืืืงืช ืืื ืืื | |
| 1. ืคืชื ืืช ื-Space ืฉืื ื-Hugging Face | |
| 2. ืืืฅ ืขื ืืืื **"Logs"** (ืืชืคืจืื ืืขืืืื) | |
| 3. ืชืฆืคื ืืืืืื - Hugging Face ืืื ื ืืช ื-Space ืืืืืืืืช | |
| **ืื ืืืคืฉ:** | |
| - โ `Building...` - ืืื ืืื ืืชืืืื | |
| - โ `Successfully built` - ืืื ืืื ืืฆืืืื | |
| - โ `SQL service initialized successfully` - ืืฉืืจืืช ืขืื ืืืฆืืื | |
| - โ ืฉืืืืืช - ืจืื [ืคืชืจืื ืืขืืืช](#ืคืชืจืื-ืืขืืืช) ืืืื | |
| ### 6.2 ืืืืงืช ืืืคืืืงืฆืื | |
| ืืืืจ ืฉืืื ืืื ืืกืชืืืื: | |
| 1. ืืืฅ ืขื ืืืื **"App"** (ืืชืคืจืื ืืขืืืื) | |
| 2. ืืืคืืืงืฆืื ืืืืจื ืืืืคืชื | |
| 3. ื ืกื ืืฉืืื ืฉืืื, ืืืฉื: "ืืื ืืฉืชืืฉืื ืืชืื ืชืืื?" | |
| ### 6.3 ืคืชืจืื ืืขืืืช | |
| #### โ ืฉืืืื: "No feedback data available" | |
| **ืคืชืจืื:** | |
| 1. ืืื ืฉ-`0_preprocessing/feedback_transformed_2.csv` ืงืืื ื-Space | |
| 2. ืืืืง ืืช ื-Logs - ืฉื ืชืจืื ืืช ืื ืชืื ืืืืืืง ืฉืืืคืืืงืฆืื ืืืคืฉืช | |
| 3. ืืื ืฉืืงืืืฅ ื ืืฆื ืื ืชืื ืื ืืื: `0_preprocessing/feedback_transformed_2.csv` | |
| #### โ ืฉืืืื: "API Key not found" | |
| **ืคืชืจืื:** | |
| 1. ืื ื-**"Settings"** โ **"Repository secrets"** | |
| 2. ืืื ืฉ-`GEMINI_API_KEY` ืื `OPENAI_API_KEY` ืืืืืจืื | |
| 3. ืืื ืฉืืฉืืืช ืืืืืงืื (case-sensitive!) | |
| 4. ื ืกื ืืืืืง ืืืืืกืืฃ ืืืืฉ ืืช ื-Secret | |
| #### โ ืฉืืืื: "Port 7860 already in use" | |
| **ืคืชืจืื:** | |
| - ืื ืื ืืืืจ ืืงืจืืช ื-HF Spaces | |
| - ืื ืื ืงืืจื, ืืืืง ืืช ื-Logs ืืคืจืืื ื ืืกืคืื | |
| #### โ ืฉืืืื: "Module not found" | |
| **ืคืชืจืื:** | |
| 1. ืืื ืฉ-`requirements.txt` ืืขืืืื | |
| 2. ืืืืง ืืช ื-Logs - ืฉื ืชืจืื ืืืื ืืืืื ืืกืจ | |
| 3. ืืืกืฃ ืืช ืืืืืื ืืืกืจ ื-`requirements.txt` ืืืืืฃ ืืืืฉ | |
| #### โ Space ืื ืขืืื / ืงืืจืก | |
| **ืคืชืจืื:** | |
| 1. ืืืืง ืืช ื-**Logs** - ืฉื ืชืจืื ืืช ืืฉืืืื ืืืืืืงืช | |
| 2. ืืื ืฉ-`app.py` ืงืืื ืืฉืืจืฉ ืืคืจืืืงื | |
| 3. ืืื ืฉ-`Dockerfile` ืงืืื | |
| 4. ืืื ืฉ-`requirements.txt` ืืขืืืื | |
| --- | |
| ## ืฉืื 7: ืขืืืื ืื ืขืชืืืืื | |
| ### 7.1 ืขืืืื ืืงืื | |
| ืืฉืืชื ืจืืฆื ืืขืืื ืืช ื-Space: | |
| ```bash | |
| # ืืฆืข ืฉืื ืืืื ืืงืื ืืืงืืื | |
| # ... | |
| # ืืืกืฃ ืืช ืืฉืื ืืืื | |
| git add . | |
| # Commit | |
| git commit -m "Update: ืชืืืืจ ืืฉืื ืืืื" | |
| # ืืืืฃ ื-Hugging Face | |
| git push huggingface main | |
| ``` | |
| Hugging Face ืืื ื ืืืืฉ ืืช ื-Space ืืืืืืืืช! | |
| ### 7.2 ืขืืืื API Keys | |
| ืื ืืชื ืฆืจืื ืืขืืื API Key: | |
| 1. ืื ื-**"Settings"** โ **"Repository secrets"** | |
| 2. ืืืฅ ืขื ื-Secret ืฉืืจืฆืื ื ืืขืืื | |
| 3. ืืืฅ ืขื **"Edit"** ืื **"Delete"** ืืืฆืืจ ืืืฉ | |
| --- | |
| ## โ ืกืืืื - ืจืฉืืืช ืืืืงื | |
| ืืคื ื ืฉืืชื ืืกืืื, ืืื ืฉ: | |
| - [ ] Space ื ืืฆืจ ื-Hugging Face | |
| - [ ] ืืงืื ื ืืืฃ/ืืืขืื ื-Space | |
| - [ ] `app.py` ืงืืื ืืฉืืจืฉ ืืคืจืืืงื | |
| - [ ] `Dockerfile` ืงืืื | |
| - [ ] `requirements.txt` ืืขืืืื | |
| - [ ] API Key ืืืืืจ ื-Repository secrets | |
| - [ ] ืงืืืฅ ืื ืชืื ืื `0_preprocessing/feedback_transformed_2.csv` ืงืืื | |
| - [ ] ืืื ืืื ืืฆืืืื (ืืืืง ื-Logs) | |
| - [ ] ืืืคืืืงืฆืื ืขืืืืช (ืืืืง ื-App) | |
| --- | |
| ## ๐ ืืื ืืื! | |
| ืืคืจืืืงื ืฉืื ืืืืจ ืืขืืื ืขืืฉืื ื-Hugging Face Spaces! | |
| **ืงืืฉืืจ ื-Space ืฉืื:** | |
| `https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME` | |
| --- | |
| ## ๐ ืืฉืืืื ื ืืกืคืื | |
| - [Hugging Face Spaces Documentation](https://huggingface.co/docs/hub/spaces) | |
| - [Docker Spaces Guide](https://huggingface.co/docs/hub/spaces-sdks-docker) | |
| - [Environment Variables in Spaces](https://huggingface.co/docs/hub/spaces-sdks-docker#environment-variables) | |
| - [Git LFS Documentation](https://git-lfs.github.com/) | |
| --- | |
| ## ๐ฌ ืชืืืื | |
| ืื ื ืชืงืืช ืืืขืืืช: | |
| 1. ืืืืง ืืช ื-Logs ื-Hugging Face Spaces | |
| 2. ืืืืง ืืช [ืคืชืจืื ืืขืืืช](#ืคืชืจืื-ืืขืืืช) ืืืขืื | |
| 3. ืคืชื Issue ื-GitHub repository | |
| **ืืืฆืืื! ๐** | |