Yapay zeka akımının en göze çarpan oyuncularından bir tanesi ChatGBT. Bugün ChatGPT’yi yazılım geliştirici penceresinden sizlerle beraber inceleyeceğiz.
Nedir bu ChatGPT?
ChatGPT, OpenAI firması tarafından geliştirilen bir yapay zeka modeli. Dengeleri yerinden oynatan yeni bir oyuncu diyebiliriz. Klasik arama motorları aksine isteklerimizi yorumlayıp bizlere özgü cevaplar üretebilen bir yapay zeka, bir asistan.
Gelin birlikte günlük rutinlerimizi nasıl değiştireceği konusunda incelemeler yapalım, biraz şaşırtıcı bir yolculuk olabilir.
Kod Geliştirme
ChatGPT bir yazılım geliştiricinin sahip olduğu en iyi yardımcı olma noktasında ilerliyor. Çok mu işiniz var, üzerinizdeki işlerin bir kısmı için ChatGPT’den yardım almaya ne dersiniz? Gelin sizlerle beraber ChatGPT’den kod yazma konusunda yardım alalım. ChatGPT’ye ilk sorumuzu yönelterek başlayalım. (bkz. Şekil 1)
Şekil 2’de görüldüğü gibi ChatGPT sadece kodu üretmiyor, bu kodun ayrıntılı bir şekilde açıklamasını da yapıyor. Ayrıca bizim için örnek bir veri üreterek yazdığı kodun çıktılarını bizlere sunuyor.
Unit Test’ler Oluşturma
Yazılım geliştirme yaşam döngüsünün en önemli adımlarından biri olan test kısmına geldik. Bu adımda ChatGPT’den .Net dilinde yazılmış metodumuz için test metotlarını yazmasını isteyeceğiz (bkz Şekil 3)
Şekil 4’de görüldüğü gibi ChatGPT verdiğimiz kod bloğunu inceleyip analizini yapıyor ve olası tüm durumları tespit ediyor. Ardından bizler için tüm durumları örnekleyen test metotları yazıyor. Birçok yazılımcının zaman kaybı olarak baktığı ve bazen de yazmayı ertelediği testler için ChatGPT çok iyi bir yardımcı olabilir.
Yazılımcı olarak bazen sadece bir noktaya odaklanıp ve tüm olası durumların listelenmesi konusunda eksik kalabiliyoruz. Bu noktada ChatCPT bizim yardımımıza koşuyor.
Kod Yorumlama ve Hataların Düzeltilmesi
Sayıların onluk tabandan ikilik tabana dönüşümü sağlayan Recursive metodumuz var ama bir bölümünde bir hata yapmışız ve bunu bulamıyoruz. Hatanın düzeltilmesi için ChatGPT’den yardım isteyelim ve neler yaptığını Şekil 5’te görelim.
Şekil 6’da görüldüğü gibi ChatGPT hatalı kod satırını bulup düzeltti, düzeltmek ile de kalmadı bu konuda bize bir açıklama da yaptı. Yazılım geliştiricilerin zamanının büyük bir bölümünü hataları bulup düzeltmek için harcadığını düşünürsek, ChatGPT bizlere zaman ve maliyet konusunda büyük avantajlar sağlayacak gibi duruyor.
Doküman Oluşturma
Kodumuzu yazdım şimdi sıra doküman kısmana geldi, yazılımcıların en çok zorlandığı kısım burası olsa gerek. Şekil 7’deki gibi ChatGPT’den mevcutta yazdığımız bir kod bloğuna ilişkin uygulamamızın dokümanında kullanmak üzere bir metin yazmasını isteyelim.
ChatGPT verdiğimiz kod bloğunu yorumladı ve bizim için ayrıntılı bir metin oluşturdu. Her zaman bu metni direk kullanamayabiliriz ama bizim için güzel bir taslak olabilir (bkz. Şekil 8).
Diller Arası Kod Dönüşümü
Zaman zaman elimizde bulunan kod bloğunu farklı bir dilde tekrar yazmak durumunda kalabiliriz. Aşina olmadığımız iki dil arasındaki bu dönüşümü sağlamak bazen zor olabilir. Bu konuda ChatGPT neler yapabildiğini Şekil 9’da birlikte inceleyelim.
Şekil 10’daki gibi ChatGPT .Net’de yazılmış kod bloğumuzu bizim için TypeScript’e çevirdi. Bu çevrim ile ilgili olarak da bize güzel bir açıklama da yaptı. Bu tarz diller arası dönüşümler için ChatGPT çok iyi bir yardımcı olabilir.
JSON’dan Class Modelleri Üretilmesi
.Net’de class modelleri oluşturmak bazen sıkıcı olabiliyor. Bu konuda da ChatGBT’nin neler yaptığını görmek istiyorum. Elimde kişi bilgilerinin bulunduğu örnek bir JSON var, Şekil 11’deki gibi bu JSON için ChatGPT’den model class’ını üretmesini isteyelim ve bakalım neler oluyor.
Sorumuzda ChatGPT’den bir tane model class oluşturmasını istemiştik ama üç tane üretti (bkz. Şekil 12), bakalım neden böyle yapmış. ChatGPT JSON’umuzu analiz ederek verileri sınıflandırdı, her veri blokları için bizlere bir tane sınıf oluşturdu. Bununla da kalmayıp modeller arasındaki ilişkilendirmeleri yaptı. En son kısımda bizlere yaptıkları konusunda tatminkâr bir açıklama yaptı.
JSON’dan SQL Tablo Create Script’ı Oluşturmak
Elimizde öğrenci bilgileri ve notlarının bulunduğu bir JSON var. Şekil 13’deki gibi bu veri yapısına uygun database tablolarını oluşturmak konusunda ChatGPT’nin yardımını isteyelim ve görelim neler yapabiliyor.
Şekil 14’ü incelediğimizde sonuçlar gerçekten şaşırtıcı, JSON’umuzu analiz edip ihtiyaçları belirledi ardından, normalizasyon kurallarını gözeterek bizlere 3 tane farklı tablo tasarladı. Her bir kolon için uygun veri tipini belirledi, primary key ve foreign key tanımlarını yaparak tablolar arası ilişkilerinde kurulmasını sağladı. Eline sağlık ChatGPT.
Sonuç
Bu yazımızda somut örnekler ile ChatGPT’nin yeteneklerinin küçük bir kısmını beraber inceledik. ChatGPT sadece kullanıcının isteğini değil, isteği analiz ederek olması gerekeni (best practice) yapıyor ve bu konuda bizlere yaptıklarının sebebini açıklama ihtiyacı duyuyor. JSON’dan veri oluşturma örneğimizde ChatGPT’den bir tane mocel class’ı oluşturmasını istemiştik ama olması gereken üç taneydi, öyle de oldu ChatGPT bizim için üç tane model class’ı oluşturdu. ChatGPT ile yapabileceklerimiz elbette bunlarla sınırlı değil. Örneklerin sayısını artırabiliriz.
ChatGPT her gün büyüyen ve gelişen bir çocuk gibi kendine yeni yetenekler katıyor. Bizimle kurmuş olduğu etkileşimlerden besleniyor ve şekilleniyor. ChatGPT günlük rutinlerimizi değiştirecek gibi gözüküyor.
ChatGPT’nin somut bir başlangıç olduğunu ve bu alanda birçok yeni oyuncunun hayatımıza gireceğini düşünüyorum. Bunların bizlere neler getireceğini hep birlikte göreceğiz.…
Kaynaklar:
- https://www.infoworld.com/article/3689172/chatgpt-and-software-development.html
- Free Licence, Robot Handshake Human Background, Futuristic Digital Age. https://www.freepik.com/free-photo/robot-handshake-human-background-futuristic-digital-age_17850426.htm#query=chat%20gpt&position=24&from_view=keyword&track=ais
- https://chat.openai.com/
- Terry, Paul E. “Excellence in Total Worker Health® and an Interview With Dr Laura Linnan.” American Journal of Health Promotion (2023): 08901171231169595.
- Biswas, Som. “Role of ChatGPT in Computer Programming.: ChatGPT in Computer Programming.” Mesopotamian Journal of Computer Science 2023 (2023): 8-16.