Saya meminta ChatGPT untuk menulis plugin WordPress yang saya perlukan. Ia melakukannya dalam waktu kurang dari 5 minit

gettyimages-1246766124.jpg

Tidak ingin terlalu terperinci, tetapi saya cukup terkejut. Sebagai eksperimen, saya meminta ChatGPT untuk membuat plugin yang bisa menghemat waktu istri saya dalam mengelola situs webnya. Saya menulis deskripsi singkat dan ChatGPT menulis semuanya: antarmuka pengguna, logika, dan semuanya.

Kurang dari lima minit.

Juga: ChatGPT dan pilihan lain yang menyeronokkan untuk dicuba: chatbot AI terbaik

Terdapat implikasi. Kami akan membincangkan itu dalam beberapa minit. Pertama, biarkan saya mengemukakan pengalaman dan apa yang berlaku.

Kepentingan

garis-pemendekan-paypal-demo-wordpress-2023-01-31-23-41-28.jpg

Isteri saya merupakan pemilik laman e-dagang berasaskan WordPress yang memberi tumpuan kepada suatu hobi popular. Beliau juga mengendalikan kumpulan Facebook yang sangat aktif bagi pelanggan laman webnya. Setiap bulan, beliau membuat senarai nama secara rawak, dan kemudian menjalankan animasi putar roda maya dengan menggunakan senarai yang telah dirawakn tersebut kepada kumpulan Facebook. Beliau telah menggunakan satu laman di dalam internet yang mempunyai fungsi rawakan senarai yang secara adil, tetapi mengenakan bayaran yang sedikit melebihi nilai sebenarnya untuk eksport senarai tersebut.

Juga: Dapatkah pengesan AI menyelamatkan kita daripada ChatGPT? Saya mencuba 3 alat dalam talian untuk mencari tahu

Berpandangan dengan susah payahnya untuk mendapatkan semula nama-nama yang dirandomkan, saya berfikir mungkin akan berguna jika saya menulis satu plugin WordPress yang pantas yang dapat dipasang di laman webnya. Dia berada di dashboard setiap hari, jadi mempunyai perkakas itu akan berguna.

Tetapi walaupun plugin yang mudah akan mengambil beberapa hari untuk ditulis, dengan elemen antara muka pengguna dan kod logiknya, dan saya sudah penuh dengan projek-projek pada masa ini.

Dan akhirnya saya terfikir mengenai ChatGPT. Terdapat beberapa perbincangan mengenai ChatGPT sebagai alat pengaturcaraan dalam media, jadi saya memutuskan untuk mencubanya.

Rentetan

Kekunci untuk mendapatkan ChatGPT menghasilkan sesuatu adalah dengan menulis prompt dengan teliti. Dalam konteks pemrograman, bayangkan diri Anda sebagai seorang pengurus atau pelanggan. Anda harus dengan jelas menjelaskan apa yang Anda butuhkan agar dapat memperoleh yang Anda inginkan. Saya mulai dengan sebuah prompt yang sangat dasar, hanya untuk melihat apakah itu bisa berhasil. Berikut prompt yang saya gunakan:

kod.jpg

Tulis plugin WordPress yang kompatibel dengan PHP 8 yang menyediakan bidang entri teks di mana daftar baris dapat ditempelkan ke dalamnya dan tombol yang, ketika ditekan, mengacak baris-baris dalam daftar dan menampilkan hasilnya dalam bidang entri teks kedua.

Dalam masa satu minit, ia menjana kod yang anda lihat di sebelah kanan. Saya menyalin kod yang dijana ke dalam fail .php, meletakkannya di dalam satu folder yang mempunyai nama akar yang sama dengan fail .php, memampatkannya, dan memuat naik ke server beliau. Ia berfungsi.

Juga: Penggodam Rusia cuba merosakkan ChatGPT, kata Check Point

Apa yang saya tunjukkan kepada isteri saya, dia terkesan dan terkejut dengan itu. Tetapi, dia kemudiannya meminta satu ciri baru: pastikan nama yang sama tidak bersebelahan.

Untuk permohonannya, kadang-kadang dia perlu menyertakan nama seseorang dalam senarai berkali-kali. Tetapi dia tidak mahu nama-nama yang sama berkumpul.

Saya mengubah pemboleh ubah asal saya, dengan menambahkan syarat-syarat tambahan berikut:

... memastikan tiada dua entri yang sama bersebelahan (kecuali jika tidak ada pilihan lain)... dengan jumlah baris yang dikemukakan dan jumlah baris dalam hasilnya yang sama.

Saya menyertakan frasa "kecuali jika tidak ada pilihan lain" dan keperluan yang sama untuk memastikan semua nama dimasukkan, dan saya khawatir itu akan memberikan prioritas pada ketidakperluan ada dua nama bersebelahan daripada menjaga semua nama.

Kira-kira 30 saat kemudian, saya mempunyai satu plugin baru. Saya memuat naik plugin itu ke pelayan dan mencubanya. Ia berfungsi, tetapi outputnya mengandungi beberapa baris kosong. Jadi saya menambah syarat ini ke dalam taklimat saya sebelum ini:

...tanpa baris kosong...

Pada masa ini, saya telah terbiasa dengan masa pusingan yang sentiasa kurang daripada satu minit. Satu lagi muat naik dan ujian, dan sekali lagi, ia berjaya.

Juga: Cara menggunakan ChatGPT

Saya ingin menambahkan satu fitur terakhir, hanya untuk mengonfirmasi berapa banyak baris yang telah diproses. Saya ingin plugin ini menampilkan jumlah baris untuk field masukan dan keluaran. Berikut adalah penambahan prompt tersebut:

...Di bawah medan pertama, paparkan teks menyatakan "Garis untuk dikacaukan: " dengan jumlah garis kosong bukan dalam medan sumber. Di bawah medan kedua, paparkan teks menyatakan "Garis yang telah dikacaukan: " dengan jumlah garis bukan kosong dalam medan destinasi.

Ini berfungsi, sebahagian besarnya. Sebelum dijalankan, medan output menunjukkan satu baris. Tetapi setelah proses acak selesai, ia menunjukkan jumlah baris yang tepat dalam kedua medan.

Kualiti kod

Secara keseluruhannya, kualiti kod ini bersih. Saya hanya memaparkan respon asal kerana jika tidak, ia tidak akan muat dalam artikel. Program ini dengan betul menghasilkan blok tajuk WordPress dan menulis antara muka pengguna papan pemuka untuk plugin, serta logik pemprosesan plugin tersebut.

Ia meletakkan baris ringkasan saya di atas medan-medan itu, walaupun saya menetapkannya di bawah. Tetapi itu bukan aduan besar. Ia adalah kesilapan yang sama seperti yang mungkin diberikan oleh pembekal manusia kepada pelanggan, dan kemudiannya memerlukan sedikit kerja ulang untuk membaiki.

Juga: Bolehkah pembantu penulisan AI Notion menulis artikel ini?

Coding berfungsi, tetapi tidak menggabungkan semua praktik terbaik untuk pemrograman WordPress. Sebagai contoh, ia tidak menyucikan input pengguna. Komuniti WordPress sangat teliti dalam menyucikan input agar penyerang tidak dapat meletakkan data yang boleh merosakkan laman web - dan kod ini tidak mempunyai sebarang langkah keselamatan tersebut.

Sebagai ujian kemudian, saya mengarahkan Ai untuk membersihkan input, dan ia… hingga suatu tahap. Ia membersihkan input di dalam fungsi PHP, tetapi ia tidak membersihkan input ketika memanggil PHP dalam HTML. Ini pastinya akan membuka peluang kepada penceroboh.

Juga, ia memindahkan item menu plugin ke Tetapan. Saya mungkin akan meletakkannya di bawah Alat atau memberikan ciri itu menu item sendiri. Oleh kerana saya tidak menentukan di mana ia harus diaktifkan, saya fikir ChatGPT membuat keputusan yang dapat diterima dengan meletakkan item menu di tempat tersebut.

Saya menambahkan satu lagi keperluan terakhir pada permintaan saya, meminta AI memberi nama pada plugin tersebut:

Tulis satu plugin WordPress yang kompatibel dengan PHP 8 yang bernama "Robo Randomizer" yang...

Secara aneh, AI memberi saya plugin yang benar-benar berbeda, menghasilkan plugin yang menyediakan shortcode daripada antarmuka dasbor. Biar saya jelaskan kepada pengguna bukan WordPress, karena ini menarik.

Apa yang harus anda lakukan adalah dengan menyediakannya di laman web untuk pelawat (disebut frontend) atau kepada mereka yang log masuk ke papan pemuka laman web untuk mengendalikan laman web (disebut backend). Dalam set asal soalan saya, saya tidak menyatakan frontend atau backend, tetapi AI menulis apa yang saya inginkan, iaitu antara muka backend, papan pemuka untuk peralatan ini.

Juga: OpenAI sedang mencari pembangun untuk membuat ChatGPT menjadi lebih baik dalam pemrograman

Tetapi kali ini, ia memutuskan untuk menulis plugin sebagai alat frontend, membuatnya dieksekusi melalui kode singkat (shortcode). Di WordPress, Anda dapat menyematkan kode singkat (seperti [randomize lines]) dalam sebuah pos dan kode dalam plugin akan dieksekusi. Versi terakhir yang dihasilkan oleh AI memberi saya kode singkat tersebut, yang akan memungkinkan fitur randomize lines ditampilkan kepada pengunjung situs.

Selepas ini, ChatGPT agak kehilangan jejak. Saya tidak dapat menambahkan fungsi tambahan ke plugin asal dan ChatGPT kebanyakannya hanya mengulangi menghasilkan versi pendek kod. Jelas, penyelenggaraan kod bukan kekuatan utama ChatGPT.

Akibat

Jelasnya, ini adalah satu plugin yang ringkas. Saiznya hampir sama dengan tugas yang saya berikan kepada pelajar tahun pertama pengajian komputer saya ketika mengajar di UC Berkeley. Ia tidak mencapai tahap kompleksiti plugin WordPress sumber terbuka yang lebih besar yang saya kawal untuk lebih daripada 50,000 pengguna.

Juga: Dengan chatbot AI, adakah kita mencari jawapan di tempat yang salah?

Minggu lalu, ketika saya pertama kali menggunakan ChatGPT untuk membuat plugin quickie untuk istri saya dan menyebarkannya di Twitter, koresponden di media sosial saya memberikan tanggapan. Berikut adalah beberapa kekhawatiran mereka:

Adakah ia jahat? Seseorang bimbang bahawa AI akan menyisipkan maklumat yang berbahaya (atau sekurang-kurangnya promosi) dalam plugin dan pengguna yang bukan pengaturcara tidak akan menyedarinya. Tetapi hakikatnya, jika anda bukan seorang pengaturcara dan tidak dapat membaca kod, walaupun anda berurusan dengan manusia yang lain, anda tidak benar-benar tahu apa yang ada di dalamnya. Semuanya bergantung kepada kepercayaan reputasi, atau mendapatkan seseorang yang anda percayai untuk melihat kod tersebut. Dalam kes kod yang dihasilkan dalam eksperimen saya, ia bersih.

Adakah ini yang terbaik mungkin? Di sini sekali lagi, orang-orang menilai kod AI dengan standard yang berbeza daripada coder manusia. Saya adalah seorang programmer yang baik, tetapi kod saya ada bug. Ia bukan yang terbaik mungkin...setidaknya bukan pada mulanya. Tetapi dengan manusia, kod menjadi lebih baik dari masa ke masa. Saya tidak pasti sama ada AI dapat mengambil kod sedia ada, meningkatkannya, debug dan penyempurnakannya. Walau bagaimanapun, kadang-kadang perkara hanya perlu berfungsi. Tidak selalu penting jika ia adalah yang terbaik. Cukup baik adalah seringkali cukup baik. Dan ia menghasilkan kod yang cukup baik.

Adakah ini akan mengurangkan bilangan tugas pengaturcaraan manusia? Hampir pasti. Saya tidak suka melihat mesin mengambil pekerjaan seseorang (terutamanya jika itu adalah satu pekerjaan yang mungkin saya inginkan). Kecerdasan Buatan (AI) tentu merupakan pilihan untuk projek-projek yang cepat dan mudah, sama ada itu penulisan atau pengaturcaraan. Gaji orang-orang akan terjejas, tanpa ragu lagi.

Saya telah mempelajari AI selama beberapa dekad. Saya pernah membuat tesis tentang AI. Tetapi walaupun dengan latar belakang tersebut, lonjakan dalam AI generatif berkualitas tinggi ini sungguh mengejutkan bagi saya. Namun demikian, yang sedang kita lihat sekarang ini adalah tingkat produktivitas yang "cukup baik". Sayangnya, itu yang banyak klien minta.

Tetapi - sekurang-kurangnya untuk masa kini - ChatGPT dan rakan-rakannya tidak dapat menulis artikel analisis yang sangat mendalam seperti ini, kerana mereka mencerminkan pendapat, anekdot, dan pengalaman bertahun-tahun. Dan walaupun mereka mungkin dapat menulis subrutin dan fungsi untuk projek pengaturcaraan yang lebih besar, mereka hanya tidak dapat menulis projek pengaturcaraan yang besar.

Juga: Demo pesaing ChatGPT dari Google gagal

Sebagai contoh, saya telah mengadakan 20-30 perjumpaan dalam setahun terakhir dengan pembekal API utama untuk mengintegrasikan perkhidmatan mereka ke dalam perkhidmatan saya. Kebanyakan perjumpaan tersebut menyatukan isu-isu perniagaan dengan keperluan teknikal dan dasar lesen. Saya menantang mana-mana AI untuk bertahan, memahami nuansa, dan memenuhi keperluan rakan kongsi dalam situasi birokrasi seperti itu, dan kemudian dapat menghasilkan modul kod yang dapat disepakati oleh semua orang.

So, ya, saya agak terkejut dengan betapa baiknya plugin yang saya "buat" untuk isteri saya. Tapi kecerdasan buatan masih jauh sebelum ia mengambil kerja dari pembangun dan penulis berpengalaman -- selama klien ingin jenis kerja yang dibuat oleh pembangun dan penulis berpengalaman. Dan itulah, teman-teman, sesuatu yang saya khawatirkan.

Artikel Berkaitan

Lihat Lebih Banyak >>

Buka kunci kuasa AI dengan HIX.AI!