Karnova
Öğrencinin tam olarak hangi kazanımda takıldığını tespit eden, içeriği ona göre uyarlayan eğitim platformu.
Bir öğrenci matematik denemesinden 40 aldığında bu sayı, onun hangi konuda takıldığını söylemez. Öğretmen otuz kişilik bir sınıfta her öğrencinin eksiğini tek tek çıkaramaz; çıkarsa bile ertesi gün yeni bir deneme gelir. Not bir sonuçtur, teşhis değildir.
- Veri modelini not üzerine değil kazanım üzerine kurdum: her soru bir veya birden çok müfredat kazanımına bağlı, öğrenci cevapları kazanım seviyesinde toplanıyor.
- Yapay zekâ asistanına serbest metin ürettirmek yerine function calling verdim — model, öğrencinin gerçek kazanım verisine kendi çağırdığı fonksiyonlar üzerinden erişiyor. Bu, "iyi giden bir öğrenciye kötü gidiyorsun" demesini yapısal olarak engelliyor.
- Her okulun verisi birbirinden yalıtık: multi-tenant kurulum ve rol tabanlı yetkilendirme (RBAC) ile öğretmen, öğrenci ve yönetici farklı kapılardan giriyor.
Üç kişilik ekipte backend ve yapay zekâ tarafından sorumluyum: veri modeli, REST API, Gemini entegrasyonu ve yetkilendirme katmanı. Arayüz ile operasyon, içerik ve test tarafı ekipteki diğer iki kişide.
Platform kazanım bazlı raporlama ve adaptif içerik önerisi verecek noktaya geldi. Kaynak kod şu an özel; mimari kararların dokümantasyonu herkese açık.
Bir dil modelini üretimde güvenilir kılan şey daha iyi bir prompt değil, modelin uyduramayacağı bir veri yolu açmaktır. Serbest metin üretimiyle bir öğrencinin durumu hakkında yanlış cümle kurmasını engelleyemezsiniz; function calling ile modelin cevabı veritabanındaki gerçek kayda bağlanır. Artık tahmin etmiyor, sorguluyor.
Django 6 · Python · PostgreSQL · Google Gemini API · REST API · RBAC
Kaynak kod özel. Mimari dokümantasyonu açık.