A newer version of the Gradio SDK is available: 6.28.0
title: VYS SQL Öğrenme
emoji: 🗃️
colorFrom: blue
colorTo: indigo
sdk: gradio
app_file: app.py
pinned: false
short_description: Adım adım SQL öğreten ders uygulaması
🗃️ VYS SQL Öğrenme Uygulaması
BÖTE lisans öğrencileri için, en basit SELECT'ten çok tablolu JOIN ve
alt sorgulara kadar 25 konuluk sıralı bir SQL kursu.
Her konuda öğrenci:
- Kavramı kısa bir anlatımla okur,
- Çalıştırılmış bir örnek ve onun sonucunu görür,
- Kendi görevini yazar,
- Sınırsız deneme yapar; hata alırsa açıklama ve ipucu alır.
Her 5 konuda bir ⭐ Geriyayılım görevi gelir: o ana kadar öğrenilen her şeyi tek bir sorguda birleştiren kapsamlı tekrar.
Mimari — neden bu şekilde
Doğru/yanlış kararını dil modeli vermez. Öğrencinin SQL'i gerçek bir SQLite veritabanında çalışır; sonucu, referans çözümün aynı veriler üzerindeki sonucuyla karşılaştırılır. Farklı yazılmış ama aynı sonucu üreten çözümler de doğru sayılır.
Dil modelinin tek işi öğretmek: hata mesajını Türkçeleştirmek ve cevabı söylemeden ipucu vermek. Bu ayrım önemli — model "bu sorgu doğru mu" sorusuna güvenilir cevap vermez, ama "bu hata ne demek" sorusuna verir.
Maliyet: SQL çalıştırma ve görev kontrolü yereldir, ücretsizdir,
kotadan düşmez. Yalnızca 💡 İpucu İste butonu model çağırır.
Dosyalar
| Dosya | İşi |
|---|---|
app.py |
Gradio arayüzü, giriş, ipucu kotası |
ilerleme.py |
İlerlemenin HF Dataset'e kaydı |
mufredat.py |
25 konunun anlatımı, örneği, görevi, referans çözümü |
veritabani.py |
Yalıtılmış SQLite kum havuzu ve tohum veri |
degerlendirme.py |
Deterministik görev doğrulaması |
kullanici_uret.py |
Öğrenci hesaplarını üretir (yerel araç, Space'e yükleme) |
rapor.py |
Sınıf ilerleme raporu çıkarır (yerel araç, Space'e yükleme) |
Kurulum
1. Öğrenci hesapları
python kullanici_uret.py 45
ogrenciler.csv → dağıtacağın liste. Ekrana basılan satır → APP_USERS.
2. Space secret ve variable'ları
| Ad | Tür | Değer |
|---|---|---|
HF_TOKEN |
Secret | Fine-grained token — aşağıdaki iki izin |
APP_USERS |
Secret | ogr01:abc123,ogr02:def456,... |
ILERLEME_DEPOSU |
Variable | SSSAssist/vys-sql-ilerleme |
MODEL |
Variable | openai/gpt-oss-120b |
IPUCU_GUNLUK_LIMIT |
Variable | 40 |
IPUCU_TOPLAM_LIMIT |
Variable | 2000 |
Zorunlu olanlar HF_TOKEN ve APP_USERS. ILERLEME_DEPOSU boş bırakılırsa
uygulama çalışır ama ilerleme kaydedilmez (öğrenciye uyarı gösterilir).
Token izinleri
Fine-grained token, org olarak SSSAssist/* seçili, iki kutu işaretli:
- Inference →
Make calls to Inference Providers on behalf of selected orgs - Repositories →
Write access to contents/settings of repos in selected orgs
İkincisi ilerleme kaydı için gerekli. Yalnızca ipucu isteniyorsa birincisi yeter.
İlerleme deposu
Önce bir private dataset oluşturun: huggingface.co/new-dataset →
owner SSSAssist, ad vys-sql-ilerleme, görünürlük Private.
Her öğrenci kendi dosyasına yazar: ilerleme/ogr01.json. Ayrı dosya olmasının
sebebi yarış koşulu: tek ortak dosyada aynı anda çalışan öğrenciler birbirinin
kaydını ezerdi.
Kayıt iki anda yapılır: bir görev ilk kez doğru çözüldüğünde ve öğrenci konu değiştirdiğinde. Her ipucunda yazmak gereksiz commit üretirdi.
Sınıf raporu
export HF_TOKEN=hf_...
python rapor.py SSSAssist/vys-sql-ilerleme
Kim nerede, kaç deneme yapmış, kaç ipucu almış, sınıfın en çok zorlandığı
konular hangileri — hepsini ekrana basar ve sinif_raporu.csv üretir.
3. Space'e yüklenecek dosyalar
app.py, mufredat.py, veritabani.py, degerlendirme.py, ilerleme.py,
requirements.txt, README.md
kullanici_uret.py ve rapor.py yerel araçlardır, yüklemeyin.
4. Yerelde deneme
pip install -r requirements.txt
export HF_TOKEN=hf_...
export APP_USERS="test:test123"
export ILERLEME_DEPOSU=SSSAssist/vys-sql-ilerleme # istege bagli
python app.py
Veritabanı şeması
| Tablo | Sütunlar |
|---|---|
ogrenciler |
id, ad, soyad, sinif, sehir, dogum_yili |
dersler |
id, ad, kredi, ogretmen |
notlar |
id, ogrenci_id, ders_id, puan |
12 öğrenci, 5 ders, 30 not kaydı. Veriler bilinçli olarak Türkçe karaktersiz
yazıldı; öğrenci WHERE sehir = 'Eskisehir' yazarken karakter sorunu yaşamasın.
Sınır değerleri (tam 50 ve tam 60 puan) kasten eklendi: < ile <=
arasındaki farkı görev kontrolü yakalayabilsin diye.
Konu sırası
1-9 Temel sorgulama · 10 ⭐ · 11-14 Özetleme ve gruplama · 15 ⭐ · 16-19 Tablo oluşturma ve değiştirme · 20 ⭐ · 21-24 JOIN ve alt sorgu · 25 ⭐
Bilinen sınırlar
- İlerleme dataset'e yazılıyor, ama depo erişilemezse öğrenci uyarı görür ve o oturum bellekte çalışır. Sessizce sıfırlama yapılmaz.
- Dönem boyunca dataset'te yüzlerce commit birikir (öğrenci başına ~25-50). Bu HF için sorun değil ama depo geçmişi uzun olur.
- İpucu kotası bellekte. Space yeniden başlarsa sıfırlanır; asıl bütçe
koruması
IPUCU_TOPLAM_LIMIT'tir. - Ücretsiz CPU donanımında 48 saat ziyaretçi olmazsa Space uyur.
- Parolalar
APP_USERSiçinde düz metindir. Sınıf içi erişim kontrolüdür, gerçek bir kimlik doğrulama sistemi değildir.