Bir AI sohbet robotunun kodlama yeteneğini nasıl test ederim - siz de yapabilirsiniz
Bu makalede, güvenilir bir şekilde programlama yapmanıza yardımcı olup olamayacağını görmek için favori AI sohbet robotunuzda tekrarlayabileceğiniz ayrıntılı istemler ve testler sağlanmaktadır.
ChatGPT ve üretken yapay zeka (AI) 2022'de kamuoyunun dikkatini çektiğinden beri, yapay zeka sohbet robotlarının ne kadar iyi kod yazabildiğini araştırıyorum. İlk başta teknoloji, bir köpek yavrusunu yeni bir numara yapmaya teşvik etmeye benzer bir yenilikti.
Ancak yapay zeka sohbet robotlarının nasıl etkili üretkenlik araçları ve programlama ortakları olabileceğini gördüğümden beri, araçları daha derinlemesine testlere tabi tutuyorum. Zamanla, ana AI büyük dil modellerinin (LLM'ler) performansını değerlendirmek için kullandığımız dört gerçek dünya testinden oluşan bir dizi derledim. Şu ana kadar 10 LLM'yi test ettim. Bu özet makalede on tanesinin kapsamlı sonuçlarını görebilirsiniz:
- 2024'te kodlama için en iyi yapay zeka (ve nelerin kullanılmaması gerektiği)
Bu makalenin, testlerimi görebileceğiniz ve hatta kendi testinizi yapmak için kopyalayabileceğiniz canlı bir belge olması amaçlanmıştır. Performanslarını açıklayan makalelerle birlikte bireysel testler serime devam edeceğim. Ancak artık evinizde (veya iyi bir internet bağlantınızın olduğu her yerde) oyuna katılıp oynayabilirsiniz.
Testleri güncellersem veya eklersem bu makaleyi de güncelleyeceğim, bu nedenle zaman içinde tekrar kontrol etmekten çekinmeyin.
Yapay zeka kodlama test paketimi nasıl geliştirdim
Bir yapay zekanın isteğe bağlı özellikleri veya gereksinimleri karşılayıp karşılamadığını görmek için performansı değerlendirmek ile günlük programlama görevlerinde size yardımcı olup olamayacağını görmek için teknolojiyi test etmek arasında bir fark vardır.
Başlangıçta ilkini denedim. Bazı saat ve tarih hesaplamalarıyla tuzlanmış klasik "merhaba dünya" çıktısını oluşturmak için bir komut istemi çalıştırdım. İşte o istem:
Write a program using [language name] that outputs "Good morning," "Good afternoon," or "Good evening" based on what time it is here in Oregon, and then outputs ten lines containing the loop index (beginning with 1), a space, and then the words "Hello, world!".İstemi çalıştırmak için [dil adı] kısmını test etmek istediğiniz dille değiştirin. İstemi ChatGPT'de 22 programlama dili belirterek test ettim. Sonuçları buradan kontrol edebilirsiniz:
Aynı rutini en iyi 12 programlama dilinde yazmak için ChatGPT'yi kullandım. İşte nasıl oldu
Daha fazlasını burada görebilirsiniz:
Aynı rutini bu on belirsiz programlama dilinde yazmak için ChatGPT'yi kullandım
Bu eğlenceli bir testti, özellikle de daha belirsiz dilleri ve ortamları denediğimde. Herkesin hakkı olandan daha fazla eğlence istiyorsanız, [dil adı] yerine "Shakespeare" yazın. Ve evet, kaynak kodunun bir Shakespeare oyunu olarak göründüğü SPL (Shakespeare Programlama Dili) adı verilen yeni bir dil var. Pek iyi sonuç vermiyor ama artık dil tasarımcılarının içtenlikle parti yapmak istediğimizde ne yaptığını biliyorsunuz.
Haftalarca bu tavşan deliğinden nasıl aşağı inebildiğimi görebilirsiniz. Ancak önemli soru, yapay zekaların gerçek dünyadaki programlama görevlerine yardımcı olup olamayacağıdır.
Testleri desteklemek için günlük programlama çalışmamı kullandım. Örneğin, ChatGPT'nin halka açık bir araç haline gelmesinden kısa bir süre sonra eşim, bir iş projesinde kendisine yardımcı olacak özel bir WordPress özelliği istedi. ChatGPT'nin bunu oluşturup oluşturamayacağını görmeye karar verdim. Benim için şok oldu.
Diğer zamanlarda, ChatGPT'nin bir kod bölümünü yeniden yazmasını, beni şaşırtan bir kodlama hatasının hatalarını ayıklamasını ve komut dosyası oluşturma araçlarını kullanarak kod yazmasını sağladım. Bunlar gerçek işin bir parçası olarak çözmem gereken sorunlardı.
Mevcut pek çok programlama dili olduğundan, test edilecek dilleri seçerken kendimi çıldırtmamaya karar verdim. Bunun yerine, iş için kullandığım dilleri seçtim çünkü bu yaklaşım, yapay zekaların gerçek dünyadaki yardımcılar olarak nasıl performans gösterdiği hakkında bize daha fazla bilgi verecektir. Verimlilik testleri PHP, JavaScript ve bazı CSS ve HTML dillerinde yapılır.
Aynı yaklaşımı programlama çerçeveleri için de kullandım. İşimin çoğunu WordPress'te yaptığım için kullandığım çerçeve bu. Testlerden bazıları yapay zekanın WordPress API'nin benzersiz yönlerini ne kadar iyi bildiğini belirlemeye yardımcı olur.
Yakın zamanda biraz Mac komut dosyası oluşturdum, bu nedenle AppleScript ve Chrome API'sini kullanarak bir test oluşturdum. Ek testler eklersem onları bu makaleye dahil edeceğim.
Şimdi her test hakkında konuşalım. Dört tane var.
Test 1: WordPress eklentisi yazma
Bu, yapay zekanın kullanıcı arayüzü kodu da dahil olmak üzere bir WordPress eklentisinin tamamını yazıp yazamayacağını test eder. Bir AI sohbet robotu bu testi geçerse, web geliştiricilerine yardımcı olarak temel kod oluşturmaya yardımcı olabilir. Bu testi ilk olarak şu makalede belgelemiştim: "ChatGPT'den ihtiyacım olan bir WordPress eklentisi yazmasını istedim. Bunu 5 dakikadan kısa sürede yaptı".
Gerçek dünyadaki ihtiyaç: Eşim bir WordPress e-ticaret sitesi işletiyor ve müşterileri için yoğun bir Facebook grubunu yönetiyor. Her ay internette bulduğu bir siteyi kullanarak isim listesini rastgele seçiyordu ancak listeyi çıkarmak zahmetli bir işti. Bazı katılımcıların birden fazla katılım hakkına sahip olması ve bazı katılımcıların ise çok sayıda katılım hakkı olması nedeniyle isimlerin listeye yayılmasını istedi.
Bu durumu düzeltmek için benden doğrudan kontrol panelinden daha kolay erişim sağlayacak bir WordPress eklentisi oluşturmamı istedi. Gerekli kullanıcı arayüzü ve mantığa sahip temel bir eklenti geliştirmek günler sürebilirdi ve programım doluydu. Bu yüzden yapay zekaya döndüm.
ChatGPT'nin ihtiyaçlarını karşılayan küçük bir WordPress eklentisi oluşturabileceğini keşfettikten sonra (hala kullanıyor), bu sürecin yapay zekalar için harika bir test olacağına karar verdim.
Test verileri: Aşağıdaki istemi tek bir istek olarak kullanın:
Write a PHP 8 compatible WordPress plugin that provides a new admin menu and an admin interface with the following requirements:
Provide a text entry field where a list of lines can be pasted into it. A button, that when pressed, randomizes the lines in the list and presents the results in a second text entry field with no blank lines.
Make sure no two identical entries are next to each other (unless there's no other option). Be sure the number of lines submitted and the number of lines in the result are identical to each other.
Under the first field, display text stating "Line to randomize: " with the number of nonempty lines in the source field. Under the second field, display text stating "Lines that have been randomized: " with the number of non-empty lines in the destination field.Eklenti tamamlandıktan sonra test verileri olarak aşağıdaki adları kullanın (William Hernandez ve Abigail Williams'ın kopyaları vardır):
Sophia Davis
Charlotte Smith
Madison Garcia
Isabella Davis
Abigail Williams
Mia Garcia
Isabella Jones
Alexander Gonzalez
Olivia Gonzalez
Emma Jackson
Ethan Jackson
Sophia Johnson
Abigail Williams
Liam Jackson
Noah Lopez
Olivia Jackson
Ava Martin
Benjamin Johnson
Alexander Jackson
Alexander Lopez
Charlotte Rodriguez
Olivia Rodriguez
Ethan Martin
Noah Thomas
Isabella Anderson
Abigail Williams
Michael Williams
William Hernandez
Abigail Miller
Emma Davis
Sophia Martinez
William HernandezSonuçlarda nelere bakılmalıdır: Yeni bir .php dosyasına yapıştırabileceğiniz bir metin bloğu bekleyin. Blok, tüm uygun başlık ve kullanıcı arayüzü bilgilerini içermelidir. Bu kodun ilişkili bir JavaScript dosyası gerektirmesine gerek yoktur.
Eklenti WordPress kurulumunuza yüklendikten sonra, bir kontrol paneli menüsüne ve buna benzer bir kullanıcı arayüzüne sahip olmalısınız:
Adları ilk alana yapıştırın, rastgele düğmesini tıklayın ve ikinci alandaki sonuçları arayın. William Hernandez ve Abigail Williams'a ait çoklu girişlerin listede dağıtıldığından emin olun.
Test 2: Bir dize işlevini yeniden yazma
Bu test, bir yapay zeka sohbet robotunun daha iyi işlevsellik için bir yardımcı program işlevini nasıl güncellediğini değerlendirir. Bu testi ilk olarak "Tamam, yani ChatGPT kodumun hatalarını ayıkladı. Gerçekten" bölümünde belgelemiştim.
Gerçek dünyadaki ihtiyaç: Geçerli bir parasal tutarı kontrol etmesi gereken bir doğrulama rutinim vardı. Ancak bir kullanıcıdan gelen bir hata raporu, yalnızca tam sayılara izin verildiğini (yani 5,02 değil, 5) belirtti.
Bir ila dört saat sürebilecek olan kodumu yeniden yazmak için zaman harcamak yerine yapay zekadan bunu yapmasını istedim.
Test verileri: Aşağıdaki istemi tek bir istek olarak kullanın:
Please rewrite the following code to change it from allowing only integers to allowing dollars and cents (in other words, a decimal point and up to two digits after the decimal point).
str = str.replace (/^0+/, "") || "0";
var n = Math.floor(Number(str));
return n !== Infinity && String(n) === str && n >= 0;Sonuçlarda nelere bakılmalıdır? Kodu çeşitli olası hata senaryolarına göre test edin. Koda alfasayısal bir değer sağlayın ve başarısız olup olmadığına bakın.
Kodun kendisinden önceki sıfırları nasıl işlediğini görün. Cent için ikiden fazla rakama sahip girişleri nasıl ele aldığını görün. Kodun virgülden sonraki bir rakamı nasıl işlediğini görün.
Ondalık virgülün solundaki beş veya altı rakamı işleyip işleyemeyeceğine bakın.
Test 3: Can sıkıcı bir hata bulma
Bu test, WordPress hakkında derinlemesine bilgi gerektirir çünkü bariz cevap yanlıştır. Bir yapay zeka sohbet robotu bu testi doğru yanıtlayabilirse, bilgi tabanı WordPress gibi çerçevelerde bile oldukça eksiksizdir. Bu testi ilk olarak "Tamam, yani ChatGPT kodumun hatalarını ayıkladı. Gerçekten" şeklinde belgelemiştim.
Gerçek dünyadaki ihtiyaç: Daha sonra sattığım bir ürün için yeni kod yazıyordum. İki parametre alan bir fonksiyonum ve koduma iki parametre gönderen bir çağrı ifadem vardı.
Sorun, sürekli bir hata mesajı almamdı.
Mesajın göze çarpan kısmı, bir noktada "1 geçti" ve diğer noktada "tam olarak 2 bekleniyor" ifadesinin yer almasıdır. Çağıran ifadeye ve fonksiyon tanımına baktım ve her iki yerde de iki parametre vardı. Bu sorun beni bir süreliğine çıldırttı, bu yüzden ChatGPT'den yardım istedim.
Ona çağrıyı yapan kod satırını, işlevin kendisini ve çağrılan işlevi ana programımdaki bir kancadan gönderen küçük bir kod parçası olan işleyiciyi gösterdim.
Test verileri: Aşağıdaki istemi tek bir istek olarak kullanın:
I am using this function to process a WordPress filter:
$transaction_form_data = apply_filters( 'sd_update',
$transaction_form_data, $donation_id);
it's handled by
add_filter( 'sd_update', 'sd_aan_update', 10, 1 ) ;
and the function it calls is:
function sd_aan_update ( $donation_data, $donation_id ) {
// this processes the form data after
// the transaction returns from the gateway
if ( isset( $donation_data['ADD_A_NOTE'] ) ) {
update_post_meta( $donation_id,
'_dgx_donate_aan_note',
$donation_data [ 'ADD_A_NOTE']);
}
return $donation_data:
}
(!) ArgumentCountError: Too few arguments to function sd_aan_update(), 1 passed in /Users/david/Documents/Development/local-sites/sd/app/public/w-includes/class-wp-hook.php on line 310 and exactly 2 expected in /Users/david/Documents/Development/local-sites/sd/app/public/wp-content/plugins/ sd-add-a-note/sd-add-a-note.php on line 233Sonuçlarda nelere bakılmalı? Açık olan cevap, doğru cevap değildir. Gerçekte add_filter işlevi doğru parametrelere sahip değildi. Kodumda add_filter işlevi dördüncü parametre için 1 değerini belirtti (bu, filtre işlevinin yalnızca bir parametre alacağı anlamına gelir). Aslında iki parametre bekliyor.
Bu sorunu düzeltmek için yapay zekanın, filtre işlevini iki parametreyle doğru şekilde kaydetmesi için add_filter işlevinin dördüncü parametresinin 2 olarak değiştirilmesini önermesi gerekir.
Test ettiğim yapay zekaların çoğu bu sorunu gözden kaçırıyor. Çağıran fonksiyondaki farklı bir parametrenin güncellenmesi gerektiğini düşünüyorlar. Dolayısıyla bu, yapay zekanın WordPress çerçevesindeki add_filter işlevinin nasıl çalıştığını bilmesini gerektiren hileli bir sorudur.
Test 4: Senaryo yazma
Bu test, bir yapay zeka sohbet robotunun çoğu kullanıcının bilmediği oldukça özel iki programlama aracını kullanarak programlama yapmasını ister. Temel olarak AI sohbet robotunun büyük dillerin ötesindeki bilgisini test eder. Bu testi ilk olarak "Google, Gemini Code Assist'i duyurdu ve bunun programcılara yardımcı olacağı konusunda ihtiyatlı bir şekilde iyimserim" bölümünde belgelemiştim.
Gerçek dünyadaki ihtiyaç: Mac'im için beni bir sürü tıklama ve tuş vuruşundan kurtaracak bir otomasyon rutini oluşturmak istedim. Mac'imde bir dizi otomasyon yapmak için Keyboard Maestro adlı bir araç kullanıyorum (bunu steroidlerdeki Kısayollar olarak düşünün). Keyboard Maestro, Avustralya'da yalnız bir programcı tarafından yazılan oldukça belirsiz bir programdır.
Bu durumda, rutinimin açık Chrome sekmelerine bakmasını ve o anda etkin olan Chrome sekmesini rutinde geçirilen sekmeye ayarlamasını istedim. Bu görevi gerçekleştirmek için Keyboard Maestro'nun ayrıca Chrome'un API'si ile arayüz oluşturacak bazı AppleScript kodlarını yürütmesi gerekecektir.
Bir kez daha ChatGPT'den, birkaç saatlik AppleScript yazımından ve Chrome verilerine nasıl erişeceğimi ararken harcayacağım zamandan tasarruf etmek için bu kodu yazmasını istedim.
Test verileri: Aşağıdaki istemi tek bir istek olarak kullanın:
Write a Keyboard Maestro AppleScript that scans the frontmost Google Chrome window for a tab name containing the string matching the contents of the passed variable instance__ChannelName. Ignore case for the match. Once found, make that tab the active tab.Sonuçlarda nelere bakılmalı: Bu iyi bir yapay zeka testidir çünkü pek bilinmeyen bir programlama aracını (Klavye Maestro), AppleScript'i ve Chrome API'yi ve bu üç teknolojinin hepsinin nasıl çalıştığını test eder. etkileşime girmek.
İlk olarak, ortaya çıkan AppleScript'in, kanal adı değişkenini Keyboard Maestro'dan alıp almadığına bakın; bunun şuna benzer olması gerekir:
tell application "Keyboard Maestro Engine"
set channelName to getvariable "instance__ChannelName"
end tellAppleScript'in geri kalanı bir bloğa dahil edilmelidir. Büyük/küçük harfin göz ardı edilmesi gerekiyor, bu nedenle ya büyük/küçük harf değişikliğine bakın ya da AppleScript'te büyük/küçük harften bağımsız olan "içerir" kullanımına bakın:
tell application "Google Chrome"Çocuklar, bunu evde deneyebilirsiniz
Bu testleri yapmaktan ve bunları tercih ettiğiniz yapay zekaya eklemekten çekinmeyin. Sonuçların nasıl ortaya çıktığını görün. Yapay zekanızın ürettiği koda ne kadar güvenebileceğinizi anlamanıza yardımcı olması için bunları ve kendi geliştirebileceğiniz diğer testleri kullanın.
Şimdiye kadar ChatGPT'ye ek olarak şu AI sohbet robotlarını da test ettim: ChatGPT Plus, Perplexity, Perplexity Pro, Meta AI, Meta Code Llama, Claude 3.5 Sonnet, Gemini Advanced ve Microsoft Copilot. İşte tüm setin toplu sonuçlarının bir raporu:
- 2024'te kodlama için en iyi yapay zeka (ve nelerin kullanılmaması gerektiği)
Bizi izlemeye devam edin. Daha fazla test sonucumuz olduğu için bu makale listesini güncelleyeceğim.
Programlama yardımı için bu yapay zekalardan herhangi birini kullandınız mı? Sonuçlarınız neler oldu? Bu testlerden herhangi birini yapay zekanızda denediniz mi? Deneyiminiz ne oldu? Aşağıdaki yorumlarda bize bildirin.
Günlük proje güncellemelerimi sosyal medyadan takip edebilirsiniz. Haftalık güncelleme bültenime abone olmayı unutmayın ve beni Twitter/X'te @DavidGewirtz adresinden, Facebook'ta Facebook.com/DavidGewirtz adresinden, Instagram'da Instagram.com/DavidGewirtz adresinden ve YouTube'da YouTube.com/DavidGewirtzTV adresinden takip etmeyi unutmayın.

