Bir Hafta Sonunda Yapay Zeka Destekli Kurs Oluşturucu Nasıl Geliştirdim? (DuoUniversal Yaklaşımı)
Eğitim teknolojileri dünyasında kişiselleştirilmiş ve hızlı içerik üretimi her zamankinden daha kritik. Peki, bir hafta sonunda, DuoLingo’nun etkileşimli ve modüler öğrenme felsefesinden ilham alarak, yapay zeka destekli bir kurs oluşturucu geliştirmek mümkün mü? Bu makalede, tam da bu iddialı projeyi nasıl hayata geçirdiğimi, hangi teknolojik seçimleri yaptığımı ve bu süreçte karşılaştığım zorlukları ve edindiğim değerli dersleri adım adım anlatacağım. Gelin, bu heyecan verici hafta sonu macerasına birlikte dalalım!
Fikir ve Motivasyon: Neden Bir Kurs Oluşturucu?
Günümüzün hızlı tempolu dünyasında, bilgiye erişim kolay olsa da, bu bilgiyi yapılandırılmış ve kişiselleştirilmiş bir öğrenme deneyimine dönüştürmek büyük bir zorluk. Geleneksel kurs oluşturma süreçleri zaman alıcı ve maliyetlidir. İşte tam da bu noktada, yapay zekanın gücünden faydalanarak bu süreci otomatikleştirmek fikri ortaya çıktı.
Öğrenme İçeriklerinin Kişiselleştirilmesi İhtiyacı
Her öğrencinin öğrenme hızı, ilgi alanları ve ön bilgisi farklıdır. Tek tip bir müfredat, herkes için en verimli öğrenme deneyimini sunamaz. Yapay zeka, öğrencinin ihtiyaçlarına göre dinamik olarak içerik üreterek, öğrenme yolculuğunu kişiselleştirme potansiyeli sunar. Bu proje, bu potansiyeli hızlıca gerçeğe dönüştürmeyi hedefledi.
DuoUniversal’dan İlham
Projenin adındaki “DuoUniversal” kısmı, DuoLingo’nun dersleri küçük, yönetilebilir parçalara ayırma, etkileşimli alıştırmalar sunma ve oyunlaştırma (gamification) öğeleriyle öğrenmeyi eğlenceli hale getirme yaklaşımından geliyor. Hedef, benzer bir kullanıcı deneyimini, herhangi bir konuda içerik üretebilen bir platformla birleştirmekti. Bu, sadece içerik üretmekle kalmayıp, aynı zamanda üretilen içeriğin nasıl sunulacağı konusunda da bir vizyon belirledi.
Hafta Sonu Hedefi ve Kısıtlar
Projenin en büyük kısıtı, “bir hafta sonu” gibi kısa bir zaman diliminde tamamlanmasıydı. Bu, teknoloji seçimlerinden mimari tasarıma kadar her kararı etkiledi. Hızlı prototipleme, mevcut araçları maksimum verimle kullanma ve “mükemmel” yerine “işlevsel” olana odaklanma temel prensipler haline geldi.
Teknolojiyi Seçmek: AI ve Geliştirme Ortamı
Hafta sonu projesi olduğu için, hızlı geliştirme imkanı sunan, öğrenme eğrisi düşük ve güçlü araçlara yönelmek şarttı. Bu bölümde, projenin temelini oluşturan teknoloji yığınına değineceğim.
Büyük Dil Modelleri (LLM) Seçimi
Kurs içeriği üretimi için ana motor elbette bir Büyük Dil Modeli (LLM) olacaktı. Piyasada birçok seçenek bulunsa da, hızlı entegrasyon, iyi performans ve makul maliyet dengesi nedeniyle OpenAI’nin GPT modellerini tercih ettim. Özellikle GPT-3.5 Turbo, hem hızı hem de maliyet etkinliği ile hafta sonu projesi için idealdi. Daha karmaşık senaryolar için GPT-4’ün yetenekleri göz önünde bulundurulsa da, ilk prototip için 3.5 Turbo yeterliydi.
Backend Çerçevesi ve Veritabanı
Backend için Python tabanlı Flask çerçevesini seçtim. Flask, hafif yapısı ve hızlı kurulumu sayesinde API endpoint’leri oluşturmak için mükemmel bir seçimdi. Veritabanı olarak ise, yine hızlı kurulum ve kullanım kolaylığı nedeniyle SQLite tercih ettim. Kursları, dersleri ve kullanıcı ilerlemesini basitçe depolamak için yeterliydi. Daha büyük projelerde PostgreSQL veya MongoDB gibi seçenekler düşünülebilirdi, ancak hafta sonu için SQLite idealdi.
Frontend Teknolojileri
Kullanıcı arayüzü için vanilla JavaScript, HTML ve CSS kullandım. React veya Vue gibi modern bir framework kullanmak cazip olsa da, öğrenme eğrisini ve kurulum süresini minimize etmek adına doğrudan DOM manipülasyonu ve basit CSS stilleriyle ilerledim. Bu, hızlıca etkileşimli bir arayüz oluşturmama olanak tanıdı ve DuoLingo benzeri minimalist bir estetik yakalamama yardımcı oldu.
Hızlı Geliştirme Araçları ve Kütüphaneler
API çağrıları için Python’ın requests kütüphanesi, JSON verisi işlemek için json modülü ve frontend’de basit AJAX istekleri için fetch API’si gibi standart kütüphaneleri kullandım. Bu araçlar, ek bağımlılıklar eklemeden hızlıca işlevsellik katmamı sağladı.
Mimari Tasarım: Hızlı Prototiplemenin Sırları
Hafta sonu projesi demek, karmaşık mimarilerden kaçınmak ve mümkün olduğunca basit, ancak genişletilebilir bir yapı kurmak demekti. İşte projenin temel mimarisi:
Sistem Bileşenleri Genel Bakış
Sistem üç ana bileşenden oluşuyordu:
- Frontend (Kullanıcı Arayüzü): Kullanıcının kurs konusunu girdiği, üretilen dersleri görüntülediği ve etkileşimde bulunduğu HTML, CSS, JavaScript katmanı.
- Backend (API Sunucusu): Frontend’den gelen istekleri işleyen, LLM ile iletişim kuran ve veritabanıyla etkileşime giren Flask uygulaması.
- Veritabanı (SQLite): Üretilen kursları, dersleri ve kullanıcı ilerlemesini depolayan basit bir veritabanı.
Bu üç katmanlı yapı, sorumlulukları ayırarak hem geliştirme hızını artırdı hem de olası hataların izole edilmesine yardımcı oldu.
Veri Akışı ve API Tasarımı
Kullanıcı bir kurs konusu girdiğinde, bu bilgi frontend’den backend’e bir POST isteği ile gönderiliyordu. Backend, bu isteği alıp LLM’e uygun bir prompt (yönerge) oluşturuyordu. LLM’den dönen ders içeriği, backend tarafından işleniyor, veritabanına kaydediliyor ve ardından frontend’e JSON formatında geri gönderiliyordu. Frontend, bu veriyi alarak kullanıcı arayüzünde dinamik olarak görüntülüyordu.
// Örnek bir API yanıtı
{
"course_id": "12345",
"title": "Temel Python Programlama",
"lessons": [
{
"lesson_id": "L1",
"title": "Python'a Giriş",
"content": "Python nedir, neden kullanılır...",
"exercises": ["Soru 1", "Soru 2"]
},
{
"lesson_id": "L2",
"title": "Değişkenler ve Veri Tipleri",
"content": "Python'da değişken tanımlama...",
"exercises": ["Soru 1", "Soru 2"]
}
]
}
Modüler Yaklaşım
Her bir dersin bağımsız bir modül olarak tas