Spaces:
Running
Running
Upload 8 files
Browse files- README.md +91 -158
- README.txt +134 -0
- app.py +16 -21
- ไธ้ฎ้จ็ฝฒ.sh +276 -0
- ๅฟซ้ๅผๅง.txt +157 -0
README.md
CHANGED
|
@@ -4,13 +4,14 @@ emoji: ๐
|
|
| 4 |
colorFrom: blue
|
| 5 |
colorTo: purple
|
| 6 |
sdk: docker
|
| 7 |
-
sdk_version: "3.10"
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
|
|
|
| 10 |
---
|
| 11 |
-
# ๐ CareerForge AI - AI-Powered Career Development Platform
|
| 12 |
|
| 13 |
-
|
|
|
|
|
|
|
| 14 |
|
| 15 |
<div align="center">
|
| 16 |
|
|
@@ -18,221 +19,153 @@ pinned: false
|
|
| 18 |

|
| 19 |

|
| 20 |
|
| 21 |
-
[Quick Start](#quick-start) โข [Features](#features) โข [User Guide](./INSTRUCTIONS.md)
|
| 22 |
-
|
| 23 |
</div>
|
| 24 |
|
| 25 |
---
|
| 26 |
|
| 27 |
-
## โจ
|
| 28 |
|
| 29 |
-
|
|
|
|
| 30 |
|
| 31 |
-
###
|
| 32 |
-
|
| 33 |
|
| 34 |
-
###
|
| 35 |
-
|
| 36 |
|
| 37 |
-
###
|
| 38 |
-
|
| 39 |
|
| 40 |
-
###
|
| 41 |
-
|
| 42 |
|
| 43 |
-
###
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
### ๐ฐ 6. Salary Intelligence
|
| 47 |
-
Analyzes market salaries and provides negotiation strategies.
|
| 48 |
|
| 49 |
---
|
| 50 |
|
| 51 |
-
## ๐
|
| 52 |
-
|
| 53 |
-
### Step 1: Get API Key
|
| 54 |
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
3. Go to the "API Keys" page and create a new key
|
| 58 |
-
4. Copy the API Key
|
| 59 |
-
5. Top up your account (ยฅ10-20 recommended)
|
| 60 |
|
| 61 |
-
###
|
|
|
|
| 62 |
|
| 63 |
-
|
|
|
|
| 64 |
|
| 65 |
-
###
|
|
|
|
| 66 |
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
### Step 4: Start Using
|
| 72 |
-
|
| 73 |
-
Select any feature tab, fill in the relevant information, and click the generate button!
|
| 74 |
|
| 75 |
---
|
| 76 |
|
| 77 |
-
##
|
| 78 |
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
โโโ README.md # This file
|
| 84 |
-
```
|
| 85 |
-
|
| 86 |
-
---
|
| 87 |
|
| 88 |
-
|
|
|
|
|
|
|
|
|
|
| 89 |
|
| 90 |
-
|
| 91 |
-
-
|
| 92 |
-
-
|
|
|
|
| 93 |
|
| 94 |
---
|
| 95 |
|
| 96 |
-
##
|
| 97 |
|
| 98 |
-
###
|
| 99 |
-
- Customize resumes for different positions
|
| 100 |
-
- Prepare for interview questions and answers
|
| 101 |
-
- Understand market salary trends
|
| 102 |
|
| 103 |
-
|
| 104 |
-
-
|
| 105 |
-
-
|
| 106 |
-
-
|
| 107 |
|
| 108 |
-
|
| 109 |
-
-
|
| 110 |
-
-
|
| 111 |
-
-
|
| 112 |
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
- โ
API Key is saved only in your browser's local storage
|
| 118 |
-
- โ
Not uploaded to any third-party servers
|
| 119 |
-
- โ
All requests are sent directly to DeepSeek
|
| 120 |
-
- โ
Fully open-source, code is auditable
|
| 121 |
|
| 122 |
---
|
| 123 |
|
| 124 |
-
##
|
| 125 |
|
| 126 |
-
-
|
| 127 |
-
-
|
| 128 |
-
-
|
| 129 |
-
-
|
| 130 |
-
-
|
| 131 |
|
| 132 |
---
|
| 133 |
|
| 134 |
-
##
|
| 135 |
|
| 136 |
-
|
| 137 |
-
-
|
| 138 |
-
-
|
| 139 |
-
-
|
| 140 |
-
-
|
| 141 |
|
| 142 |
---
|
| 143 |
|
| 144 |
-
##
|
| 145 |
-
|
| 146 |
-
### Writing High-Quality Input
|
| 147 |
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
- Include specific technical requirements
|
| 151 |
-
- Explain the company background information
|
| 152 |
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
- Include both soft and hard skills
|
| 156 |
-
- Specify the job level
|
| 157 |
-
|
| 158 |
-
**Learning Path:**
|
| 159 |
-
- List your current skills in detail
|
| 160 |
-
- Specify your skill proficiency
|
| 161 |
-
- Clearly define your learning goals
|
| 162 |
-
|
| 163 |
-
---
|
| 164 |
-
|
| 165 |
-
## โ FAQ
|
| 166 |
-
|
| 167 |
-
### Q: How is the API Key saved?
|
| 168 |
-
A: It is saved in your browser's localStorage, only locally, and will not be uploaded.
|
| 169 |
-
|
| 170 |
-
### Q: How much does it cost?
|
| 171 |
-
A: Each generation costs about ยฅ0.005-0.02. A ยฅ10 top-up will last a long time.
|
| 172 |
-
|
| 173 |
-
### Q: Is an internet connection required?
|
| 174 |
-
A: Yes, an internet connection is needed to call the DeepSeek API.
|
| 175 |
-
|
| 176 |
-
### Q: Does it support other languages?
|
| 177 |
-
A: It currently supports both Chinese and English input/output.
|
| 178 |
-
|
| 179 |
-
### Q: Is my data secure?
|
| 180 |
-
A: Very secure. All data is transmitted only between your browser and DeepSeek.
|
| 181 |
-
|
| 182 |
-
---
|
| 183 |
-
|
| 184 |
-
## ๐ง Troubleshooting
|
| 185 |
-
|
| 186 |
-
### API Key Error
|
| 187 |
-
1. Check if the API Key is copied completely
|
| 188 |
-
2. Confirm it has been activated in the DeepSeek console
|
| 189 |
-
3. Check if your account balance is sufficient
|
| 190 |
-
|
| 191 |
-
### Generation Failed
|
| 192 |
-
1. Check your internet connection
|
| 193 |
-
2. Check the browser console for error messages (F12)
|
| 194 |
-
3. Try again later
|
| 195 |
-
|
| 196 |
-
### Content Formatting Issues
|
| 197 |
-
1. Refresh the page and regenerate
|
| 198 |
-
2. Simplify the input content
|
| 199 |
-
3. Manually adjust the format
|
| 200 |
-
|
| 201 |
-
---
|
| 202 |
|
| 203 |
-
|
|
|
|
| 204 |
|
| 205 |
-
###
|
| 206 |
-
|
| 207 |
-
- โ
Simplified to DeepSeek only
|
| 208 |
-
- โ
Optimized Prompt templates
|
| 209 |
-
- โ
Improved error handling
|
| 210 |
-
- โ
Enhanced Chinese support
|
| 211 |
|
| 212 |
-
###
|
| 213 |
-
|
| 214 |
-
- Only the resume feature used AI
|
| 215 |
|
| 216 |
---
|
| 217 |
|
| 218 |
-
##
|
| 219 |
|
| 220 |
-
|
| 221 |
-
|
|
|
|
|
|
|
|
|
|
| 222 |
|
| 223 |
---
|
| 224 |
|
| 225 |
-
## ๐
|
| 226 |
|
| 227 |
-
|
| 228 |
|
| 229 |
---
|
| 230 |
|
| 231 |
-
## ๐
|
| 232 |
|
| 233 |
-
|
| 234 |
|
| 235 |
-
|
| 236 |
|
| 237 |
---
|
| 238 |
|
|
|
|
| 4 |
colorFrom: blue
|
| 5 |
colorTo: purple
|
| 6 |
sdk: docker
|
|
|
|
| 7 |
app_file: app.py
|
| 8 |
pinned: false
|
| 9 |
+
license: mit
|
| 10 |
---
|
|
|
|
| 11 |
|
| 12 |
+
# ๐ CareerForge AI - AI้ฉฑๅจ็่ไธๅๅฑๅนณๅฐ
|
| 13 |
+
|
| 14 |
+
> ไธไธชๅฎๅ
จ็ฑ AI ้ฉฑๅจ็็ปผๅๆง่ไธๅๅฑๅทฅๅ
ท๏ผๅธฎๅฉๆจไผๅ็ฎๅใๅๅค้ข่ฏใ่งๅๅญฆไน ่ทฏๅพ็ญใ
|
| 15 |
|
| 16 |
<div align="center">
|
| 17 |
|
|
|
|
| 19 |

|
| 20 |

|
| 21 |
|
|
|
|
|
|
|
| 22 |
</div>
|
| 23 |
|
| 24 |
---
|
| 25 |
|
| 26 |
+
## โจ ๅ่ฝ็น็น
|
| 27 |
|
| 28 |
+
### ๐ฏ 1. Smart Resume๏ผๆบ่ฝ็ฎๅไผๅ๏ผ
|
| 29 |
+
ๆ นๆฎ่ไฝๆ่ฟฐ๏ผAI ่ชๅจ็ๆไผๅ็็ฎๅๅๅน้
ๅบฆๅๆ
|
| 30 |
|
| 31 |
+
### ๐ผ 2. Interview Coach๏ผAI ้ข่ฏๆ็ป๏ผ
|
| 32 |
+
็ๆ้ๅฏน็นๅฎ่ไฝ็้ข่ฏ้ฎ้ขใ่ๅฏ็นๅๅ็ญ็ญ็ฅ
|
| 33 |
|
| 34 |
+
### ๐ 3. Learning Path๏ผๅญฆไน ่ทฏๅพ่งๅ๏ผ
|
| 35 |
+
ๆ นๆฎๅฝๅๆ่ฝๅ็ฎๆ ่ไฝ๏ผAI ่งๅไธชๆงๅๅญฆไน ่ทฏๅพ
|
| 36 |
|
| 37 |
+
### โ๏ธ 4. Cover Letter๏ผๆฑ่ไฟก็ๆ๏ผ
|
| 38 |
+
AI ๆฐๅไธไธใไธชๆงๅ็ๆฑ่ไฟก
|
| 39 |
|
| 40 |
+
### ๐ผ 5. LinkedIn Optimizer๏ผ้ข่ฑไผๅ๏ผ
|
| 41 |
+
ไผๅๆจ็ LinkedIn ๆ ้ขใ็ฎไปๅไธชไบบๅ็
|
| 42 |
|
| 43 |
+
### ๐ฐ 6. Salary Intelligence๏ผ่ช่ตๅๆ๏ผ
|
| 44 |
+
ๅๆๅธๅบ่ช่ตๅนถๆไพ่ฐๅค็ญ็ฅ
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
---
|
| 47 |
|
| 48 |
+
## ๐ ไฝฟ็จๆนๆณ
|
|
|
|
|
|
|
| 49 |
|
| 50 |
+
### ็ฌฌไธๆญฅ๏ผๆๅผๅบ็จ
|
| 51 |
+
็นๅปไธๆน็ใAppใๆ ็ญพๅณๅฏไฝฟ็จ
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
+
### ็ฌฌไบๆญฅ๏ผ้ๆฉๅ่ฝ
|
| 54 |
+
้ๆฉๆจ้่ฆ็ๅ่ฝๆ ็ญพ๏ผ็ฎๅใ้ข่ฏใๅญฆไน ่ทฏๅพ็ญ๏ผ
|
| 55 |
|
| 56 |
+
### ็ฌฌไธๆญฅ๏ผๅกซๅไฟกๆฏ
|
| 57 |
+
ๆ นๆฎๆ็คบๅกซๅ็ธๅ
ณไฟกๆฏ๏ผ่ถ่ฏฆ็ป่ถๅฅฝ๏ผ
|
| 58 |
|
| 59 |
+
### ็ฌฌๅๆญฅ๏ผ็ๆๅ
ๅฎน
|
| 60 |
+
็นๅป็ๆๆ้ฎ๏ผ็ญๅพ
AI ไธบๆจๅๅปบๅ
ๅฎน๏ผ้ๅธธ้่ฆ 10-30 ็ง๏ผ
|
| 61 |
|
| 62 |
+
### ็ฌฌไบๆญฅ๏ผไฝฟ็จ็ปๆ
|
| 63 |
+
- ๅคๅถ็ๆ็ๅ
ๅฎน
|
| 64 |
+
- ๅฏผๅบไธบ PDF๏ผ็ฎๅๅ่ฝ๏ผ
|
| 65 |
+
- ๆ นๆฎๅปบ่ฎฎ่ฟ่กไผๅ
|
|
|
|
|
|
|
|
|
|
| 66 |
|
| 67 |
---
|
| 68 |
|
| 69 |
+
## ๐ฏ ไฝฟ็จๅบๆฏ
|
| 70 |
|
| 71 |
+
### ๆฑ่่
|
| 72 |
+
- ้ๅฏนไธๅ่ไฝๅฎๅถ็ฎๅ
|
| 73 |
+
- ๅๅค้ข่ฏ้ฎ้ขๅ็ญๆก
|
| 74 |
+
- ไบ่งฃๅธๅบ่ช่ต่กๆ
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
|
| 76 |
+
### ่ไธ่งๅ
|
| 77 |
+
- ่ฏไผฐๆ่ฝๅทฎ่ท
|
| 78 |
+
- ๅถๅฎๅญฆไน ่ฎกๅ
|
| 79 |
+
- ่งๅ่ไธๅๅฑ่ทฏๅพ
|
| 80 |
|
| 81 |
+
### ่ไธๅ็
|
| 82 |
+
- ไผๅ LinkedIn ่ตๆ
|
| 83 |
+
- ๆฐๅไธไธๆฑ่ไฟก
|
| 84 |
+
- ๆๅไธชไบบๅ็ๅฝฑๅๅ
|
| 85 |
|
| 86 |
---
|
| 87 |
|
| 88 |
+
## ๐ก ไฝฟ็จๆๅทง
|
| 89 |
|
| 90 |
+
### ็ผๅ้ซ่ดจ้่พๅ
ฅ
|
|
|
|
|
|
|
|
|
|
| 91 |
|
| 92 |
+
**็ฎๅไผๅ๏ผ**
|
| 93 |
+
- ๆไพๅฎๆด็่ไฝๆ่ฟฐ
|
| 94 |
+
- ๅ
ๅซๅ
ทไฝ็ๆๆฏ่ฆๆฑ
|
| 95 |
+
- ่ฏดๆๅ
ฌๅธ่ๆฏไฟกๆฏ
|
| 96 |
|
| 97 |
+
**้ข่ฏๅๅค๏ผ**
|
| 98 |
+
- ๅๅบๆๆ็ธๅ
ณๆ่ฝ
|
| 99 |
+
- ๅ
ๅซ่ฝฏๆ่ฝๅ็กฌๆ่ฝ
|
| 100 |
+
- ๆ็กฎ่ไฝ็บงๅซ
|
| 101 |
|
| 102 |
+
**ๅญฆไน ่ทฏๅพ๏ผ**
|
| 103 |
+
- ่ฏฆ็ปๅๅบๅฝๅๆ่ฝ
|
| 104 |
+
- ่ฏดๆๆ่ฝ็็ป็จๅบฆ
|
| 105 |
+
- ๆ็กฎๅญฆไน ็ฎๆ
|
|
|
|
|
|
|
|
|
|
|
|
|
| 106 |
|
| 107 |
---
|
| 108 |
|
| 109 |
+
## ๐ ้็งไธๅฎๅ
จ
|
| 110 |
|
| 111 |
+
- โ
ๆ ้ๆณจๅๆ็ปๅฝ
|
| 112 |
+
- โ
ไธไฟๅญไปปไฝไธชไบบๆฐๆฎ
|
| 113 |
+
- โ
ๆๆๅ
ๅฎนไป
็จไบ็ๆ๏ผๅณๆถๅ ้ค
|
| 114 |
+
- โ
API Key ๅฎๅ
จๅญๅจๅจๆๅกๅจ็ซฏ
|
| 115 |
+
- โ
ๅฎๅ
จๅผๆบ๏ผไปฃ็ ๅฏๅฎกๆฅ
|
| 116 |
|
| 117 |
---
|
| 118 |
|
| 119 |
+
## ๐ ๏ธ ๆๆฏ็น็น
|
| 120 |
|
| 121 |
+
- **AI ้ฉฑๅจ** - ๆๆ 6 ไธชๅ่ฝ้ฝไฝฟ็จ DeepSeek AI
|
| 122 |
+
- **ๅๅบๅผ่ฎพ่ฎก** - ๆฏๆๆก้ขๅ็งปๅจ็ซฏ
|
| 123 |
+
- **ๅฟซ้็ๆ** - ้ๅธธ 10-30 ็งๅฎๆ
|
| 124 |
+
- **้ซ่ดจ้่พๅบ** - ไธไธ็บง AI ๆจกๅ
|
| 125 |
+
- **ๅฎๅ
จๅ
่ดน** - ๆ ้ไป่ดนๆ่ฎข้
|
| 126 |
|
| 127 |
---
|
| 128 |
|
| 129 |
+
## โ ๅธธ่ง้ฎ้ข
|
|
|
|
|
|
|
| 130 |
|
| 131 |
+
### Q: ๆฏๅฆ้่ฆๆณจๅ๏ผ
|
| 132 |
+
A: ไธ้่ฆ๏ผๆๅผๅณ็จ๏ผๆ ้ๆณจๅๆ็ปๅฝใ
|
|
|
|
|
|
|
| 133 |
|
| 134 |
+
### Q: ๆฐๆฎไผ่ขซไฟๅญๅ๏ผ
|
| 135 |
+
A: ไธไผ๏ผๆๆๆฐๆฎไป
็จไบ็ๆ๏ผไธไผไฟๅญๆๅไบซใ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 136 |
|
| 137 |
+
### Q: ็ๆ้่ฆๅค้ฟๆถ้ด๏ผ
|
| 138 |
+
A: ้ๅธธ 10-30 ็ง๏ผๅคๆ็่ฏทๆฑๅฏ่ฝ้่ฆๆด้ฟๆถ้ดใ
|
| 139 |
|
| 140 |
+
### Q: ็ๆๅคฑ่ดฅๆไนๅ๏ผ
|
| 141 |
+
A: ๅทๆฐ้กต้ข้่ฏ๏ผๆ็ฎๅ่พๅ
ฅๅ
ๅฎนใ
|
|
|
|
|
|
|
|
|
|
|
|
|
| 142 |
|
| 143 |
+
### Q: ๆฏๆไปไน่ฏญ่จ๏ผ
|
| 144 |
+
A: ็ฎๅไธป่ฆๆฏๆไธญๆๅ่ฑๆ่พๅ
ฅ่พๅบใ
|
|
|
|
| 145 |
|
| 146 |
---
|
| 147 |
|
| 148 |
+
## ๐ ๆไฝณๅฎ่ทต
|
| 149 |
|
| 150 |
+
1. **ๆไพ่ฏฆ็ปไฟกๆฏ** - ่พๅ
ฅ่ถ่ฏฆ็ป๏ผ็ๆ่ดจ้่ถ้ซ
|
| 151 |
+
2. **ๅคๆฌกๅฐ่ฏ** - ๅฏไปฅๅค็ๆๅ ๆฌก๏ผ้ๆฉๆๅฅฝ็็ปๆ
|
| 152 |
+
3. **ไบบๅทฅไผๅ** - AI ็ๆๆฏๅบ็ก๏ผๅปบ่ฎฎๆ นๆฎๅฎ้
ๆ
ๅต่ฐๆด
|
| 153 |
+
4. **ไฟๅญ็ปๆ** - ๅๆถไฟๅญๆปกๆ็็ปๆ๏ผ้ฟๅ
ไธขๅคฑ
|
| 154 |
+
5. **็ปๅไฝฟ็จ** - ็ปๅๅคไธชๅ่ฝ๏ผๆ้ ๅฎๆด็ๆฑ่ๆๆ
|
| 155 |
|
| 156 |
---
|
| 157 |
|
| 158 |
+
## ๐ ่ฎธๅฏ่ฏ
|
| 159 |
|
| 160 |
+
ๆฌ้กน็ฎ้็จ MIT ่ฎธๅฏ่ฏ
|
| 161 |
|
| 162 |
---
|
| 163 |
|
| 164 |
+
## ๐ ็ซๅณๅผๅง
|
| 165 |
|
| 166 |
+
็นๅปไธๆน็ใAppใๆ ็ญพ๏ผๅผๅงไฝฟ็จ AI ๅฉๅๆจ็่ไธๅๅฑ๏ผ
|
| 167 |
|
| 168 |
+
**็ฅๆจๆฑ่้กบๅฉ๏ผ่ไธๅๅฑ่ธ่ธๆฅไธ๏ผ** ๐โจ
|
| 169 |
|
| 170 |
---
|
| 171 |
|
README.txt
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 2 |
+
โ โ
|
| 3 |
+
โ ๐ CareerForge AI - ๅฎๆดไปฃ็ ๅ
โ
|
| 4 |
+
โ โ
|
| 5 |
+
โ ๅผ็ฎฑๅณ็จ็้จ็ฝฒๆไปถ โ
|
| 6 |
+
โ โ
|
| 7 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
๐ฆ ๆฌๆไปถๅคนๅ
ๅซๆๆๅฟ
้ๆไปถ
|
| 11 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 12 |
+
|
| 13 |
+
โ
app.py - FastAPI ๅ็ซฏๆๅกๅจ
|
| 14 |
+
โ
requirements.txt - Python ไพ่ตๅ่กจ
|
| 15 |
+
โ
Dockerfile - Docker ๅฎนๅจ้
็ฝฎ
|
| 16 |
+
โ
README.md - Hugging Face Space ่ฏดๆ
|
| 17 |
+
โ
static/index.html - ๅ็ซฏๅบ็จ๏ผๅฎๆดไปฃ็ ๏ผ
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
๐ ๅฟซ้้จ็ฝฒๆญฅ้ชค
|
| 21 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 22 |
+
|
| 23 |
+
1๏ธโฃ ๆณจๅ่ดฆๅท
|
| 24 |
+
- Hugging Face: https://huggingface.co/join
|
| 25 |
+
- DeepSeek: https://platform.deepseek.com
|
| 26 |
+
|
| 27 |
+
2๏ธโฃ ๅๅปบ Hugging Face Space
|
| 28 |
+
- ่ฎฟ้ฎ: https://huggingface.co/new-space
|
| 29 |
+
- SDK ้ๆฉ: Docker โ ๏ธ๏ผๅฟ
้กป๏ผ
|
| 30 |
+
- ็นๅป Create Space
|
| 31 |
+
|
| 32 |
+
3๏ธโฃ ไธไผ ๆไปถ
|
| 33 |
+
ๆนๆณA: ๆๆฝไธไผ ๏ผ็ฎๅ๏ผ
|
| 34 |
+
ๆนๆณB: Git ไธไผ ๏ผๆจ่๏ผ
|
| 35 |
+
|
| 36 |
+
4๏ธโฃ ้
็ฝฎ API Key
|
| 37 |
+
- ่ฟๅ
ฅ Settings โ Secrets
|
| 38 |
+
- ๆทปๅ : DEEPSEEK_API_KEY = sk-ไฝ ็ๅฏ้ฅ
|
| 39 |
+
|
| 40 |
+
5๏ธโฃ ็ญๅพ
ๆๅปบ๏ผ3-5 ๅ้๏ผ
|
| 41 |
+
|
| 42 |
+
6๏ธโฃ ๆต่ฏไฝฟ็จ๏ผ
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
๐ ่ฏฆ็ปๆ็จ
|
| 46 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 47 |
+
|
| 48 |
+
ๆฅ็๏ผCareerForge-AIๅฎๆด้จ็ฝฒๆๅ.md
|
| 49 |
+
|
| 50 |
+
ๅ
ๅซ๏ผ
|
| 51 |
+
โข ้ถๅบ็ก้จ็ฝฒๆ็จ
|
| 52 |
+
โข ่ฏฆ็ปๆไฝๆชๅพ
|
| 53 |
+
โข ๅธธ่ง้ฎ้ข่งฃๅณ
|
| 54 |
+
โข ๅฎๆดๆ
้ๆๆฅ
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
๐ ๆไปถ่ฏดๆ
|
| 58 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 59 |
+
|
| 60 |
+
app.py
|
| 61 |
+
------
|
| 62 |
+
โข ๅ็ซฏๆๅกๅจไปฃ็
|
| 63 |
+
โข ๅค็ API ่ฏทๆฑ
|
| 64 |
+
โข ไปฃ็ DeepSeek AI ่ฐ็จ
|
| 65 |
+
โข 300็ง่ถ
ๆถ้
็ฝฎ
|
| 66 |
+
|
| 67 |
+
requirements.txt
|
| 68 |
+
----------------
|
| 69 |
+
โข Python ไพ่ตๅ
ๅ่กจ
|
| 70 |
+
โข fastapi - Web ๆกๆถ
|
| 71 |
+
โข uvicorn - ASGI ๆๅกๅจ
|
| 72 |
+
โข httpx - HTTP ๅฎขๆท็ซฏ
|
| 73 |
+
|
| 74 |
+
Dockerfile
|
| 75 |
+
----------
|
| 76 |
+
โข Docker ๅฎนๅจ้
็ฝฎ
|
| 77 |
+
โข Python 3.10 ็ฏๅข
|
| 78 |
+
โข ็ซฏๅฃ 7860
|
| 79 |
+
โข ่ชๅจๅฏๅจๅบ็จ
|
| 80 |
+
|
| 81 |
+
README.md
|
| 82 |
+
---------
|
| 83 |
+
โข Hugging Face Space ้
็ฝฎ
|
| 84 |
+
โข ๅฟ
้กปๅ
ๅซ YAML front matter
|
| 85 |
+
โข SDK: docker
|
| 86 |
+
โข app_file: app.py
|
| 87 |
+
|
| 88 |
+
static/index.html
|
| 89 |
+
-----------------
|
| 90 |
+
โข ๅฎๆด็ๅ็ซฏๅบ็จ
|
| 91 |
+
โข 6 ๅคงๅ่ฝๆจกๅ
|
| 92 |
+
โข AI ่ฐ็จ้ป่พ
|
| 93 |
+
โข ็พ่ง็ UI ็้ข
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
โ ๏ธ ้่ฆๆ็คบ
|
| 97 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 98 |
+
|
| 99 |
+
1. SDK ๅฟ
้กป้ๆฉ "Docker"๏ผไธๆฏ Gradio๏ผ
|
| 100 |
+
2. Secret ๅ็งฐๅฟ
้กปๆฏ "DEEPSEEK_API_KEY"
|
| 101 |
+
3. index.html ๅฟ
้กปๆพๅจ static ๆไปถๅคน้
|
| 102 |
+
4. DeepSeek ่ดฆๆท้่ฆๆไฝ้ข
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
๐ง ๆฌๅฐๆต่ฏ๏ผๅฏ้๏ผ
|
| 106 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 107 |
+
|
| 108 |
+
ๅฆๆๆณๅจๆฌๅฐๆต่ฏ๏ผ
|
| 109 |
+
|
| 110 |
+
1. ๅฎ่ฃ
Python 3.10+
|
| 111 |
+
2. ๅฎ่ฃ
ไพ่ต๏ผpip install -r requirements.txt
|
| 112 |
+
3. ่ฎพ็ฝฎ็ฏๅขๅ้๏ผexport DEEPSEEK_API_KEY=sk-xxxxx
|
| 113 |
+
4. ่ฟ่ก๏ผuvicorn app:app --reload
|
| 114 |
+
5. ่ฎฟ้ฎ๏ผhttp://localhost:8000
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
๐ ่ทๅๅธฎๅฉ
|
| 118 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 119 |
+
|
| 120 |
+
Hugging Face ๆๆกฃ๏ผ
|
| 121 |
+
https://huggingface.co/docs/hub/spaces
|
| 122 |
+
|
| 123 |
+
DeepSeek ๆๆกฃ๏ผ
|
| 124 |
+
https://platform.deepseek.com/docs
|
| 125 |
+
|
| 126 |
+
|
| 127 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 128 |
+
|
| 129 |
+
ๅๅคๅฅฝไบๅ๏ผๅผๅง้จ็ฝฒๅง๏ผ
|
| 130 |
+
|
| 131 |
+
็ฅไฝ ้จ็ฝฒ้กบๅฉ๏ผ๐โจ
|
| 132 |
+
|
| 133 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 134 |
+
|
app.py
CHANGED
|
@@ -3,11 +3,6 @@ import httpx
|
|
| 3 |
from fastapi import FastAPI, Request, HTTPException
|
| 4 |
from fastapi.responses import HTMLResponse
|
| 5 |
from fastapi.staticfiles import StaticFiles
|
| 6 |
-
import logging
|
| 7 |
-
|
| 8 |
-
# --- Basic Logging Configuration ---
|
| 9 |
-
logging.basicConfig(level=logging.INFO)
|
| 10 |
-
logger = logging.getLogger(__name__)
|
| 11 |
|
| 12 |
# --- Configuration ---
|
| 13 |
# Get the API key from Hugging Face Secrets
|
|
@@ -34,11 +29,13 @@ async def proxy_deepseek(request: Request):
|
|
| 34 |
This endpoint receives the request from our frontend (index.html),
|
| 35 |
adds the secret API key, and forwards it to the DeepSeek API.
|
| 36 |
"""
|
| 37 |
-
logger.info("Received request for /call-deepseek proxy.")
|
| 38 |
-
|
| 39 |
# Check if the API key is configured in HF Secrets
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
if not DEEPSEEK_API_KEY:
|
| 41 |
-
|
| 42 |
raise HTTPException(
|
| 43 |
status_code=500,
|
| 44 |
detail="DEEPSEEK_API_KEY is not set on the server."
|
|
@@ -47,45 +44,44 @@ async def proxy_deepseek(request: Request):
|
|
| 47 |
try:
|
| 48 |
# Get the original JSON body from the frontend
|
| 49 |
body = await request.json()
|
| 50 |
-
logger.info(f"Request body model: {body.get('model')}")
|
| 51 |
|
| 52 |
# Prepare the authorization headers for DeepSeek
|
| 53 |
-
# Use .strip() to remove potential leading/trailing whitespace from the secret
|
| 54 |
-
stripped_api_key = DEEPSEEK_API_KEY.strip()
|
| 55 |
headers = {
|
| 56 |
"Content-Type": "application/json",
|
| 57 |
-
"Authorization": f"Bearer {
|
| 58 |
}
|
| 59 |
|
| 60 |
-
logger.info("Forwarding request to DeepSeek API.")
|
| 61 |
# Make the asynchronous request to DeepSeek
|
| 62 |
response = await client.post(
|
| 63 |
DEEPSEEK_ENDPOINT,
|
| 64 |
json=body, # Forward the body from the frontend
|
| 65 |
headers=headers,
|
| 66 |
-
timeout=
|
| 67 |
)
|
| 68 |
|
| 69 |
# Check if DeepSeek returned an error
|
| 70 |
response.raise_for_status()
|
| 71 |
|
| 72 |
-
logger.info("Successfully received response from DeepSeek.")
|
| 73 |
# Return DeepSeek's successful response directly to the frontend
|
| 74 |
return response.json()
|
| 75 |
|
| 76 |
except httpx.HTTPStatusError as e:
|
| 77 |
# Handle errors from the DeepSeek API
|
| 78 |
-
|
|
|
|
| 79 |
raise HTTPException(
|
| 80 |
status_code=e.response.status_code,
|
| 81 |
-
detail=
|
| 82 |
)
|
| 83 |
except Exception as e:
|
| 84 |
# Handle any other unexpected errors
|
| 85 |
-
|
|
|
|
|
|
|
|
|
|
| 86 |
raise HTTPException(
|
| 87 |
status_code=500,
|
| 88 |
-
detail=
|
| 89 |
)
|
| 90 |
|
| 91 |
|
|
@@ -104,8 +100,7 @@ async def read_root():
|
|
| 104 |
with open(os.path.join(STATIC_DIR, "index.html")) as f:
|
| 105 |
return HTMLResponse(content=f.read(), status_code=200)
|
| 106 |
except FileNotFoundError:
|
| 107 |
-
logger.error("index.html not found in static directory.")
|
| 108 |
return HTMLResponse(
|
| 109 |
content="<h1>Error: index.html not found</h1><p>Ensure index.html is in a 'static' folder.</p>",
|
| 110 |
status_code=404
|
| 111 |
-
)
|
|
|
|
| 3 |
from fastapi import FastAPI, Request, HTTPException
|
| 4 |
from fastapi.responses import HTMLResponse
|
| 5 |
from fastapi.staticfiles import StaticFiles
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
|
| 7 |
# --- Configuration ---
|
| 8 |
# Get the API key from Hugging Face Secrets
|
|
|
|
| 29 |
This endpoint receives the request from our frontend (index.html),
|
| 30 |
adds the secret API key, and forwards it to the DeepSeek API.
|
| 31 |
"""
|
|
|
|
|
|
|
| 32 |
# Check if the API key is configured in HF Secrets
|
| 33 |
+
print(f"[DEBUG] DEEPSEEK_API_KEY exists: {bool(DEEPSEEK_API_KEY)}")
|
| 34 |
+
if DEEPSEEK_API_KEY:
|
| 35 |
+
print(f"[DEBUG] API Key starts with: {DEEPSEEK_API_KEY[:10]}...")
|
| 36 |
+
|
| 37 |
if not DEEPSEEK_API_KEY:
|
| 38 |
+
print("[ERROR] DEEPSEEK_API_KEY is not set!")
|
| 39 |
raise HTTPException(
|
| 40 |
status_code=500,
|
| 41 |
detail="DEEPSEEK_API_KEY is not set on the server."
|
|
|
|
| 44 |
try:
|
| 45 |
# Get the original JSON body from the frontend
|
| 46 |
body = await request.json()
|
|
|
|
| 47 |
|
| 48 |
# Prepare the authorization headers for DeepSeek
|
|
|
|
|
|
|
| 49 |
headers = {
|
| 50 |
"Content-Type": "application/json",
|
| 51 |
+
"Authorization": f"Bearer {DEEPSEEK_API_KEY}"
|
| 52 |
}
|
| 53 |
|
|
|
|
| 54 |
# Make the asynchronous request to DeepSeek
|
| 55 |
response = await client.post(
|
| 56 |
DEEPSEEK_ENDPOINT,
|
| 57 |
json=body, # Forward the body from the frontend
|
| 58 |
headers=headers,
|
| 59 |
+
timeout=300.0 # Set a 300-second timeout (5 minutes)
|
| 60 |
)
|
| 61 |
|
| 62 |
# Check if DeepSeek returned an error
|
| 63 |
response.raise_for_status()
|
| 64 |
|
|
|
|
| 65 |
# Return DeepSeek's successful response directly to the frontend
|
| 66 |
return response.json()
|
| 67 |
|
| 68 |
except httpx.HTTPStatusError as e:
|
| 69 |
# Handle errors from the DeepSeek API
|
| 70 |
+
error_msg = f"DeepSeek API Error: {e.response.status_code} - {e.response.text}"
|
| 71 |
+
print(f"[ERROR] {error_msg}")
|
| 72 |
raise HTTPException(
|
| 73 |
status_code=e.response.status_code,
|
| 74 |
+
detail=error_msg
|
| 75 |
)
|
| 76 |
except Exception as e:
|
| 77 |
# Handle any other unexpected errors
|
| 78 |
+
error_msg = f"Internal server error: {type(e).__name__} - {str(e)}"
|
| 79 |
+
print(f"[ERROR] {error_msg}")
|
| 80 |
+
import traceback
|
| 81 |
+
print(f"[TRACEBACK] {traceback.format_exc()}")
|
| 82 |
raise HTTPException(
|
| 83 |
status_code=500,
|
| 84 |
+
detail=error_msg
|
| 85 |
)
|
| 86 |
|
| 87 |
|
|
|
|
| 100 |
with open(os.path.join(STATIC_DIR, "index.html")) as f:
|
| 101 |
return HTMLResponse(content=f.read(), status_code=200)
|
| 102 |
except FileNotFoundError:
|
|
|
|
| 103 |
return HTMLResponse(
|
| 104 |
content="<h1>Error: index.html not found</h1><p>Ensure index.html is in a 'static' folder.</p>",
|
| 105 |
status_code=404
|
| 106 |
+
)
|
ไธ้ฎ้จ็ฝฒ.sh
ADDED
|
@@ -0,0 +1,276 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# ้ข่ฒๅฎไน
|
| 4 |
+
GREEN='\033[0;32m'
|
| 5 |
+
RED='\033[0;31m'
|
| 6 |
+
YELLOW='\033[1;33m'
|
| 7 |
+
BLUE='\033[0;34m'
|
| 8 |
+
CYAN='\033[0;36m'
|
| 9 |
+
NC='\033[0m'
|
| 10 |
+
|
| 11 |
+
clear
|
| 12 |
+
|
| 13 |
+
echo -e "${CYAN}"
|
| 14 |
+
cat << "EOF"
|
| 15 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 16 |
+
โ โ
|
| 17 |
+
โ ๐ CareerForge AI - ไธ้ฎ้จ็ฝฒๅฐ Hugging Face โ
|
| 18 |
+
โ โ
|
| 19 |
+
โ ่ฎฉ AI ๅฉๅไฝ ็่ไธๅๅฑ๏ผ โ
|
| 20 |
+
โ โ
|
| 21 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 22 |
+
EOF
|
| 23 |
+
echo -e "${NC}"
|
| 24 |
+
echo ""
|
| 25 |
+
|
| 26 |
+
# ๆฃๆฅๅฝๅ็ฎๅฝ
|
| 27 |
+
if [ ! -f "app.py" ] || [ ! -f "Dockerfile" ]; then
|
| 28 |
+
echo -e "${RED}โ ้่ฏฏ๏ผ่ฏทๅจ CareerForge-ๅฎๆดไปฃ็ ๅ
ๆไปถๅคนไธญ่ฟ่กๆญค่ๆฌ${NC}"
|
| 29 |
+
echo ""
|
| 30 |
+
echo "ๅฝๅ็ฎๅฝ๏ผ$(pwd)"
|
| 31 |
+
echo "่ฏท็กฎไฟๅ
ๅซไปฅไธๆไปถ๏ผ"
|
| 32 |
+
echo " โข app.py"
|
| 33 |
+
echo " โข requirements.txt"
|
| 34 |
+
echo " โข Dockerfile"
|
| 35 |
+
echo " โข README.md"
|
| 36 |
+
echo " โข static/index.html"
|
| 37 |
+
echo ""
|
| 38 |
+
exit 1
|
| 39 |
+
fi
|
| 40 |
+
|
| 41 |
+
echo -e "${GREEN}โ
ๆฃๆตๅฐๆๆๅฟ
้ๆไปถ${NC}"
|
| 42 |
+
echo ""
|
| 43 |
+
|
| 44 |
+
# ๆพ็คบๆไปถๅ่กจ
|
| 45 |
+
echo -e "${BLUE}๐ ๅณๅฐ้จ็ฝฒไปฅไธๆไปถ๏ผ${NC}"
|
| 46 |
+
echo " โ app.py - ๅ็ซฏๆๅกๅจ"
|
| 47 |
+
echo " โ requirements.txt - Python ไพ่ต"
|
| 48 |
+
echo " โ Dockerfile - Docker ้
็ฝฎ"
|
| 49 |
+
echo " โ README.md - Space ่ฏดๆ"
|
| 50 |
+
echo " โ static/index.html - ๅ็ซฏๅบ็จ"
|
| 51 |
+
echo ""
|
| 52 |
+
|
| 53 |
+
# ๆญฅ้ชค 1๏ผ่ทๅ็จๆทไฟกๆฏ
|
| 54 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 55 |
+
echo -e "${YELLOW}๐ ๆญฅ้ชค 1/5: ้
็ฝฎ้จ็ฝฒไฟกๆฏ${NC}"
|
| 56 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 57 |
+
echo ""
|
| 58 |
+
|
| 59 |
+
read -p "่ฏท่พๅ
ฅไฝ ็ Hugging Face ็จๆทๅ: " HF_USERNAME
|
| 60 |
+
if [ -z "$HF_USERNAME" ]; then
|
| 61 |
+
echo -e "${RED}โ ็จๆทๅไธ่ฝไธบ็ฉบ${NC}"
|
| 62 |
+
exit 1
|
| 63 |
+
fi
|
| 64 |
+
|
| 65 |
+
read -p "่ฏท่พๅ
ฅ Space ๅ็งฐ [้ป่ฎค: careerforge-ai]: " SPACE_NAME
|
| 66 |
+
SPACE_NAME=${SPACE_NAME:-careerforge-ai}
|
| 67 |
+
|
| 68 |
+
echo ""
|
| 69 |
+
echo -e "${GREEN}โ
็จๆทๅ: ${CYAN}$HF_USERNAME${NC}"
|
| 70 |
+
echo -e "${GREEN}โ
Space ๅ็งฐ: ${CYAN}$SPACE_NAME${NC}"
|
| 71 |
+
echo -e "${GREEN}โ
Space ๅฐๅ: ${BLUE}https://huggingface.co/spaces/$HF_USERNAME/$SPACE_NAME${NC}"
|
| 72 |
+
echo ""
|
| 73 |
+
|
| 74 |
+
read -p "ไฟกๆฏๆญฃ็กฎๅ๏ผ(y/n) " -n 1 -r
|
| 75 |
+
echo ""
|
| 76 |
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
| 77 |
+
echo -e "${YELLOW}โ ๏ธ ๅทฒๅๆถ${NC}"
|
| 78 |
+
exit 1
|
| 79 |
+
fi
|
| 80 |
+
|
| 81 |
+
echo ""
|
| 82 |
+
|
| 83 |
+
# ๆญฅ้ชค 2๏ผๆฃๆฅ Git
|
| 84 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 85 |
+
echo -e "${YELLOW}๐ ๆญฅ้ชค 2/5: ๆฃๆฅ Git ็ฏๅข${NC}"
|
| 86 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 87 |
+
echo ""
|
| 88 |
+
|
| 89 |
+
if ! command -v git &> /dev/null; then
|
| 90 |
+
echo -e "${RED}โ Git ๆชๅฎ่ฃ
${NC}"
|
| 91 |
+
echo ""
|
| 92 |
+
echo "่ฏทๅ
ๅฎ่ฃ
Git๏ผ"
|
| 93 |
+
echo " Mac: brew install git"
|
| 94 |
+
echo " Windows: https://git-scm.com/download/win"
|
| 95 |
+
echo ""
|
| 96 |
+
exit 1
|
| 97 |
+
fi
|
| 98 |
+
|
| 99 |
+
echo -e "${GREEN}โ
Git ๅทฒๅฎ่ฃ
: $(git --version)${NC}"
|
| 100 |
+
echo ""
|
| 101 |
+
|
| 102 |
+
# ้
็ฝฎ Git ็จๆทไฟกๆฏ๏ผๅฆๆๆช้
็ฝฎ๏ผ
|
| 103 |
+
if [ -z "$(git config user.name)" ]; then
|
| 104 |
+
read -p "่ฏท่พๅ
ฅ Git ็จๆทๅ: " GIT_NAME
|
| 105 |
+
git config user.name "$GIT_NAME"
|
| 106 |
+
echo -e "${GREEN}โ
ๅทฒ่ฎพ็ฝฎ Git ็จๆทๅ${NC}"
|
| 107 |
+
fi
|
| 108 |
+
|
| 109 |
+
if [ -z "$(git config user.email)" ]; then
|
| 110 |
+
read -p "่ฏท่พๅ
ฅ Git ้ฎ็ฎฑ: " GIT_EMAIL
|
| 111 |
+
git config user.email "$GIT_EMAIL"
|
| 112 |
+
echo -e "${GREEN}โ
ๅทฒ่ฎพ็ฝฎ Git ้ฎ็ฎฑ${NC}"
|
| 113 |
+
fi
|
| 114 |
+
|
| 115 |
+
echo ""
|
| 116 |
+
|
| 117 |
+
# ๆญฅ้ชค 3๏ผๅๅงๅ Git ไปๅบ
|
| 118 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 119 |
+
echo -e "${YELLOW}๐ฆ ๆญฅ้ชค 3/5: ๅๅงๅ Git ไปๅบ${NC}"
|
| 120 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 121 |
+
echo ""
|
| 122 |
+
|
| 123 |
+
if [ -d ".git" ]; then
|
| 124 |
+
echo -e "${YELLOW}โ ๏ธ Git ไปๅบๅทฒๅญๅจ๏ผ่ทณ่ฟๅๅงๅ${NC}"
|
| 125 |
+
else
|
| 126 |
+
echo "ๆญฃๅจๅๅงๅ Git ไปๅบ..."
|
| 127 |
+
git init
|
| 128 |
+
echo -e "${GREEN}โ
Git ไปๅบๅๅงๅๅฎๆ${NC}"
|
| 129 |
+
fi
|
| 130 |
+
|
| 131 |
+
echo ""
|
| 132 |
+
|
| 133 |
+
# ๆญฅ้ชค 4๏ผๆทปๅ ่ฟ็จไปๅบ
|
| 134 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 135 |
+
echo -e "${YELLOW}๐ ๆญฅ้ชค 4/5: ้
็ฝฎ่ฟ็จไปๅบ${NC}"
|
| 136 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 137 |
+
echo ""
|
| 138 |
+
|
| 139 |
+
REMOTE_URL="https://huggingface.co/spaces/$HF_USERNAME/$SPACE_NAME"
|
| 140 |
+
|
| 141 |
+
# ๆฃๆฅๆฏๅฆๅทฒๆ origin
|
| 142 |
+
if git remote | grep -q "origin"; then
|
| 143 |
+
echo "็งป้คๆง็ origin..."
|
| 144 |
+
git remote remove origin
|
| 145 |
+
fi
|
| 146 |
+
|
| 147 |
+
echo "ๆทปๅ ่ฟ็จไปๅบ: $REMOTE_URL"
|
| 148 |
+
git remote add origin $REMOTE_URL
|
| 149 |
+
echo -e "${GREEN}โ
่ฟ็จไปๅบ้
็ฝฎๅฎๆ${NC}"
|
| 150 |
+
echo ""
|
| 151 |
+
|
| 152 |
+
# ๆญฅ้ชค 5๏ผๆไบคๅนถๆจ้
|
| 153 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 154 |
+
echo -e "${YELLOW}๐ ๆญฅ้ชค 5/5: ๆไบคๅนถๆจ้ไปฃ็ ${NC}"
|
| 155 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 156 |
+
echo ""
|
| 157 |
+
|
| 158 |
+
echo "ๆทปๅ ๆๆๆไปถ..."
|
| 159 |
+
git add .
|
| 160 |
+
|
| 161 |
+
echo "ๆไบคๆดๆน..."
|
| 162 |
+
git commit -m "Initial commit: Deploy CareerForge AI to Hugging Face Space"
|
| 163 |
+
|
| 164 |
+
echo ""
|
| 165 |
+
echo -e "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 166 |
+
echo -e "${BLUE}โ โ${NC}"
|
| 167 |
+
echo -e "${BLUE}โ โ ๏ธ ๅๅคๆจ้ๅฐ Hugging Face โ${NC}"
|
| 168 |
+
echo -e "${BLUE}โ โ${NC}"
|
| 169 |
+
echo -e "${BLUE}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 170 |
+
echo ""
|
| 171 |
+
echo -e "${YELLOW}ๆฅไธๆฅไผ่ฆๆฑไฝ ่พๅ
ฅ๏ผ${NC}"
|
| 172 |
+
echo ""
|
| 173 |
+
echo -e " ${CYAN}Username:${NC} $HF_USERNAME"
|
| 174 |
+
echo -e " ${CYAN}Password:${NC} ไฝฟ็จไฝ ็ Hugging Face Access Token"
|
| 175 |
+
echo ""
|
| 176 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 177 |
+
echo -e "${YELLOW}๐ ๅฆไฝ่ทๅ Access Token๏ผ${NC}"
|
| 178 |
+
echo ""
|
| 179 |
+
echo " 1๏ธโฃ ่ฎฟ้ฎ: ${BLUE}https://huggingface.co/settings/tokens${NC}"
|
| 180 |
+
echo " 2๏ธโฃ ็นๅป 'New token' ๆ้ฎ"
|
| 181 |
+
echo " 3๏ธโฃ ้ๆฉ 'write' ๆ้ โ ๏ธ"
|
| 182 |
+
echo " 4๏ธโฃ ็นๅป 'Generate'"
|
| 183 |
+
echo " 5๏ธโฃ ๅคๅถ็ๆ็ token๏ผไปฅ hf_ ๅผๅคด๏ผ"
|
| 184 |
+
echo ""
|
| 185 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 186 |
+
echo ""
|
| 187 |
+
|
| 188 |
+
read -p "ๅๅคๅฅฝ Token ไบๅ๏ผๆๅ่ฝฆ็ปง็ปญๆจ้..."
|
| 189 |
+
|
| 190 |
+
echo ""
|
| 191 |
+
echo "ๆญฃๅจๆจ้ๅฐ Hugging Face..."
|
| 192 |
+
echo ""
|
| 193 |
+
|
| 194 |
+
if git push origin main 2>&1; then
|
| 195 |
+
echo ""
|
| 196 |
+
echo -e "${GREEN}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 197 |
+
echo -e "${GREEN}โ โ${NC}"
|
| 198 |
+
echo -e "${GREEN}โ ๐๐๐ ๆจ้ๆๅ๏ผ๐๐๐ โ${NC}"
|
| 199 |
+
echo -e "${GREEN}โ โ${NC}"
|
| 200 |
+
echo -e "${GREEN}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 201 |
+
echo ""
|
| 202 |
+
echo -e "${GREEN}โ
CareerForge AI ๅทฒๆๅไธไผ ๅฐ Hugging Face๏ผ${NC}"
|
| 203 |
+
echo ""
|
| 204 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 205 |
+
echo ""
|
| 206 |
+
echo -e "${RED}โ ๏ธ ้่ฆ๏ผ่ฟ้่ฆๅฎๆๆๅไธๆญฅ๏ผ${NC}"
|
| 207 |
+
echo ""
|
| 208 |
+
echo -e "${CYAN}๐ ่ฏท่ฎฟ้ฎไฝ ็ Space ่ฎพ็ฝฎ้กต้ข๏ผ${NC}"
|
| 209 |
+
echo -e " ${BLUE}$REMOTE_URL/settings${NC}"
|
| 210 |
+
echo ""
|
| 211 |
+
echo -e "${CYAN}๐ ๆทปๅ DeepSeek API Key๏ผ${NC}"
|
| 212 |
+
echo ""
|
| 213 |
+
echo " 1๏ธโฃ ็นๅป 'Settings' ๆ ็ญพ"
|
| 214 |
+
echo " 2๏ธโฃ ๆพๅฐ 'Repository secrets' ้จๅ"
|
| 215 |
+
echo " 3๏ธโฃ ็นๅป 'New secret' ๆ้ฎ"
|
| 216 |
+
echo " 4๏ธโฃ ๅกซๅ๏ผ"
|
| 217 |
+
echo -e " Name: ${GREEN}DEEPSEEK_API_KEY${NC}"
|
| 218 |
+
echo -e " Value: ${GREEN}sk-ไฝ ็DeepSeek APIๅฏ้ฅ${NC}"
|
| 219 |
+
echo " 5๏ธโฃ ็นๅป 'Add' ๆ้ฎ"
|
| 220 |
+
echo ""
|
| 221 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 222 |
+
echo ""
|
| 223 |
+
echo -e "${CYAN}๐ก ่ทๅ DeepSeek API Key๏ผ${NC}"
|
| 224 |
+
echo ""
|
| 225 |
+
echo " 1. ่ฎฟ้ฎ: ${BLUE}https://platform.deepseek.com${NC}"
|
| 226 |
+
echo " 2. ๆณจๅๅนถ็ปๅฝ"
|
| 227 |
+
echo " 3. ็นๅปๅทฆไพง 'API Keys'"
|
| 228 |
+
echo " 4. ๅๅปบๆฐๅฏ้ฅ"
|
| 229 |
+
echo " 5. ๅ
ๅผ ยฅ10-20"
|
| 230 |
+
echo ""
|
| 231 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 232 |
+
echo ""
|
| 233 |
+
echo -e "${CYAN}โณ ้
็ฝฎๅฎๆๅ๏ผ${NC}"
|
| 234 |
+
echo ""
|
| 235 |
+
echo " โข ็ญๅพ
3-5 ๅ้่ฎฉ Space ๆๅปบ"
|
| 236 |
+
echo " โข ่ฎฟ้ฎ App ๆ ็ญพๆต่ฏๅ่ฝ"
|
| 237 |
+
echo " โข ็ๆไธไปฝ็ฎๅ่ฏ่ฏ๏ผ"
|
| 238 |
+
echo ""
|
| 239 |
+
echo -e "${YELLOW}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 240 |
+
echo ""
|
| 241 |
+
echo -e "${CYAN}๐ ไฝ ็ๅบ็จๅฐๅ๏ผ${NC}"
|
| 242 |
+
echo -e " ${BLUE}$REMOTE_URL${NC}"
|
| 243 |
+
echo ""
|
| 244 |
+
echo -e "${CYAN}๐ ๆฅ็ๆๅปบๆฅๅฟ๏ผ${NC}"
|
| 245 |
+
echo -e " ${BLUE}$REMOTE_URL?logs=build${NC}"
|
| 246 |
+
echo ""
|
| 247 |
+
echo -e "${GREEN}็ฅไฝ ไฝฟ็จๆๅฟซ๏ผ๐โจ${NC}"
|
| 248 |
+
echo ""
|
| 249 |
+
else
|
| 250 |
+
echo ""
|
| 251 |
+
echo -e "${RED}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 252 |
+
echo -e "${RED}โ โ${NC}"
|
| 253 |
+
echo -e "${RED}โ โ ๆจ้ๅคฑ่ดฅ โ${NC}"
|
| 254 |
+
echo -e "${RED}โ โ${NC}"
|
| 255 |
+
echo -e "${RED}โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ${NC}"
|
| 256 |
+
echo ""
|
| 257 |
+
echo -e "${YELLOW}ๅฏ่ฝ็ๅๅ ๏ผ${NC}"
|
| 258 |
+
echo ""
|
| 259 |
+
echo " 1. Access Token ไธๆญฃ็กฎๆๆ้ไธ่ถณ"
|
| 260 |
+
echo " 2. Space ๅฐๆชๅจ Hugging Face ๅๅปบ"
|
| 261 |
+
echo " 3. ็ฝ็ป่ฟๆฅ้ฎ้ข"
|
| 262 |
+
echo " 4. Token ๅทฒ่ฟๆ"
|
| 263 |
+
echo ""
|
| 264 |
+
echo -e "${YELLOW}่งฃๅณๆนๆณ๏ผ${NC}"
|
| 265 |
+
echo ""
|
| 266 |
+
echo " 1. ็กฎไฟๅ
ๅจ HF ็ฝ็ซๅๅปบ Space๏ผ"
|
| 267 |
+
echo -e " ${BLUE}https://huggingface.co/new-space${NC}"
|
| 268 |
+
echo " 2. ็กฎไฟ SDK ้ๆฉไบ 'Docker'"
|
| 269 |
+
echo " 3. ่ทๅๆฐ็ Access Token๏ผ้่ฆ write ๆ้๏ผ๏ผ"
|
| 270 |
+
echo -e " ${BLUE}https://huggingface.co/settings/tokens${NC}"
|
| 271 |
+
echo " 4. ๆฃๆฅ็ฝ็ป่ฟๆฅ"
|
| 272 |
+
echo ""
|
| 273 |
+
echo " ็ถๅ้ๆฐ่ฟ่กๆญค่ๆฌใ"
|
| 274 |
+
echo ""
|
| 275 |
+
fi
|
| 276 |
+
|
ๅฟซ้ๅผๅง.txt
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 2 |
+
โ โ
|
| 3 |
+
โ ๐ CareerForge AI - 5ๅ้ๅฟซ้้จ็ฝฒ โ
|
| 4 |
+
โ โ
|
| 5 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
๐ ๅๅคๅทฅไฝ๏ผ5ๅ้๏ผ
|
| 9 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 10 |
+
|
| 11 |
+
1๏ธโฃ ๆณจๅ Hugging Face ่ดฆๅท
|
| 12 |
+
่ฎฟ้ฎ๏ผhttps://huggingface.co/join
|
| 13 |
+
ๅกซๅ้ฎ็ฎฑใ็จๆทๅใๅฏ็ โ ้ช่ฏ้ฎ็ฎฑ โ ๅฎๆ
|
| 14 |
+
|
| 15 |
+
2๏ธโฃ ๆณจๅ DeepSeek ่ดฆๅทๅนถ่ทๅ API Key
|
| 16 |
+
่ฎฟ้ฎ๏ผhttps://platform.deepseek.com
|
| 17 |
+
ๆณจๅ็ปๅฝ โ API Keys โ ๅๅปบๆฐๅฏ้ฅ โ ๅคๅถไฟๅญ
|
| 18 |
+
่ฎฐๅพๅ
ๅผ ยฅ10-20
|
| 19 |
+
|
| 20 |
+
3๏ธโฃ ่ทๅ Hugging Face Access Token
|
| 21 |
+
่ฎฟ้ฎ๏ผhttps://huggingface.co/settings/tokens
|
| 22 |
+
New token โ ้ๆฉ write ๆ้ โ Generate โ ๅคๅถไฟๅญ
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
๐ ๆนๆณไธ๏ผไธ้ฎ้จ็ฝฒ๏ผๆ็ฎๅ๏ผ๏ผ
|
| 26 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 27 |
+
|
| 28 |
+
ๆญฅ้ชค 1๏ผๅ
ๅจ HF ๅๅปบ Space
|
| 29 |
+
่ฎฟ้ฎ๏ผhttps://huggingface.co/new-space
|
| 30 |
+
SDK ้ๆฉ๏ผDocker โ ๏ธ๏ผๅฟ
้กป๏ผ
|
| 31 |
+
็นๅป๏ผCreate Space
|
| 32 |
+
|
| 33 |
+
ๆญฅ้ชค 2๏ผ่ฟ่กไธ้ฎ่ๆฌ
|
| 34 |
+
ๆๅผ็ป็ซฏ๏ผ่ฟๅ
ฅๆฌๆไปถๅคน๏ผ
|
| 35 |
+
cd /path/to/CareerForge-ๅฎๆดไปฃ็ ๅ
|
| 36 |
+
|
| 37 |
+
่ฟ่ก่ๆฌ๏ผ
|
| 38 |
+
./ไธ้ฎ้จ็ฝฒ.sh
|
| 39 |
+
|
| 40 |
+
ๆๆ็คบ่พๅ
ฅ๏ผ
|
| 41 |
+
โข HF ็จๆทๅ
|
| 42 |
+
โข Space ๅ็งฐ
|
| 43 |
+
โข HF Token๏ผๆจ้ๆถ๏ผ
|
| 44 |
+
|
| 45 |
+
ๆญฅ้ชค 3๏ผ้
็ฝฎ API Key
|
| 46 |
+
่ฎฟ้ฎ๏ผhttps://huggingface.co/spaces/ไฝ ็็จๆทๅ/spaceๅ/settings
|
| 47 |
+
|
| 48 |
+
Secrets โ New secret โ ๅกซๅ๏ผ
|
| 49 |
+
Name: DEEPSEEK_API_KEY
|
| 50 |
+
Value: sk-ไฝ ็ๅฏ้ฅ
|
| 51 |
+
|
| 52 |
+
็นๅป Add
|
| 53 |
+
|
| 54 |
+
ๆญฅ้ชค 4๏ผ็ญๅพ
ๆๅปบ๏ผ3-5ๅ้๏ผ
|
| 55 |
+
ๅจ App ๆ ็ญพๆฅ็่ฟๅบฆ
|
| 56 |
+
|
| 57 |
+
ๆญฅ้ชค 5๏ผๅผๅงไฝฟ็จ๏ผ๐
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
๐ ๆนๆณไบ๏ผ็ฝ้กตไธไผ ๏ผๆ ้ๅฝไปค่ก๏ผ
|
| 61 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 62 |
+
|
| 63 |
+
ๆญฅ้ชค 1๏ผๅๅปบ Space
|
| 64 |
+
https://huggingface.co/new-space
|
| 65 |
+
SDK: Docker โ Create
|
| 66 |
+
|
| 67 |
+
ๆญฅ้ชค 2๏ผไธไผ ๆไปถ
|
| 68 |
+
Files โ Add file โ Upload files
|
| 69 |
+
ไพๆฌกไธไผ ๏ผ
|
| 70 |
+
โข README.md
|
| 71 |
+
โข app.py
|
| 72 |
+
โข requirements.txt
|
| 73 |
+
โข Dockerfile
|
| 74 |
+
โ Commit changes
|
| 75 |
+
|
| 76 |
+
ๆญฅ้ชค 3๏ผไธไผ static/index.html
|
| 77 |
+
Add file โ Create a new file
|
| 78 |
+
ๆไปถๅ๏ผstatic/index.html
|
| 79 |
+
็ฒ่ดดไปฃ็ โ Commit
|
| 80 |
+
|
| 81 |
+
ๆญฅ้ชค 4๏ผ้
็ฝฎ API Key
|
| 82 |
+
Settings โ Secrets โ New secret
|
| 83 |
+
Name: DEEPSEEK_API_KEY
|
| 84 |
+
Value: sk-xxxxx
|
| 85 |
+
|
| 86 |
+
ๆญฅ้ชค 5๏ผ็ญๅพ
& ไฝฟ็จ
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
๐ ๆไปถ็ปๆ
|
| 90 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 91 |
+
|
| 92 |
+
CareerForge-ๅฎๆดไปฃ็ ๅ
/
|
| 93 |
+
โโโ app.py โ ๅ็ซฏๆๅกๅจ
|
| 94 |
+
โโโ requirements.txt โ ไพ่ตๅ่กจ
|
| 95 |
+
โโโ Dockerfile โ ๅฎนๅจ้
็ฝฎ
|
| 96 |
+
โโโ README.md โ Space ่ฏดๆ
|
| 97 |
+
โโโ static/
|
| 98 |
+
โ โโโ index.html โ ๅ็ซฏๅบ็จ
|
| 99 |
+
โโโ ไธ้ฎ้จ็ฝฒ.sh โ ่ชๅจ้จ็ฝฒ่ๆฌ
|
| 100 |
+
โโโ ๅฟซ้ๅผๅง.txt โ ๆฌๆไปถ
|
| 101 |
+
โโโ README.txt โ ่ฏฆ็ป่ฏดๆ
|
| 102 |
+
|
| 103 |
+
|
| 104 |
+
โ ๏ธ ๅ
ณ้ฎๆณจๆไบ้กน
|
| 105 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 106 |
+
|
| 107 |
+
โ
SDK ๅฟ
้กป้ๆฉ "Docker"
|
| 108 |
+
โ
Secret ๅ็งฐๅฟ
้กปๆฏ "DEEPSEEK_API_KEY"
|
| 109 |
+
โ
index.html ๅฟ
้กปๅจ static ๆไปถๅคน้
|
| 110 |
+
โ
DeepSeek ่ดฆๆทๅฟ
้กปๆไฝ้ข
|
| 111 |
+
โ
HF Token ้่ฆ write ๆ้
|
| 112 |
+
|
| 113 |
+
|
| 114 |
+
๐ฏ ๆๅๆ ๅฟ
|
| 115 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 116 |
+
|
| 117 |
+
ๆๅปบๆๅ๏ผ
|
| 118 |
+
Logs ๆพ็คบ "Uvicorn running on http://0.0.0.0:7860"
|
| 119 |
+
|
| 120 |
+
ๅ่ฝๆญฃๅธธ๏ผ
|
| 121 |
+
ๅกซๅไฟกๆฏ โ ็นๅป็ๆ โ ็ญๅพ
30-60็ง โ ็ๅฐ็ปๆ
|
| 122 |
+
|
| 123 |
+
|
| 124 |
+
โ ้ๅฐ้ฎ้ข๏ผ
|
| 125 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 126 |
+
|
| 127 |
+
1. ๆฅ็่ฏฆ็ปๆ็จ๏ผCareerForge-AIๅฎๆด้จ็ฝฒๆๅ.md
|
| 128 |
+
2. ๆฃๆฅ Logs ๆ ็ญพ็้่ฏฏไฟกๆฏ
|
| 129 |
+
3. ็กฎ่ฎคๆๆๆญฅ้ชค้ฝๆญฃ็กฎๅฎๆ
|
| 130 |
+
|
| 131 |
+
|
| 132 |
+
๐ ๅธธ็จ้พๆฅ
|
| 133 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 134 |
+
|
| 135 |
+
ๅๅปบ Space๏ผ
|
| 136 |
+
https://huggingface.co/new-space
|
| 137 |
+
|
| 138 |
+
่ทๅ Token๏ผ
|
| 139 |
+
https://huggingface.co/settings/tokens
|
| 140 |
+
|
| 141 |
+
DeepSeek ๆงๅถๅฐ๏ผ
|
| 142 |
+
https://platform.deepseek.com
|
| 143 |
+
|
| 144 |
+
HF ๆๆกฃ๏ผ
|
| 145 |
+
https://huggingface.co/docs/hub/spaces
|
| 146 |
+
|
| 147 |
+
|
| 148 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 149 |
+
|
| 150 |
+
้ๆฉไฝ ๅๆฌข็ๆนๅผๅผๅง้จ็ฝฒๅง๏ผ
|
| 151 |
+
|
| 152 |
+
ๆจ่๏ผไฝฟ็จไธ้ฎ่ๆฌ๏ผๆๅฟซๆ็ฎๅ๏ผ
|
| 153 |
+
|
| 154 |
+
็ฅไฝ ้จ็ฝฒ้กบๅฉ๏ผ๐โจ
|
| 155 |
+
|
| 156 |
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
| 157 |
+
|