kootaeng2 commited on
Commit
1e4a71d
ยท
1 Parent(s): 136c55f

Docs: Finalize and polish README.md

Browse files
Files changed (1) hide show
  1. README.md +55 -37
README.md CHANGED
@@ -7,7 +7,7 @@ sdk: docker
7
  app_port: 7860
8
  pinned: false
9
  ---
10
- ๐Ÿค– ์ผ๊ธฐ ๊ธฐ๋ฐ˜ ๊ฐ์ • ๋ถ„์„ ๋ฐ ์ฝ˜ํ…์ธ  ์ถ”์ฒœ ์›น
11
  ํ•˜๋ฃจ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ ์“ฐ๋Š” ๋‹น์‹ ์˜ ์ผ๊ธฐ, ๊ทธ ์†์— ์ˆจ๊ฒจ์ง„ ์ง„์งœ ๊ฐ์ •์€ ๋ฌด์—‡์ผ๊นŒ์š”?
12
  ์ด ํ”„๋กœ์ ํŠธ๋Š” AI๋ฅผ ํ†ตํ•ด ๋‹น์‹ ์˜ ๊ธ€์„ ์ดํ•ดํ•˜๊ณ , ๊ฐ์ •์— ๋ชฐ์ž…ํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ์ƒˆ๋กœ์šด ํ™œ๋ ฅ์ด ํ•„์š”ํ•  ๋•Œ ๋งž์ถคํ˜• ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ๋‹น์‹ ๋งŒ์˜ ๊ฐ์„ฑ ๋น„์„œ์ž…๋‹ˆ๋‹ค.
13
 
@@ -17,7 +17,7 @@ pinned: false
17
 
18
  ๐Ÿš€ ๋ผ์ด๋ธŒ ๋ฐ๋ชจ (Live Demo)
19
  ๐Ÿ‘‰ https://huggingface.co/spaces/koons/emotion-chatbot
20
- (์œ„ ์ฃผ์†Œ๋Š” ์ด์ „์— ํ™•์ธ๋œ Space ID ๊ธฐ์ค€์ด๋ฉฐ, ์‹ค์ œ ์ตœ์ข… ๋ฐฐํฌ๋œ ์ฃผ์†Œ๋กœ ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”.)
21
 
22
  <br>
23
 
@@ -25,8 +25,8 @@ pinned: false
25
 
26
  <br>
27
 
28
- โœจ ํ•ต์‹ฌ ๊ธฐ๋Šฅ
29
- ๐Ÿค– ํ…์ŠคํŠธ ์† ๊ฐ์ • ํƒ์ƒ‰: klue/roberta-base ๋ชจ๋ธ์„ ํ•œ๊ตญ์–ด '๊ฐ์„ฑ๋Œ€ํ™” ๋ง๋ญ‰์น˜' ๋ฐ์ดํ„ฐ๋กœ ๋ฏธ์„ธ์กฐ์ •ํ•˜์—ฌ, ์ผ๊ธฐ ์†์— ๋‹ด๊ธด ๋ณตํ•ฉ์ ์ธ ๊ฐ์ •์„ 85% ์ด์ƒ์˜ ์ •ํ™•๋„๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.
30
 
31
  ๐ŸŽญ ๊ฐ์„ฑ ๋งž์ถค ํ๋ ˆ์ด์…˜: ๋ถ„์„๋œ ๊ฐ์ •์„ ๋” ๊นŠ์ด ์Œ๋ฏธํ•˜๊ณ  ์‹ถ์„ ๋•Œ(์ˆ˜์šฉ)์™€ ์ƒˆ๋กœ์šด ๊ธฐ๋ถ„์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ(์ „ํ™˜), ๋‘ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋งž์ถฐ ์˜ํ™”, ์Œ์•…, ์ฑ…์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
32
 
@@ -41,19 +41,17 @@ pinned: false
41
  Backend Python 3.10, Flask, Gunicorn
42
  Frontend HTML, CSS, JavaScript
43
  AI / Data PyTorch, Hugging Face Transformers, Scikit-learn, Pandas
44
- Deployment Docker, GitHub Actions, Hugging Face Spaces
45
  Version Control Git, GitHub, Git LFS
46
 
47
  Sheets๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ
48
- <br>
49
 
50
- ๋ฐฐํฌ ์•„ํ‚คํ…์ฒ˜ (CI/CD Pipeline)
51
- ์ด ํ”„๋กœ์ ํŠธ๋Š” GitHub Actions๋ฅผ ์ด์šฉํ•œ ์ž๋™ํ™”๋œ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.
52
  Git Push (main ๋ธŒ๋žœ์น˜) โ†’ GitHub Actions (CI/CD ํŠธ๋ฆฌ๊ฑฐ) โ†’ Dockerfile ๋นŒ๋“œ โ†’ Hugging Face Spaces (์ž๋™ ๋ฐฐํฌ ๋ฐ ์„œ๋น™)
53
 
54
  <br>
55
 
56
- ๐Ÿ› ๏ธ ์‹œ์ž‘ํ•˜๊ธฐ: ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰
57
  ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ
58
  Python 3.10
59
 
@@ -64,16 +62,14 @@ Bash
64
 
65
  git clone https://github.com/kootaeng2/Emotion-Chatbot-App.git
66
  cd Emotion-Chatbot-App
67
- (์ €์žฅ์†Œ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋ฉด, ์œ„ ์ฃผ์†Œ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“œ์‹  ์ฃผ์†Œ๋กœ ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”.)
68
-
69
- 2. ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜
70
  Bash
71
 
72
- # Python 3.10 ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ํ™œ์„ฑํ™”
73
- py -3.10 -m venv venv
74
- .\venv\Scripts\Activate
75
 
76
- # PyTorch ๋ฐ ๊ธฐํƒ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜
77
  pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
78
  pip install -r requirements.txt
79
  3. AI ๋ชจ๋ธ ์ง์ ‘ ํ›ˆ๋ จํ•˜๊ธฐ (์ตœ์ดˆ 1ํšŒ ํ•„์ˆ˜)
@@ -90,36 +86,58 @@ python src/app.py
90
 
91
  <br>
92
 
93
- ๐Ÿ“‚ ์ตœ์ข… ํด๋” ๊ตฌ์กฐ
94
- ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€๋…์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด Flask ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ‘œ์ค€ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
95
-
96
  Emotion-Chatbot-App/
97
- โ””โ”€โ”€ src/
98
- โ”œโ”€โ”€ app.py # Flask ์›น ์„œ๋ฒ„ ์‹คํ–‰ ํŒŒ์ผ
99
- โ”œโ”€โ”€ emotion_engine.py # ๊ฐ์ • ๋ถ„์„ ์—”์ง„ ๋ชจ๋“ˆ
100
- โ”œโ”€โ”€ recommender.py # ์ถ”์ฒœ ๋กœ์ง ๋ชจ๋“ˆ
101
- โ”œโ”€โ”€ static/ # CSS, ํด๋ผ์ด์–ธํŠธ JS ํŒŒ์ผ
102
- โ””โ”€โ”€ templates/ # HTML ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ
103
- ... (๊ธฐํƒ€ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ๋ฐ ํด๋”) ...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  <br>
105
 
106
- ๐Ÿง—โ€โ™‚๏ธ ์ฃผ์š” ๊ฐœ๋ฐœ ๋„์ „ ๊ณผ์ œ ๋ฐ ํ•ด๊ฒฐ ๊ณผ์ •
107
- ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‹จ์ˆœ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๋„˜์–ด, ์‹ค์ œ ์„œ๋น„์Šค ๋ฐฐํฌ ๊ณผ์ •์—์„œ ๋ฐœ์ƒ๏ฟฝ๏ฟฝ๋Š” ๋ณต์žกํ•œ ๋ฌธ์ œ๋“ค์„ ์ฒด๊ณ„์ ์œผ๋กœ ํ•ด๊ฒฐํ•œ ๊ฒฝํ—˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
 
 
 
 
 
 
 
 
108
 
109
- Git LFS ๋ฐ ํžˆ์Šคํ† ๋ฆฌ ๋ฌธ์ œ ํ•ด๊ฒฐ:
110
 
111
- ๋ฌธ์ œ: 1GB๊ฐ€ ๋„˜๋Š” AI ๋ชจ๋ธ ํŒŒ์ผ๋กœ ์ธํ•ด git push ์‹œ ํƒ€์ž„์•„์›ƒ ๋ฐ ์šฉ๋Ÿ‰ ์ œํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ.
112
 
113
- ํ•ด๊ฒฐ: Git LFS๋ฅผ ๋„์ž…ํ•˜๊ณ , ๊ณผ๊ฑฐ ํžˆ์Šคํ† ๋ฆฌ์— ๋‚จ์€ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ํ”์ ์„ git filter-repo ๋ช…๋ น์–ด๋กœ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜์—ฌ ์ €์žฅ์†Œ๋ฅผ ๋ฐฐํฌ์— ์ตœ์ ํ™”. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์ž ์ €์žฅ์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ณผ๊ฐํ•œ ๊ฒฐ์ •์„ ํ†ตํ•ด ๊ทผ๋ณธ ์›์ธ์„ ํ•ด๊ฒฐ.
114
 
115
- Hugging Face ๋ฐฐํฌ ์ž๋™ํ™” (CI/CD):
116
 
117
- ๋ฌธ์ œ: ์ˆ˜๋™ ๋ฐฐํฌ์˜ ๋น„ํšจ์œจ์„ฑ์„ ๊ฐœ์„ ํ•˜๊ณ , GitHub์™€ ๋ฐฐํฌ ์„œ๋ฒ„ ๊ฐ„์˜ ์ธ์ฆ ๋ฐ ๋™๊ธฐํ™” ์˜ค๋ฅ˜ ๋ฐœ์ƒ.
118
 
119
- ํ•ด๊ฒฐ: Dockerfile๋กœ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ํ‘œ์ค€ํ™”ํ•˜๊ณ , GitHub Actions ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ main ๋ธŒ๋žœ์น˜์— push ํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ Hugging Face Spaces์— ๋ฐฐํฌ๋˜๋„๋ก CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ์™„์„ฑ.
120
 
121
- Flask ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ ๋ฌธ์ œ:
122
 
123
- ๋ฌธ์ œ: ๋กœ์ปฌ์—์„œ๋Š” ์ •์ƒ ์ž‘๋™ํ•˜๋˜ ์•ฑ์ด, Docker ๋ฐ Gunicorn ํ™˜๊ฒฝ์˜ ์„œ๋ฒ„์— ๋ฐฐํฌ๋˜์ž ModuleNotFoundError, TemplateNotFound ๋“ฑ ๊ฒฝ๋กœ ๊ด€๋ จ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ๋ฐœ์ƒ.
124
 
125
- ํ•ด๊ฒฐ: gunicorn์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ณ , Python์˜ **์ƒ๋Œ€ ๊ฒฝ๋กœ ์ž„ํฌํŠธ(relative import)**๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ ๊ฒฝ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ. ๋˜ํ•œ Flask์˜ ๊ธฐ๋ณธ ๊ทœ์น™์— ๋งž๊ฒŒ templates ๋ฐ static ํด๋”๋ฅผ app.py๊ฐ€ ์žˆ๋Š” src ํด๋” ๋‚ด๋ถ€๋กœ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ตœ์ข… ํ•ด๊ฒฐ.
 
7
  app_port: 7860
8
  pinned: false
9
  ---
10
+ ๐Ÿค– ์ผ๊ธฐ ๊ธฐ๋ฐ˜ ๊ฐ์ • ๋ถ„์„ ๋ฐ ์ฝ˜ํ…์ธ  ์ถ”์ฒœ ์›น (v2.0)
11
  ํ•˜๋ฃจ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ ์“ฐ๋Š” ๋‹น์‹ ์˜ ์ผ๊ธฐ, ๊ทธ ์†์— ์ˆจ๊ฒจ์ง„ ์ง„์งœ ๊ฐ์ •์€ ๋ฌด์—‡์ผ๊นŒ์š”?
12
  ์ด ํ”„๋กœ์ ํŠธ๋Š” AI๋ฅผ ํ†ตํ•ด ๋‹น์‹ ์˜ ๊ธ€์„ ์ดํ•ดํ•˜๊ณ , ๊ฐ์ •์— ๋ชฐ์ž…ํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ์ƒˆ๋กœ์šด ํ™œ๋ ฅ์ด ํ•„์š”ํ•  ๋•Œ ๋งž์ถคํ˜• ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ๋‹น์‹ ๋งŒ์˜ ๊ฐ์„ฑ ๋น„์„œ์ž…๋‹ˆ๋‹ค.
13
 
 
17
 
18
  ๐Ÿš€ ๋ผ์ด๋ธŒ ๋ฐ๋ชจ (Live Demo)
19
  ๐Ÿ‘‰ https://huggingface.co/spaces/koons/emotion-chatbot
20
+ (์œ„ ์ฃผ์†Œ๋Š” ์‹ค์ œ ๋ฐฐํฌ๋œ Space ID ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.)
21
 
22
  <br>
23
 
 
25
 
26
  <br>
27
 
28
+ โœจ ํ•ต์‹ฌ ๊ธฐ๋Šฅ (Key Features)
29
+ ๐Ÿค– AI ๊ธฐ๋ฐ˜ ๊ฐ์ • ๋ถ„์„: klue/roberta-base ๋ชจ๋ธ์„ 'AI Hub ๊ฐ์„ฑ๋Œ€ํ™” ๋ง๋ญ‰์น˜' ๋ฐ์ดํ„ฐ๋กœ ๋ฏธ์„ธ ์กฐ์ •(Fine-tuning)ํ•˜์—ฌ, ์ผ๊ธฐ ์†์— ๋‹ด๊ธด ๋ณตํ•ฉ์ ์ธ ๊ฐ์ •์„ 85% ์ด์ƒ์˜ ์ •ํ™•๋„๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.
30
 
31
  ๐ŸŽญ ๊ฐ์„ฑ ๋งž์ถค ํ๋ ˆ์ด์…˜: ๋ถ„์„๋œ ๊ฐ์ •์„ ๋” ๊นŠ์ด ์Œ๋ฏธํ•˜๊ณ  ์‹ถ์„ ๋•Œ(์ˆ˜์šฉ)์™€ ์ƒˆ๋กœ์šด ๊ธฐ๋ถ„์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ(์ „ํ™˜), ๋‘ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋งž์ถฐ ์˜ํ™”, ์Œ์•…, ์ฑ…์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
32
 
 
41
  Backend Python 3.10, Flask, Gunicorn
42
  Frontend HTML, CSS, JavaScript
43
  AI / Data PyTorch, Hugging Face Transformers, Scikit-learn, Pandas
44
+ Deployment Docker, GitHub Actions (CI/CD), Hugging Face Spaces
45
  Version Control Git, GitHub, Git LFS
46
 
47
  Sheets๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ
48
+ ๋ฐฐํฌ ์•„ํ‚คํ…์ฒ˜ (CI/CD Pipeline):
49
 
 
 
50
  Git Push (main ๋ธŒ๋žœ์น˜) โ†’ GitHub Actions (CI/CD ํŠธ๋ฆฌ๊ฑฐ) โ†’ Dockerfile ๋นŒ๋“œ โ†’ Hugging Face Spaces (์ž๋™ ๋ฐฐํฌ ๋ฐ ์„œ๋น™)
51
 
52
  <br>
53
 
54
+ ๐Ÿ› ๏ธ ์‹œ์ž‘ํ•˜๊ธฐ: ๋กœ์ปฌ ํ™˜๊ฒฝ ์„ค์ • ๋ฐ ์‹คํ–‰
55
  ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ
56
  Python 3.10
57
 
 
62
 
63
  git clone https://github.com/kootaeng2/Emotion-Chatbot-App.git
64
  cd Emotion-Chatbot-App
65
+ 2. ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ (Anaconda ๊ถŒ์žฅ)
 
 
66
  Bash
67
 
68
+ # Anaconda ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ํ™œ์„ฑํ™”
69
+ conda create -n sentiment_env python=3.10
70
+ conda activate sentiment_env
71
 
72
+ # ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ (PyTorch ๋จผ์ €, ์ดํ›„ requirements.txt)
73
  pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
74
  pip install -r requirements.txt
75
  3. AI ๋ชจ๋ธ ์ง์ ‘ ํ›ˆ๋ จํ•˜๊ธฐ (์ตœ์ดˆ 1ํšŒ ํ•„์ˆ˜)
 
86
 
87
  <br>
88
 
89
+ ๐Ÿ“‚ ํ”„๋กœ์ ํŠธ ํด๋” ๊ตฌ์กฐ
 
 
90
  Emotion-Chatbot-App/
91
+ โ”‚
92
+ โ”œโ”€โ”€ .github/
93
+ โ”‚ โ””โ”€โ”€ workflows/
94
+ โ”‚ โ””โ”€โ”€ sync-to-hub.yml # GitHub Actions ์ž๋™ ๋ฐฐํฌ ์›Œํฌํ”Œ๋กœ์šฐ
95
+ โ”‚
96
+ โ”œโ”€โ”€ korean-emotion-classifier-final/ # ์ถ”๋ก (Inference)์šฉ ์ตœ์ข… AI ๋ชจ๋ธ
97
+ โ”‚
98
+ โ”œโ”€โ”€ notebooks/
99
+ โ”‚ โ””โ”€โ”€ 1_explore_data.py # ๋ฐ์ดํ„ฐ ํƒ์ƒ‰์šฉ ๋…ธํŠธ๋ถ
100
+ โ”‚
101
+ โ”œโ”€โ”€ scripts/
102
+ โ”‚ โ””โ”€โ”€ train_model.py # AI ๋ชจ๋ธ ํ›ˆ๋ จ ์Šคํฌ๋ฆฝํŠธ
103
+ โ”‚
104
+ โ”œโ”€โ”€ src/
105
+ โ”‚ โ”œโ”€โ”€ app.py # Flask ์›น ์„œ๋ฒ„ ์‹คํ–‰ ํŒŒ์ผ
106
+ โ”‚ โ”œโ”€โ”€ emotion_engine.py # ๊ฐ์ • ๋ถ„์„ ์—”์ง„ ๋ชจ๋“ˆ
107
+ โ”‚ โ”œโ”€โ”€ recommender.py # ์ฝ˜ํ…์ธ  ์ถ”์ฒœ ๋ชจ๋“ˆ
108
+ โ”‚ โ”œโ”€โ”€ static/ # CSS, Frontend JS ๋“ฑ ์ •์  ํŒŒ์ผ
109
+ โ”‚ โ””โ”€โ”€ templates/ # HTML ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ
110
+ โ”‚
111
+ โ”œโ”€โ”€ Dockerfile # Hugging Face ๋ฐฐํฌ์šฉ Docker ์„ค์ •
112
+ โ”œโ”€โ”€ README.md # ํ”„๋กœ์ ํŠธ ์„ค๋ช…์„œ (ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ํŒŒ์ผ)
113
+ โ””โ”€โ”€ requirements.txt # ํ•„์ˆ˜ Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชฉ๋ก
114
  <br>
115
 
116
+ ๐Ÿง—โ€โ™‚๏ธ ์ฃผ์š” ๊ฐœ๋ฐœ ๋„์ „ ๊ณผ์ œ ๋ฐ ํ•ด๊ฒฐ ๊ณผ์ • (Troubleshooting Journey)
117
+ ์ด ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€์žฅ ํฐ ์„ฑ๊ณผ๋Š” ๋‹จ์ˆœ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๋„˜์–ด, ์‹ค์ œ ์„œ๋น„์Šค ๋ฐฐํฌ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ณต์žกํ•˜๊ณ  ๊นŠ์ด ์žˆ๋Š” ๋ฌธ์ œ๋“ค์„ ์ฒด๊ณ„์ ์œผ๋กœ ํ•ด๊ฒฐํ•œ ๊ฒฝํ—˜์ž…๋‹ˆ๋‹ค.
118
+
119
+ ์›์ธ ๋ถˆ๋ช…์˜ OS ๋ ˆ๋ฒจ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ (stat: ... not NoneType):
120
+
121
+ ๋ฌธ์ œ: ๋กœ์ปฌ Windows ํ™˜๊ฒฝ์—์„œ transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํŒŒ์ผ์„ ๋กœ๋“œํ•˜์ง€ ๋ชปํ•˜๋Š” ์›์ธ ๋ถˆ๋ช…์˜ OS ์ˆ˜์ค€ ์˜ค๋ฅ˜๊ฐ€ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ƒ.
122
+
123
+ ํ•ด๊ฒฐ: venv์˜ ๋ถˆ์•ˆ์ •์„ฑ์„ ์˜์‹ฌํ•˜๊ณ  Anaconda ํ™˜๊ฒฝ์œผ๋กœ ์ด์ „ํ•˜์—ฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ต์ œํ–ˆ์œผ๋ฉฐ, Windows์™€ Linux์˜ ๊ฒฝ๋กœ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ ˆ๋Œ€ ๊ฒฝ๋กœ ์‚ฌ์šฉ ๋ฐ ๊ฒฝ๋กœ ๊ตฌ๋ถ„์ž ์ •๊ทœํ™”๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ์ตœ์ข… ํ•ด๊ฒฐ. ์ด๋ฅผ ํ†ตํ•ด ์šด์˜์ฒด์ œ ๊ฐ„ ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด๋ฅผ ์–ป์Œ.
124
+
125
+ ๋Œ€์šฉ๋Ÿ‰ AI ๋ชจ๋ธ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ (Git LFS & History Rewriting):
126
 
127
+ ๋ฌธ์ œ: 1GB๊ฐ€ ๋„˜๋Š” AI ๋ชจ๋ธ ๋ฐ ํ›ˆ๋ จ ๋ถ€์‚ฐ๋ฌผ ํŒŒ์ผ๋กœ ์ธํ•ด git push ์‹œ ํƒ€์ž„์•„์›ƒ(408) ๋ฐ GitHub ์šฉ๋Ÿ‰ ์ œํ•œ(GH001) ์˜ค๋ฅ˜ ๋ฐœ์ƒ.
128
 
129
+ ํ•ด๊ฒฐ: Git LFS๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๊ณ , ๊ณผ๊ฑฐ ํžˆ์Šคํ† ๋ฆฌ์— ๋‚จ์€ ๋ถˆํ•„์š”ํ•œ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์˜ ํ”์ ์„ git filter-repo ๋ช…๋ น์–ด๋กœ ์™„์ „ํžˆ ์ œ๊ฑฐ. ์ตœ์ข…์ ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ์ง€์†๋˜์ž ์ €์žฅ์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๊นจ๋—ํ•œ ๋ฒ„์ „๋งŒ ํ‘ธ์‹œํ•˜๋Š” ๊ณผ๊ฐํ•œ ๊ฒฐ์ •์„ ํ†ตํ•ด ๊ทผ๋ณธ ์›์ธ์„ ํ•ด๊ฒฐ.
130
 
131
+ ํด๋ผ์šฐ๋“œ ์ž๋™ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• (CI/CD):
132
 
133
+ ๋ฌธ์ œ: Hugging Face Space ๋ฐฐํฌ ๊ณผ์ •์—์„œ ๊ตฌ์‹ ์ธ์ฆ ๋ฐฉ์‹ ์˜ค๋ฅ˜, requirements.txt ๋ˆ„๋ฝ, Python ๋ชจ๋“ˆ ํƒ์ƒ‰ ๊ฒฝ๋กœ ๋ฌธ์ œ(ModuleNotFoundError), Flask ํ…œํ”Œ๋ฆฟ ๊ฒฝ๋กœ ๋ฌธ์ œ(TemplateNotFound) ๋“ฑ ๋‹ค์–‘ํ•œ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ๋ฐœ์ƒ.
134
 
135
+ ํ•ด๊ฒฐ:
136
 
137
+ **Dockerfile**์„ ์ž‘์„ฑํ•˜์—ฌ ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ๋“  ๋™์ผํ•˜๊ฒŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ํ™”๋œ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•.
138
 
139
+ GitHub Actions ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ตœ์‹  ๊ณต์‹ Action(huggingface/sync-to-hub)์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์ธ์ฆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ.
140
 
141
+ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ์˜ Python ์ž„ํฌํŠธ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ณ  **์ƒ๋Œ€ ๊ฒฝ๋กœ ์ž„ํฌํŠธ(relative import)**๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ ๊ฒฝ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ.
142
 
143
+ Flask์˜ ๋™์ž‘ ์›๋ฆฌ์— ๋งž์ถฐ templates ํด๋”๋ฅผ src ๋‚ด๋ถ€๋กœ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋“  ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋ฐฐํฌ์— ์„ฑ๊ณต.