David Gewirtz/ZDNET

Sejak ChatGPT dan kecerdasan buatan generatif (AI) mulai dikenal publik pada tahun 2022, saya telah mengeksplorasi seberapa baik chatbot AI dapat menulis kode. Pada awalnya, teknologi ini merupakan hal baru, seperti mendorong anak anjing untuk melakukan trik baru.

Namun sejak melihat bagaimana chatbot AI dapat menjadi alat produktivitas dan mitra pemrograman yang efektif, saya telah melakukan pengujian yang lebih mendalam terhadap alat tersebut. Seiring waktu, saya telah mengumpulkan empat pengujian dunia nyata yang kami gunakan untuk mengevaluasi kinerja model bahasa besar (LLM) AI utama.

Cara menggunakan ChatGPT untuk menulis: Resume | Rumus Excel | Esai | Surat pengantar

Artikel ini dimaksudkan sebagai dokumen hidup, tempat Anda dapat melihat pengujian saya dan bahkan menyalinnya untuk dijalankan sendiri. Saya akan melanjutkan rangkaian tes individu saya, bersama dengan artikel yang menjelaskan kinerjanya. Namun sekarang, Anda dapat bermain dan bermain bersama di rumah (atau di mana pun Anda memiliki koneksi internet yang bagus).

Jika saya memperbarui atau menambahkan tes, saya juga akan memperbarui artikel ini, jadi silakan periksa kembali nanti.

Bagaimana saya mengembangkan rangkaian pengujian pengkodean AI saya

Ada perbedaan antara mengevaluasi kinerja untuk melihat apakah AI memenuhi spesifikasi atau persyaratan sewenang-wenang dan menguji teknologi untuk melihat apakah teknologi tersebut dapat membantu Anda dalam tugas pemrograman sehari-hari.

Awalnya, saya mencoba yang pertama. Saya menjalankan prompt untuk menghasilkan keluaran klasik “halo, dunia”, yang dilengkapi dengan beberapa perhitungan waktu dan tanggal. Inilah perintahnya:

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!".

Untuk menjalankan prompt, ganti [language name] dengan bahasa apa pun yang ingin Anda uji. Saya menguji prompt di ChatGPT, menentukan 22 bahasa pemrograman. Anda dapat melihat hasilnya di sini:

Saya menggunakan ChatGPT untuk menulis rutinitas yang sama dalam 12 bahasa pemrograman teratas. Begini caranya

Dan Anda dapat melihat lebih banyak di sini:

Saya menggunakan ChatGPT untuk menulis rutinitas yang sama dalam sepuluh bahasa pemrograman yang tidak jelas ini

Ini adalah tes yang menyenangkan, terutama setelah saya menjalankan semakin banyak bahasa dan lingkungan yang tidak jelas melalui tes tersebut. Jika Anda ingin lebih bersenang-senang daripada hak siapa pun, gantilah [language name] dengan “Shakespeare”. Dan ya, ada bahasa baru yang disebut SPL (Shakespeare Programming Language) yang kode sumbernya muncul sebagai drama Shakespeare. Itu tidak berjalan dengan baik, tapi sekarang Anda tahu apa yang dilakukan desainer bahasa ketika kita ingin berpesta ria.

Anda bisa melihat bagaimana saya bisa masuk ke lubang kelinci ini selama berminggu-minggu. Namun, pertanyaan pentingnya adalah apakah AI dapat membantu tugas pemrograman di dunia nyata.

Juga: Kursus AI gratis terbaik

Saya menggunakan pekerjaan pemrograman saya sehari-hari untuk mendorong pengujian. Misalnya, tak lama setelah ChatGPT menjadi alat publik, istri saya meminta fitur WordPress khusus untuk membantunya mengerjakan proyek kerja. Saya memutuskan untuk melihat apakah ChatGPT dapat membangunnya. Yang mengejutkan saya, hal itu terjadi.

Di lain waktu, saya meminta ChatGPT menulis ulang segmen kode, men-debug kesalahan pengkodean yang membingungkan saya, dan menulis kode menggunakan alat skrip. Ini adalah masalah yang harus saya selesaikan sebagai bagian dari pekerjaan nyata.

Karena ada begitu banyak bahasa pemrograman yang masih ada, saya memutuskan untuk tidak membuat diri saya gila-gilaan mencoba memilih bahasa untuk diuji. Sebaliknya, saya memilih bahasa yang saya gunakan untuk bekerja karena pendekatan tersebut akan memberi tahu kita lebih banyak tentang bagaimana kinerja AI sebagai pembantu di dunia nyata. Tes produktivitas dilakukan dalam PHP, JavaScript, dan sedikit CSS dan HTML.

Juga: Cara menggunakan ChatGPT untuk menulis kode

Saya menggunakan pendekatan yang sama untuk kerangka pemrograman. Karena saya melakukan sebagian besar pekerjaan saya di WordPress, itulah kerangka kerja yang saya gunakan. Beberapa pengujian membantu menentukan seberapa baik AI mengetahui aspek unik dari API WordPress.

Saya melakukan beberapa skrip Mac baru-baru ini, jadi saya membuat pengujian menggunakan AppleScript, dan Chrome API. Jika saya menambahkan tes tambahan, saya akan memasukkannya ke dalam artikel ini.

Selanjutnya, mari kita bahas setiap tes. Ada empat dari mereka.

Tes 1: Menulis plugin WordPress

Ini menguji apakah AI dapat menulis seluruh plugin WordPress, termasuk kode antarmuka pengguna. Jika chatbot AI lulus tes ini, ini dapat membantu membuat kode dasar sebagai asisten pengembang web. Saya awalnya mendokumentasikan pengujian ini di artikel, “Saya meminta ChatGPT untuk menulis plugin WordPress yang saya perlukan. Plugin ini berhasil dalam waktu kurang dari 5 menit”.

Kebutuhan dunia nyata: Istri saya menjalankan situs e-commerce WordPress dan mengelola grup Facebook yang sibuk untuk pelanggannya. Setiap bulan, dia menggunakan situs yang dia temukan online untuk mengacak daftar nama, namun mengekstraksi daftar itu sulit dilakukan. Karena beberapa pesertanya berhak mendapat banyak entri, dan ada pula peserta yang punya banyak entri, ia ingin nama-nama itu tersebar di dalam daftar.

Untuk memperbaiki situasi ini, dia meminta saya membuat plugin WordPress untuk memudahkan akses langsung dari dashboardnya. Mengembangkan plugin dasar dengan UI dan logika yang diperlukan bisa memakan waktu berhari-hari dan jadwal saya padat. Jadi saya beralih ke AI.

Juga: Cara menggunakan ChatGPT untuk membuat aplikasi

Setelah mengetahui bahwa ChatGPT dapat membuat plugin WordPress kecil yang bagus dan memenuhi kebutuhannya (dia masih menggunakannya), saya memutuskan ini akan menjadi ujian yang bagus untuk AI.

Data pengujian: Gunakan perintah berikut sebagai satu permintaan:

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.

Setelah plugin selesai, gunakan nama berikut sebagai data pengujian (William Hernandez dan Abigail Williams memiliki duplikasi):

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 Hernandez

Apa yang harus dicari dalam hasil: Harapkan blok teks yang dapat Anda tempelkan ke file .php baru. Blok tersebut harus berisi semua informasi header dan UI yang sesuai. Kode ini tidak memerlukan file JavaScript terkait.

Setelah plugin diinstal di instalasi WordPress Anda, Anda akan mendapatkan menu dashboard dan antarmuka pengguna yang mirip dengan ini:

chatgpt2-salin

Tangkapan layar oleh David Gewirtz/ZDNET

Tempelkan nama pada kolom pertama, klik tombol acak, dan cari hasilnya pada kolom kedua. Pastikan beberapa entri untuk William Hernandez dan Abigail Williams didistribusikan dalam daftar.

Tes 2: Menulis ulang fungsi string

Tes ini mengevaluasi bagaimana chatbot AI memperbarui fungsi utilitas untuk fungsionalitas yang lebih baik. Saya awalnya mendokumentasikan pengujian ini di, “Oke, jadi ChatGPT baru saja men-debug kode saya. Sungguh”.

Kebutuhan dunia nyata: Saya memiliki rutinitas validasi yang seharusnya memeriksa jumlah uang yang valid. Namun, laporan bug dari pengguna menunjukkan bahwa itu hanya mengizinkan bilangan bulat (jadi, 5 dan bukan 5.02).

Juga: Cara menulis perintah ChatGPT yang lebih baik

Daripada menghabiskan waktu menulis ulang kode saya, yang mungkin memakan waktu satu hingga empat jam, saya meminta AI untuk melakukannya.

Data pengujian: Gunakan perintah berikut sebagai satu permintaan:

str = str.replace (/^0+/, "") || "0"; 
var n = Math.floor(Number(str)); 
return n !== Infinity && String(n) === str && n >= 0;

Apa yang harus dicari dalam hasil: Uji kode terhadap beberapa kemungkinan skenario kegagalan. Berikan kode dengan nilai alfanumerik dan lihat apakah gagal.

Lihat bagaimana kode menangani angka nol sebelumnya. Lihat cara menangani input yang memiliki lebih dari dua digit untuk sen. Lihat bagaimana kode menangani satu digit setelah koma desimal.

Lihat apakah ia dapat menangani lima atau enam digit di sebelah kiri koma desimal.

Tes 3: Menemukan bug yang mengganggu

Tes ini memerlukan pengetahuan mendalam tentang WordPress karena jawaban yang jelas salah. Jika chatbot AI dapat menjawab tes ini dengan benar, berarti basis pengetahuannya cukup lengkap, bahkan dengan framework seperti WordPress. Saya awalnya mendokumentasikan pengujian ini di, “Oke, jadi ChatGPT baru saja men-debug kode saya. Sungguh”.

Kebutuhan dunia nyata: Saya sedang menulis kode baru untuk produk yang kemudian saya jual. Saya memiliki fungsi yang mengambil dua parameter, dan pernyataan panggilan yang mengirimkan dua parameter ke kode saya.

Masalahnya adalah saya terus menerima pesan kesalahan.

Bagian penting dari pesan tersebut adalah di mana ia menyatakan “1 lulus” pada satu titik dan “tepat 2 diharapkan” pada titik lain. Saya melihat pernyataan pemanggilan dan definisi fungsi dan ada dua parameter di kedua tempat. Hal ini membuat saya gila cukup lama, jadi saya meminta bantuan ChatGPT.

Juga: Cara membuat ChatGPT menyediakan sumber dan kutipan

Saya menunjukkannya baris kode yang melakukan panggilan, fungsi itu sendiri, dan handlernya, sepotong kode kecil yang mengirimkan fungsi yang dipanggil dari sebuah hook di program utama saya.

Data pengujian: Gunakan perintah berikut sebagai satu permintaan:

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 233

Apa yang harus dicari dalam hasil: Jawaban yang jelas bukanlah jawaban yang benar. Kenyataannya, fungsi add_filter tidak memiliki parameter yang tepat. Dalam kode saya, fungsi add_filter menetapkan nilai 1 untuk parameter keempat (yang berarti fungsi filter hanya akan menerima satu parameter). Faktanya, ia mengharapkan dua parameter.

Untuk memperbaiki masalah ini, AI harus merekomendasikan untuk mengubah parameter keempat dari fungsi add_filter menjadi 2, sehingga fungsi filter dengan dua parameter terdaftar dengan benar.

Juga: Punya waktu 10 jam? IBM akan melatih Anda tentang dasar-dasar AI – gratis

Sebagian besar AI yang saya uji cenderung melewatkan masalah ini. Mereka berpendapat bahwa parameter berbeda dalam fungsi pemanggilan perlu diperbarui. Oleh karena itu, ini adalah pertanyaan jebakan, yang mengharuskan AI mengetahui cara kerja fungsi add_filter dalam kerangka WordPress.

Tes 4: Menulis naskah

Tes ini meminta chatbot AI untuk memprogram menggunakan dua alat pemrograman yang cukup terspesialisasi yang tidak diketahui oleh sebagian besar pengguna. Ini pada dasarnya menguji pengetahuan chatbot AI di luar bahasa-bahasa besar. Saya awalnya mendokumentasikan pengujian ini di, “Google memperkenalkan Gemini Code Assist dan saya sangat optimis ini akan membantu pemrogram”.

Kebutuhan dunia nyata: Saya ingin membangun rutinitas otomatisasi untuk Mac saya yang akan menghemat banyak klik dan penekanan tombol. Saya menggunakan alat yang disebut Maestro Papan Ketik untuk melakukan banyak otomatisasi di Mac saya (anggap saja sebagai Pintasan pada steroid). Keyboard Maestro adalah program yang tidak jelas yang ditulis oleh seorang programmer di Australia.

Dalam hal ini, saya ingin rutinitas saya melihat tab Chrome yang terbuka dan mengatur tab Chrome yang sedang aktif ke tab yang diteruskan dalam rutinitas. Untuk melakukan tugas ini, Keyboard Maestro juga harus menjalankan beberapa kode AppleScript untuk berinteraksi dengan API Chrome.

Juga: 5 cara untuk merapikan browser Chrome Anda

Sekali lagi, saya meminta ChatGPT untuk menulis kode ini untuk menghemat beberapa jam penulisan AppleScript dan waktu yang seharusnya saya habiskan untuk mencari cara mengakses data Chrome.

Data pengujian: Gunakan perintah berikut sebagai satu permintaan:

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.

Apa yang harus dicari dalam hasil: Ini adalah pengujian AI yang bagus karena menguji alat pemrograman yang tidak dikenal (Keyboard Maestro), AppleScript, dan Chrome API, serta bagaimana ketiga teknologi ini berinteraksi.

Pertama, lihat apakah AppleScript yang dihasilkan mendapatkan variabel nama saluran dari Keyboard Maestro, yang akan terlihat seperti ini:

tell application "Keyboard Maestro Engine"
    set channelName to getvariable "instance__ChannelName"
end tell

AppleScript lainnya harus disertakan dalam satu blok. Perlu mengabaikan kasus ini, jadi carilah substitusi kasus atau penggunaan “berisi”, yang merupakan agnostik huruf besar/kecil di AppleScript:

tell application "Google Chrome"

Anak-anak, kamu BISA mencobanya di rumah

Jangan ragu untuk mengikuti tes ini dan menghubungkannya ke AI pilihan Anda. Lihat bagaimana hasilnya. Gunakan pengujian ini, dan pengujian lain yang mungkin Anda kembangkan sendiri, untuk membantu Anda merasakan seberapa besar Anda dapat memercayai kode yang dihasilkan AI Anda.

Sejauh ini, saya telah menguji AI berikut selain ChatGPT:

Pantau terus. Saya akan memperbarui daftar artikel ini karena kami memiliki lebih banyak hasil tes.

Sudahkah Anda menggunakan salah satu AI berikut untuk bantuan pemrograman? Apa hasil Anda? Sudahkah Anda mencoba salah satu tes ini pada AI Anda? Apa pengalaman Anda? Beri tahu kami di komentar di bawah.


Anda dapat mengikuti pembaruan proyek saya sehari-hari di media sosial. Pastikan untuk berlangganan buletin pembaruan mingguan sayadan ikuti saya di Twitter/X di @DavidGewirtzdi Facebook di Facebook.com/DavidGewirtzdi Instagram di Instagram.com/DavidGewirtzdan di YouTube di YouTube.com/DavidGewirtzTV.



Fuente