File size: 4,919 Bytes
59c860e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# 🚀 Quick Start Guide for Hugging Face Spaces

## Krok 1: Przygotowanie Repozytorium

### Pliki które MUSZĄ być w repo:
```
✅ app.py
✅ requirements.txt
✅ config.py
✅ agent/ (cały folder)
✅ models/ (cały folder)
✅ database/ lub vector_store_client.py
✅ README.md (z YAML header)
✅ .env.example
✅ lancedb/ (folder z danymi - użyj Git LFS jeśli >10MB)
```

### Pliki które NIE POWINNY być w repo:
```
❌ .env (zawiera secrets!)
❌ cache/ (lokalny cache)
❌ __pycache__/
❌ *.pyc
```

## Krok 2: Konfiguracja na Hugging Face

### A. Utwórz nowy Space
1. Przejdź do https://huggingface.co/new-space
2. Wybierz:
   - **SDK:** Gradio
   - **Hardware:** CPU Basic (Free)
   - **Visibility:** Public lub Private

### B. Dodaj Secrets (KRYTYCZNE!)
W ustawieniach Space → Settings → Repository secrets:

```
Name: OPENAI_API_KEY
Value: sk-proj-... (twój klucz)
```

Opcjonalnie:
```
SERVER_HOST=0.0.0.0
SERVER_PORT=7860
LOG_LEVEL=INFO
```

### C. Sprawdź README.md header
```yaml
---
title: JacekAI - A11y Expert
emoji: ♿
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 4.44.0
python_version: 3.10
app_file: app.py
pinned: true
short_description: Inteligentny asystent do spraw dostępności cyfrowej
---
```

## Krok 3: Upload do Hugging Face

### Opcja A: Git CLI
```bash
# Sklonuj Space
git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME
cd YOUR_SPACE_NAME

# Skopiuj pliki
cp -r /path/to/JacekAI/* .

# Usuń niepotrzebne
rm -rf .env cache/ __pycache__/

# Commit i push
git add .
git commit -m "Initial deploy with asyncio fixes"
git push
```

### Opcja B: Hugging Face Web UI
1. Przejdź do Files → Add file
2. Upload wszystkie pliki (oprócz .env, cache/, __pycache__/)
3. Dla dużych plików (lancedb/) użyj Git LFS

## Krok 4: Monitorowanie Startu

### Sprawdź logi w czasie rzeczywistym:
W Space kliknij **Logs** (prawy górny róg)

### ✅ Powinny pojawić się:
```
Initializing A11y Expert Agent...
Connecting to LanceDB at: ./lancedb
✅ Connected to LanceDB
✅ A11y Expert Agent is ready!
Launching Gradio app...
Running on public URL: https://...
```

### ❌ Jeśli widzisz błędy:

#### Error: "OPENAI_API_KEY is required"
**Rozwiązanie:** Dodaj klucz w Secrets (Krok 2B)

#### Error: "Table 'a11y_expert' doesn't exist"
**Rozwiązanie:** 
- Sprawdź czy folder `lancedb/` jest w repo
- Jeśli nie ma danych, uruchom ETL script lokalnie i upload

#### Error: "RuntimeError: Event loop is closed"
**Rozwiązanie:** Upewnij się, że używasz zaktualizowanego app.py

#### Error: Module not found
**Rozwiązanie:** 
- Sprawdź czy wszystkie foldery mają `__init__.py`
- Sprawdź requirements.txt

## Krok 5: Weryfikacja Działania

### Test 1: Sprawdź interfejs
- Space powinien pokazać chat interface
- Przykładowe pytania powinny być widoczne

### Test 2: Zadaj testowe pytanie
```
"Co to jest WCAG?"
```

### Test 3: Sprawdź streaming
- Odpowiedź powinna pojawiać się stopniowo (nie całe zdanie naraz)

### Test 4: Test języka
```
"What is ARIA?"  → Odpowiedź po angielsku
"Co to jest ARIA?" → Odpowiedź po polsku
```

## Krok 6: Troubleshooting

### Space się restartuje co kilka minut
**Przyczyna:** Timeout na Free tier (10 minut bezczynności)
**Rozwiązanie:** Upgrade do GPU przestrzeni lub akceptuj restart

### Space nie startuje (Build failed)
1. Sprawdź logi budowania
2. Zweryfikuj requirements.txt (wszystkie biblioteki dostępne na PyPI?)
3. Sprawdź Python version w README.md (3.10 recommended)

### Wolne odpowiedzi
1. LanceDB może być duża - rozważ optymalizację
2. OpenAI API może mieć rate limiting
3. Free tier HF ma ograniczenia CPU

### Cache nie działa
- diskcache będzie działać, ale będzie resetowany przy restarcie Space
- To normalne na Hugging Face Spaces

## Krok 7: Optymalizacja (opcjonalne)

### A. Dodaj health check
```python
# W app.py
@demo.additional_routes
def health():
    return {"status": "ok"}
```

### B. Zmniejsz rozmiar bazy danych
```bash
# Lokalnie
python compact_database.py
# Potem upload zmniejszonej bazy
```

### C. Użyj GPU (jeśli masz dostęp)
W README.md header:
```yaml
hardware: a10g-small
```

## ✅ Checklist Finalna

Przed ogłoszeniem Space jako "Production Ready":

- [ ] Aplikacja startuje bez błędów
- [ ] Agent odpowiada na pytania
- [ ] Streaming działa
- [ ] Język jest wykrywany prawidłowo
- [ ] Przykładowe pytania działają
- [ ] Brak ostrzeżeń w logach
- [ ] OPENAI_API_KEY jest w Secrets (NIE w kodzie!)
- [ ] README.md jest czytelny i informacyjny
- [ ] Space ma odpowiedni tytuł i opis

## 🎉 Gotowe!

Twój Space jest teraz live na:
```
https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME
```

---

## 📞 Pomoc

- **Problemy z asyncio?** → Zobacz `FIXES_SUMMARY.md`
- **Problemy z deployment?** → Zobacz `README_DEPLOYMENT.md`
- **Ogólne pytania?** → Hugging Face Forum

**Powodzenia!** 🚀