PGŽ Sport Platform — Round 1+2 baseline (sport2.html + API)
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
# PGŽ SPORT — DEEP LEARNING & FINE-TUNING — 29.04.2026
|
||||
|
||||
## 🎯 Što je urađeno u ovom run-u
|
||||
|
||||
### 1. Audit + dijagnostika
|
||||
- 25 starih PGŽ ZS dokumenata (full text scrape)
|
||||
- 144 dokumenata bez full text (samo metadata)
|
||||
- 408 sportaša bez DOB (HNS scraper)
|
||||
- 0 cross-linkova
|
||||
|
||||
### 2. Expert legal seed — 6 ključnih dokumenata sa stručnim full-text:
|
||||
- ✅ **Zakon o sportu (NN 141/22, 122/24)** — full sadrzaj sa člancima o pravnim osobama, sportašima, registru, financiranju, kategorizaciji, sigurnosti
|
||||
- ✅ **Zakon o udrugama (NN 74/14)** — cijeli zakon sa pravilima statuta, tijelima, članstvom
|
||||
- ✅ **Zakon o sprečavanju dopinga (NN 70/17)** — TUE postupak, sankcije, HASMS nadležnost
|
||||
- ✅ **Pravilnik o kategorizaciji sportaša HOO** — sve 5 kategorija (I-V), uvjeti, prava, postupak
|
||||
- ✅ **Pravilnik o registraciji igrača HNS (2024)** — dobne kategorije, transferi, FIFA TMS
|
||||
- ✅ **Pravilnik o kriterijima JPS PGŽ** — bodovni sustav 40/25/15/10/10
|
||||
|
||||
### 3. Re-embedding — 556 chunkova u Qdrant
|
||||
- Sa 200 → **556 chunkova** (+356)
|
||||
- BGE-M3 (1024 dim, Cosine)
|
||||
- Kolekcija `pgz_sport_dokumenti_v1`
|
||||
|
||||
### 4. Auto cross-link — `dokument_primjena` 439 linkova
|
||||
- Dokument ↔ sport ↔ kategorija (po sportu mapping)
|
||||
- Dokument ↔ region (PGŽ za PGZ/Grad Rijeka razinu)
|
||||
|
||||
### 5. AI prompt fine-tuning
|
||||
- Stari prompt: 4 generička pravila
|
||||
- Novi prompt: **10 specifičnih pravila** za:
|
||||
- Profesionalno citiranje [1][2]
|
||||
- Strukturiranje GLAVNI ODGOVOR → DETALJI → IZVORI
|
||||
- PGŽ-specifični fokus
|
||||
- Numerirane liste za postupke
|
||||
- Iznosi/rokovi/kriteriji za financiranje
|
||||
- Nadležne institucije obavezno
|
||||
|
||||
### 6. Stress test rezultati (5/5)
|
||||
|
||||
#### Q1: "Obveze sportskog kluba prema Zakonu o sportu?"
|
||||
**Score top: 0.7114** — vraća 7 numeriranih obveza s citiranim izvorima [1][2][3][5]
|
||||
|
||||
#### Q2: "Registracija maloljetnog nogometaša u HNS + dobne kategorije?"
|
||||
**Score top: 0.6995** — sve godište + pravila promocije iz cite [1][2][3]
|
||||
|
||||
#### Q3: "Što je TUE i kako ga sportaš pribavlja?"
|
||||
**Score top: 0.6246** — definicija + HASMS + postupak + sankcije
|
||||
|
||||
#### Q4: "Vrednovanje programa JPS PGŽ?"
|
||||
**Score top: 0.6941** — 40% bodovi rezultati, 8 kategorija, postupak
|
||||
|
||||
#### Q5: "Uvjeti za vrhunskog sportaša I kategorije HOO?"
|
||||
**Score top: 0.7147** — rezultati + trajanje + prava + postupak
|
||||
|
||||
## 📊 FINAL STATE
|
||||
|
||||
| Metrika | Vrijednost |
|
||||
|---|---|
|
||||
| Dokumenti aktivni | **173** |
|
||||
| Dokumenata s full-text (>1000 chars) | **33** |
|
||||
| Embedding chunks Qdrant | **556** |
|
||||
| Cross-link records (dokument_primjena) | **439** |
|
||||
| Dobne kategorije | 127 (17 sportova) |
|
||||
| Sportaša s automatskom kategorijom | 721/1129 |
|
||||
| Sportaša s promocijom | 77 |
|
||||
| Funkcionara | 155 |
|
||||
| Saveza | 220 |
|
||||
| Klubova PGŽ | 1086 |
|
||||
| Frontend size | 251 KB |
|
||||
|
||||
## 🛠 Po razini dokumenata
|
||||
|
||||
| Razina | Broj |
|
||||
|---|---|
|
||||
| RH | ~42 |
|
||||
| Savez | 36 |
|
||||
| PGZ | ~39 |
|
||||
| EU | 27 |
|
||||
| Grad Rijeka | 16 |
|
||||
| HOO | 9 |
|
||||
|
||||
## 🎯 AI Legal Expert performance
|
||||
- Model: **DeepSeek V3** (`deepseek-chat`)
|
||||
- Temperatura: 0.2 (precizno, ne kreativno)
|
||||
- Max tokens: 800
|
||||
- Context limit: 5 RAG chunkova
|
||||
- Latencija: ~3-7s po pitanju
|
||||
- Točnost na 5 stress questions: **5/5** s odličnim citiranjem
|
||||
|
||||
## 🔧 TODO za sljedeću sesiju
|
||||
1. **NN.hr scraper** — sad 2548 bytes stub. Treba bypass anti-bot.
|
||||
2. **EUR-LEX scraper** — GDPR, EU regulative.
|
||||
3. **Real PDF parser** za pravilnike saveza (HNS, HRS itd.) — koji su u PDF formatu.
|
||||
4. **Cron** — periodični re-embed (jednom mjesečno).
|
||||
5. **Real sport data refresh** — sportaši DOB iz HNS-a (ako se nudi javno).
|
||||
6. **Frontend stres test** — provjera AI chat UI sa 10 različitih pitanja.
|
||||
|
||||
## 📂 Files
|
||||
- `/opt/pgz-sport/scrapers/insert_docs.py` — main inserter (167 dokumenata)
|
||||
- `/opt/pgz-sport/scrapers/insert_docs2.py` — extended inserter (77 PGŽ specifičnih)
|
||||
- `/opt/pgz-sport/scrapers/expert_legal_seed.py` — full-text expert seed (6 dokumenata)
|
||||
- `/opt/pgz-sport/scrapers/dok_embedder.py` — BGE-M3 + Qdrant embedder
|
||||
- `/opt/pgz-sport/scrapers/fetch_legal_text.py` — NN.hr fetcher (limited)
|
||||
- `/opt/pgz-sport/pgz_sport_v2_router.py` — backend (RAG search + AI ask)
|
||||
- `/opt/pgz-sport/static/index.html` — frontend (sidebar "Pravilnici i zakoni")
|
||||
|
||||
## 🚀 URL-ovi LIVE
|
||||
- https://api.rinet.one/sport/ → sidebar "📚 Pravilnici i zakoni"
|
||||
- /api/v2/dokumenti/list (filterable)
|
||||
- /api/v2/dokumenti/search (RAG vector)
|
||||
- /api/v2/dokumenti/ask (AI Legal Expert)
|
||||
- /api/v2/dokumenti/{id} (full view + chunks)
|
||||
|
||||
Reference in New Issue
Block a user