File size: 3,703 Bytes
ae31891
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208adf4
9c8de54
ef22967
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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
115
116
117
118
119
120
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
147
148
# Hugging Face Spaces μ—…λ‘œλ“œ κ°€μ΄λ“œ

이 κ°€μ΄λ“œλŠ” Hugging Face Spaces에 νŒŒμΌμ„ μ—…λ‘œλ“œν•˜λŠ” 방법을 μ„€λͺ…ν•©λ‹ˆλ‹€.

## 방법 1: Git을 μ‚¬μš©ν•œ μ—…λ‘œλ“œ (ꢌμž₯)

### 1. Hugging Face Spaces 생성

1. [Hugging Face Spaces](https://huggingface.co/spaces) 접속
2. "Create new Space" 클릭
3. μ„€μ •:
   - **Space name**: μ›ν•˜λŠ” 이름
   - **SDK**: Docker
   - **Docker template**: Blank
   - **Hardware**: CPU Basic (λ˜λŠ” ν•„μš”μ— 따라)
   - **Visibility**: Public λ˜λŠ” Private

### 2. Git μ €μž₯μ†Œ 클둠

Spaces 생성 ν›„, Hugging Faceμ—μ„œ μ œκ³΅ν•˜λŠ” Git URL을 μ‚¬μš©ν•˜μ—¬ 클둠:

```bash
# Hugging Faceμ—μ„œ μ œκ³΅ν•˜λŠ” Git URL μ‚¬μš©
git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME
cd YOUR_SPACE_NAME
```

### 3. ν•„μš”ν•œ 파일 볡사

둜컬 ν”„λ‘œμ νŠΈμ—μ„œ ν•„μš”ν•œ νŒŒμΌλ“€μ„ 볡사:

```bash
# Windows PowerShellμ—μ„œ μ‹€ν–‰
# ν”„λ‘œμ νŠΈ 루트 λ””λ ‰ν† λ¦¬μ—μ„œ μ‹€ν–‰

# ν•„μˆ˜ 파일 볡사
Copy-Item ..\app.py .
Copy-Item ..\Dockerfile .
Copy-Item ..\requirements.txt .
Copy-Item ..\README_HF.md README.md

# 디렉토리 볡사
Copy-Item -Recurse ..\app .
Copy-Item -Recurse ..\templates .
Copy-Item -Recurse ..\static .
```

### 4. Git 컀밋 및 ν‘Έμ‹œ

```bash
git add .
git commit -m "Initial deployment"
git push
```

## 방법 2: μ›Ή μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•œ μ—…λ‘œλ“œ

1. Hugging Face Spaces νŽ˜μ΄μ§€ 접속
2. "Files and versions" νƒ­ 클릭
3. "Add file" > "Upload files" 클릭
4. λ‹€μŒ νŒŒμΌλ“€μ„ λ“œλž˜κ·Έ μ•€ λ“œλ‘­μœΌλ‘œ μ—…λ‘œλ“œ:

### ν•„μˆ˜ 파일 λͺ©λ‘

#### 루트 디렉토리 파일
- `app.py`
- `Dockerfile`
- `requirements.txt`
- `README.md` (README_HF.md의 λ‚΄μš© μ‚¬μš©)

#### 디렉토리 (폴더 전체 μ—…λ‘œλ“œ)
- `app/` (전체 디렉토리)
- `templates/` (전체 디렉토리)
- `static/` (전체 디렉토리)

## μ—…λ‘œλ“œν•˜μ§€ 말아야 ν•  파일/폴더

λ‹€μŒ ν•­λͺ©μ€ `.gitignore`에 ν¬ν•¨λ˜μ–΄ μžˆμœΌλ―€λ‘œ μ—…λ‘œλ“œν•˜μ§€ λ§ˆμ„Έμš”:

- `venv/` - 가상 ν™˜κ²½
- `instance/` - λ°μ΄ν„°λ² μ΄μŠ€ 파일
- `uploads/` - μ—…λ‘œλ“œλœ 파일
- `vector_db/` - 벑터 λ°μ΄ν„°λ² μ΄μŠ€
- `logs/` - 둜그 파일
- `*.pyc`, `__pycache__/` - Python μΊμ‹œ
- `.env` - ν™˜κ²½ λ³€μˆ˜ 파일 (민감 정보)
- `.git/` - Git μ €μž₯μ†Œ

## ν™˜κ²½ λ³€μˆ˜ μ„€μ •

파일 μ—…λ‘œλ“œ ν›„, Settings > Repository secretsμ—μ„œ ν™˜κ²½ λ³€μˆ˜ μ„€μ •:

### ν•„μˆ˜
```
SECRET_KEY=your-random-secret-key-here
```

### 선택사항
```
GEMINI_API_KEY=your-gemini-api-key
DATABASE_URL=sqlite:///instance/finance_analysis.db
```

## 배포 확인

1. Spaces νŽ˜μ΄μ§€μ—μ„œ "Logs" νƒ­ 확인
2. λΉŒλ“œκ°€ μ™„λ£Œλ˜λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 접속 ν…ŒμŠ€νŠΈ
3. 였λ₯˜κ°€ 있으면 둜그 확인

## λΉ λ₯Έ μ—…λ‘œλ“œ 슀크립트 (Windows PowerShell)

ν”„λ‘œμ νŠΈ 루트 λ””λ ‰ν† λ¦¬μ—μ„œ μ‹€ν–‰:

```powershell
# Hugging Face Spaces 디렉토리 경둜 μ„€μ •
$HF_SPACE_DIR = "C:\path\to\huggingface\space"

# ν•„μˆ˜ 파일 볡사
Copy-Item app.py $HF_SPACE_DIR\
Copy-Item Dockerfile $HF_SPACE_DIR\
Copy-Item requirements.txt $HF_SPACE_DIR\
Copy-Item README_HF.md "$HF_SPACE_DIR\README.md"

# 디렉토리 볡사
Copy-Item -Recurse app "$HF_SPACE_DIR\app"
Copy-Item -Recurse templates "$HF_SPACE_DIR\templates"
Copy-Item -Recurse static "$HF_SPACE_DIR\static"

Write-Host "파일 볡사 μ™„λ£Œ!"
```

## 문제 ν•΄κ²°

### λΉŒλ“œ μ‹€νŒ¨
- `requirements.txt`의 νŒ¨ν‚€μ§€ 버전 확인
- λ‘œκ·Έμ—μ„œ 였λ₯˜ λ©”μ‹œμ§€ 확인

### λŸ°νƒ€μž„ 였λ₯˜
- ν™˜κ²½ λ³€μˆ˜κ°€ μ˜¬λ°”λ₯΄κ²Œ μ„€μ •λ˜μ—ˆλŠ”μ§€ 확인
- `app.py`κ°€ μ˜¬λ°”λ₯Έ 포트λ₯Ό μ‚¬μš©ν•˜λŠ”μ§€ 확인 (7860)

### 파일 λˆ„λ½
- λͺ¨λ“  ν•„μˆ˜ 디렉토리(`app/`, `templates/`, `static/`)κ°€ μ—…λ‘œλ“œλ˜μ—ˆλŠ”μ§€ 확인