4.4 KiB
4.4 KiB
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
- NN.hr scraper — sad 2548 bytes stub. Treba bypass anti-bot.
- EUR-LEX scraper — GDPR, EU regulative.
- Real PDF parser za pravilnike saveza (HNS, HRS itd.) — koji su u PDF formatu.
- Cron — periodični re-embed (jednom mjesečno).
- Real sport data refresh — sportaši DOB iz HNS-a (ako se nudi javno).
- 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)