Am cerut ChatGPT să scrie un plugin WordPress de care aveam nevoie. L-a făcut în mai puțin de 5 minute.

gettyimages-1246766124.jpg

Nu vreau să insist, dar sunt mai mult decât îngrijorat. Ca experiment, am cerut lui ChatGPT să scrie un plugin care ar putea economisi timp soției mele în gestionarea site-ului ei. Am redactat o scurtă descriere și ChatGPT a scris totul: interfața utilizatorului, logica și tot.

În mai puțin de cinci minute.

De asemenea: Cei mai buni roboți de conversație AI: ChatGPT și alte alternative interesante de încercat

Există unele implicații. Vom ajunge la aceasta în câteva minute. Mai întâi, haideți să vă prezint experiența și ce s-a întâmplat.

Necesitatea

linie-randomizer-paypal-demo-wordpress-2023-01-31-23-41-28.jpg

Soția mea este proprietara unui site de comerț electronic bazat pe WordPress, concentrat pe un hobby popular. Ea găzduiește, de asemenea, un grup activ pe Facebook pentru clienții site-ului său. În fiecare lună, ea face o listă de nume în mod aleatoriu și apoi efectuează o animație de învârtire virtuală a roții, folosind acea listă randomizată, pentru grupul de Facebook. Ea a utilizat un site de pe internet care face o treabă bună la randomizarea liniilor, dar percepe un preț mai mare decât merită pentru exportarea listei.

De asemenea: Poate detecția AI să ne scape de ChatGPT? Am încercat 3 instrumente online pentru a afla

Pe măsură ce o urmăream luptându-se să obțină numele aleatorii înapoi, m-am gândit că ar fi util să scriu un plugin WordPress rapid pe care l-am putea instala pe site-ul ei. Ea este în panoul de control în fiecare zi, deci ar fi util să aibă acest instrument.

Dar chiar și un simplu plugin mi-ar lua câteva zile să-l scriu, având în vedere elementele interfeței de utilizator și codul de logică, iar eu sunt destul de ocupat cu proiecte în aceste zile.

Și apoi am gândit la ChatGPT. A existat o discuție despre ChatGPT ca un instrument de programare în mass-media, așa că am decis să-i dau o șansă.

Promptul

Cheia pentru a obține ChatGPT să genereze ceva este un prompt bine scris. În cazul programării, gândește-te la acesta ca la un manager sau client. Trebuie să descrii în mod clar ceea ce ai nevoie pentru a obține ceea ce vrei. Am început cu un prompt foarte simplu, doar ca să văd dacă funcționează. Iată promptul pe care l-am utilizat:

cod.jpg

Realizați un modul WordPress compatibil cu PHP 8 care furnizează un câmp de introducere a textului în care se poate lipi o listă de linii și un buton, care, la apăsare, sortează aleator linii din listă și prezintă rezultatele într-un al doilea câmp de introducere a textului.

Într-un minut, a generat codul pe care îl vezi în dreapta. Am copiat codul generat într-un fișier .php, l-am pus într-un folder cu același nume de bază ca și fișierul .php, l-am comprimat și l-am încărcat pe serverul ei. A funcționat.

De asemenea: Hackerii ruși încearcă să pătrundă în ChatGPT, conform Check Point

Când i-am arătat soției mele, a fost impresionată și surprinsă corespunzător. Dar apoi s-au aprins butoanele din mintea ei și a cerut o nouă funcționalitate: asigură-te că numele duplicate nu sunt alături unul de celălalt.

Pentru aplicația ei, uneori va trebui să includă numele cuiva de mai multe ori într-o listă. Dar nu dorea ca acele duplicări să se adune.

Am modificat promptul meu original, adăugând următoarele condiții suplimentare:

...se asigură că nu există două intrări identice una lângă alta (cu excepția cazului în care nu există altă opțiune)...cu numărul de linii trimise și numărul de linii în rezultat identice între ele.

Am inclus expresiile "decât în caz de necesitate" și "cerința de număr identic" pentru a mă asigura că toate numele sunt incluse și, în același timp, am avut îngrijorarea că ar prioritiza faptul că două nume să nu fie alăturate decât să păstrăm toate numele.

Approximativ 30 de secunde mai târziu, am avut un nou modul. L-am încărcat pe server și l-am testat. A funcționat, dar rezultatul a inclus câteva linii goale. Așa că am adăugat această condiție la prompt-ul meu anterior:

...fără linii goale...

Până acum, m-am obișnuit cu timpul de răspuns, care a fost întotdeauna mai mic de un minut. Încă o încărcare și testare, și din nou, a funcționat.

De asemenea: Cum să folosești ChatGPT

Am dorit încă o funcționalitate finală, doar pentru a confirma câte linii au fost procesate. Am dorit ca modulul să afișeze un număr de linii pentru câmpurile de intrare și ieșire. Iată adăugarea acestei indicații:

…Sub primul câmp, afișați textul „Linia pentru a fi randomizată: ” cu numărul de linii neempty din câmpul sursă. Sub al doilea câmp, afișați textul „Linii care au fost randomizate: ” cu numărul de linii neempty din câmpul destinație.

Aceasta a funcționat, în mare parte. Înainte de a rula, câmpul de ieșire arată o singură linie. Dar odată ce procesul de aleatorizare este completat, afișează numărul corect de linii în ambele câmpuri.

Calitatea codului

În general, calitatea codului a fost curată. Prezint doar răspunsul original deoarece altfel nu ar încăpea în articol. Programul a generat corect blocul antetului WordPress și a scris interfața utilizatorului pentru panoul de control al pluginului, precum și logica de procesare a pluginului.

A pus liniile rezumatului deasupra câmpurilor, chiar dacă am specificat mai jos, dar asta nu e o plângere mare. E aceeași greșeală pe care un client o poate primi de la un contractor uman și apoi solicită puțină revizuire pentru a o remedia.

De asemenea: Poate Asistentul de scriere AI al Notion scrie acest articol?

Codificarea a funcționat, dar nu a încorporat toate cele mai bune practici pentru programarea în WordPress. De exemplu, nu a curățat în mod corespunzător intrările utilizatorului. Comunitatea WordPress este riguroasă în privința curățării intrărilor pentru a preveni inserarea de date corupte în câmpurile unui site - iar acest cod nu a avut nicio astfel de măsură.

Ca test ulterior, am instruit inteligenta artificiala să curețe intrările și a făcut-o... într-o anumită măsură. Aceasta a curățat intrarea în interiorul funcției PHP, dar nu a curățat intrarea atunci când se apelează un script PHP în interiorul HTML-ului. Acest lucru ar fi în mod cert reprezentat o vulnerabilitate pentru hackeri.

De asemenea, a mutat elementul de meniu al plugin-ului în Setări. Probabil l-aș fi pus sub Instrumente sau i-aș fi dat funcției propriul element de meniu. Deoarece nu am specificat de unde ar trebui invocat, cred că ChatGPT a luat o decizie fezabilă în plasarea elementului de meniu acolo unde a făcut-o.

Am adăugat o cerință finală la promptul meu, solicitând ca AI să dea un nume la plugin:

Înregistrează un plugin WordPress compatibil cu PHP 8 numit "Robo Randomizer" care...

Destul de ciudat, IA mi-a dat un plugin complet diferit, generând un plugin care oferă un shortcode în loc de o interfață de administrare. Să explic asta celor care nu folosesc WordPress, pentru că este interesant.

Când scrii ceva de genul acesta, poți să-l faci disponibil pe site pentru vizitatori (numit frontend) sau pentru cei care se autentifică în panoul de control al site-ului pentru întreținerea acestuia (numit backend). În setul meu original de prompt-uri, nu am specificat frontend sau backend, dar IA a scris ceea ce am dorit, adică o interfață de backend, panou de control pentru instrument.

De asemenea: OpenAI angajează dezvoltatori pentru a îmbunătăți ChatGPT în ceea ce privește programarea

Dar de data aceasta, a decis să scrie pluginul ca un instrument frontend, făcându-l să se execute prin intermediul unui cod scurt. În WordPress, puteți încorpora un cod scurt (ceva de genul [randomize lines]) într-o postare și acesta va rula codul dintr-un plugin. Ultima versiune pe care AI a produs-o mi-a dat un astfel de cod scurt, care ar fi permis prezentarea funcției de rânduri randomizate vizitatorilor site-ului.

După aceasta, ChatGPT a cam pierdut firea. Nu am putut adăuga funcționalități suplimentare la pluginul original și ChatGPT în mare parte doar a repetat generarea versiunii cu cod scurt. Este clar că întreținerea codului nu este o calitate de bază a ChatGPT.

Implicații

În mod evident, acesta este un plugin simplu. Este aproximativ de dimensiunea temelor pe care le-am dat studenților mei din primul an de programare când predam la UC Berkeley. Nu se compară cu complexitatea mult mai mare a plugin-urilor open source WordPress pe care le întrețin pentru peste 50.000 de utilizatori.

De asemenea: Cu roboţii de conversaţie AI, căutăm răspunsuri în toate locurile greşite?

Săptămâna trecută, când am folosit pentru prima dată ChatGPT pentru a construi plugin-ul rapid pentru soția mea și am postat pe Twitter despre asta, corespondenții de pe rețelele sociale mi-au exprimat rezervele lor. Iată câteva dintre preocupările lor:

Este rău? O persoană s-a preocupat că IA ar putea încorpora informații maligne (sau cel puțin promoționale) în plugin și un utilizator non-programator nu ar ști niciodată. Dar, de fapt, dacă nu ești un programator și nu poți citi codul, chiar dacă faci un contract cu un alt om, nu știi cu adevărat ce se află înăuntru. Totul se reduce fie la a avea încredere în reputație, fie să faci pe cineva în care ai încredere să verifice codul. În cazul codului produs în experimentul meu, era curat.

Este cea mai bună versiune posibilă? Aici, oamenii comparau codul AI-ului cu un standard diferit chiar și față de cei mai buni programatori umani. Sunt un programator bun, dar codul meu are erori. Nu este cea mai bună versiune posibilă... cel puțin nu la început. Dar, cu oamenii, codul devine mai bun în timp. Nu sunt sigur dacă un AI poate lua un cod existent, să-l îmbunătățească, să-i depureze erorile și să-l dezvolte. Cu toate acestea, uneori lucrurile trebuie să fie funcționale. Nu contează întotdeauna dacă sunt cele mai bune din cele mai bune. Destul de bun este adesea suficient. Și a generat cod care a fost suficient de bun.

Se va reduce numărul de proiecte de programare realizate de oameni? Fără îndoială. Urăsc să văd o mașină preluând munca unei persoane (mai ales dacă este unul pe care l-aș putea dori eu). Inteligența artificială este cu siguranță o opțiune pentru proiecte rapide și ușoare, fie că este vorba de scriere sau programare. Salariile oamenilor vor fi afectate, fără îndoială.

Am studiat Inteligența Artificială de decenii. Am făcut o teză despre AI. Dar chiar și cu toate acestea, această creștere a AI generative de înaltă calitate m-a surprins. Cu toate acestea, ceea ce vedem acum este nivelul de productivitate "suficient de bun". Din păcate, asta cer mulți clienți.

Dar--cel puțin momentan--ChatGPT și colegii săi nu pot scrie articole foarte detaliate de analiză ca acesta, deoarece reflectă opinii, anecdote și ani de experiență. Și, deși probabil ar putea scrie subrutine și funcții pentru proiecte de programare mai mari, nu sunt în măsură să scrie proiecte majore de programare.

Și în plus: Demo-ul competitorului ChatGPT al Google nu merge bine

De exemplu, am fost nevoit să am 20-30 de întâlniri în ultimul an cu un important furnizor de API-uri pentru a integra serviciul lor în al meu. Majoritatea acestor întâlniri au inclus aspecte de afaceri, cerințe tehnice și politici de licențiere. Îndrăznesc să spun că niciun AI nu poate face față, să înțeleagă nuanțele unei astfel de situații birocratice și să îndeplinească cerințele partenerilor, iar apoi să poată produce module de cod cu care toată lumea să fie de acord.

Deci, da, sunt puțin speriat de cât de bun a fost plugin-ul pe care l-am "făcut" pentru soția mea. Dar AI-ul mai are mult de mers înainte de a prelua munca de la dezvoltatorii și scriitorii experimentați - atâta timp cât clienții doresc genul de lucrări pe care dezvoltatorii și scriitorii experimentați le produc. Și asta, prietenii mei, este ceva de care mă preocup.

Articole asociate

Vizualizați mai multe >>

Deblocați puterea AI cu HIX.AI!