Takip et

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.

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:

  1. 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ı.
  2. Backend (API Sunucusu): Frontend’den gelen istekleri işleyen, LLM ile iletişim kuran ve veritabanıyla etkileşime giren Flask uygulaması.
  3. 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

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık