Ik vroeg ChatGPT om een WordPress-plugin te schrijven die ik nodig had. Het heeft het gedaan in minder dan 5 minuten.

gettyimages-1246766124.jpg

Niet om te overdrijven, maar ik ben behoorlijk geschrokken. Als experiment vroeg ik ChatGPT om een plugin te schrijven die mijn vrouw wat tijd zou kunnen besparen bij het beheren van haar website. Ik schreef een korte beschrijving en ChatGPT schreef alles: de gebruikersinterface, de logica en alles.

Binnen minder dan vijf minuten.

Ook: De beste AI-chatbots: ChatGPT en andere leuke alternatieven om uit te proberen

Er zijn gevolgen. Daar komen we over een paar minuten op terug. Eerst neem ik je mee door de ervaring en wat er gebeurde.

De behoefte

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

Mijn vrouw is de eigenaar van een op WordPress gebaseerde e-commerce website gericht op een populaire hobby. Ze host ook een zeer actieve Facebook-groep voor klanten van haar website. Elke maand maakt ze een willekeurige lijst met namen en gebruikt ze die willekeurige lijst om een virtuele draaiwielanimatie te doen voor de Facebook-groep. Ze gebruikt momenteel een website op internet die redelijk goed is in het willekeurig maken van lijnen, maar er iets meer voor vraagt dan het waard is voor het exporteren van de lijst.

Ook: Kunnen AI-detectoren ons redden van ChatGPT? Ik heb 3 online tools geprobeerd om erachter te komen

Terwijl ik toekeek hoe ze moeite had om de willekeurige namen weer terug te krijgen, bedacht ik me dat het handig zou zijn als ik een snelle WordPress-plugin zou schrijven die we op haar site kunnen installeren. Ze is dagelijks in het dashboard, dus het hebben van dat als een tool zou nuttig zijn.

Maar zelfs een eenvoudige plugin zou me een paar dagen kosten om te schrijven, met alle gebruikersinterface-elementen en logische code, en ik heb momenteel behoorlijk wat projecten lopen.

En toen dacht ik aan ChatGPT. Er is wat discussie geweest over ChatGPT als programmeertool in de media, dus besloot ik het een kans te geven.

De prompt

De sleutel tot het genereren van iets door ChatGPT is een zorgvuldig geschreven aanwijzing. In het geval van programmeren, is het alsof je een manager of klant bent. Je moet duidelijk beschrijven wat je nodig hebt om te krijgen wat je wilt. Ik ben begonnen met een zeer eenvoudige aanwijzing, gewoon om te zien of het zou werken. Hier is de aanwijzing die ik heb gebruikt:

code.jpg

Schrijf een WordPress plugin die compatibel is met PHP 8 en een tekstinvoerveld biedt waarin een lijst met regels kan worden geplakt. Daarnaast is er een knop die, wanneer erop wordt gedrukt, de regels in de lijst willekeurig sorteert en de resultaten weergeeft in een tweede tekstinvoerveld.

Binnen een minuut genereerde het de code die je aan de rechterkant ziet. Ik heb de gegenereerde code gekopieerd naar een .php-bestand, deze in een map geplaatst met dezelfde naam als het .php-bestand, gecomprimeerd en geüpload naar haar server. Het werkte.

Ook: Russische hackers proberen in te breken in ChatGPT, zegt Check Point

Toen ik het aan mijn vrouw liet zien, was ze behoorlijk onder de indruk en verrast. Maar toen begonnen de radertjes te draaien en vroeg ze om een nieuwe functie: zorg ervoor dat dubbele namen niet naast elkaar staan.

Voor haar applicatie moet ze soms iemands naam meerdere keren op een lijst zetten. Maar ze wilde niet dat die duplicaten zich zouden ophopen.

Ik heb mijn oorspronkelijke prompt aangepast en de volgende extra voorwaarden toegevoegd:

...zorgt ervoor dat er geen twee identieke items naast elkaar staan (tenzij er geen andere optie is)... met het aantal regels dat ingevoerd is en het aantal regels in het resultaat identiek aan elkaar.

Ik heb de zin "tenzij er geen andere optie is" en de vereiste van een identieke telling toegevoegd, omdat ik ervoor wilde zorgen dat alle namen waren opgenomen. Ik was bezorgd dat het de prioriteit zou geven aan het vermijden van twee namen naast elkaar, in plaats van het behouden van alle namen.

Ongeveer 30 seconden later had ik een nieuwe plugin. Ik heb die geüpload naar de server en het uitgeprobeerd. Het werkte, maar de output bevatte enkele lege regels. Dus ik heb deze voorwaarde toegevoegd aan mijn vorige prompt:

...zonder lege regels...

Tegen die tijd was ik gewend geraakt aan de doorlooptijd, die altijd minder dan een minuut was. Nog een upload en test, en opnieuw, het werkte.

Ook: Hoe gebruik je ChatGPT

Ik wilde nog een laatste functie, om te bevestigen hoeveel regels er zijn verwerkt. Ik wilde dat de plugin een teller laat zien voor de invoer- en uitvoervelden. Hier is die extra prompt:

...Onder het eerste veld wordt de tekst "Regel om te randomiseren:" weergegeven met het aantal niet-lege regels in het bronveld. Onder het tweede veld wordt de tekst "Regels die zijn ge-randomiseerd:" weergegeven met het aantal niet-lege regels in het bestemmingsveld.

Dit werkte, grotendeels. Voordat het wordt uitgevoerd, toont het uitvoerveld één regel. Maar zodra het randomisatieproces is voltooid, toont het het exacte juiste aantal regels in beide velden.

De codekwaliteit

Over het algemeen was de kwaliteit van de code schoon. Ik presenteer alleen de originele reactie omdat het anders niet in het artikel past. Het programma genereerde op de juiste wijze het WordPress-headerblok en schreef de gebruikersinterface van het dashboard voor de plugin, evenals de verwerkingslogica van de plugin.

Het plaatste mijn samenvattingsregels boven de velden, hoewel ik hieronder had gespecificeerd, maar dat is geen groot probleem. Het is dezelfde soort fout die een klant zou kunnen tegenkomen bij een menselijke aannemer en die dan wat aanpassing vereist om op te lossen.

Ook: Kan Notion AI-schrijfhulp dit artikel schrijven?

Coderen werkte, maar het heeft niet alle beste werkwijzen voor WordPress-programmering geïncorporeerd. Bijvoorbeeld, het heeft de gebruikersinvoer niet gesaneerd. De WordPress-gemeenschap is strikt als het gaat om het saneren van invoer, zodat hackers velden niet kunnen vullen met data die een website kunnen corrumperen - en deze code had niets van dat alles.

Als latere test heb ik de Ai geïnstrueerd om de invoer te saneren, en dat deed het... tot op zekere hoogte. Het heeft de invoer gesaniteerd binnen de PHP-functie, maar het heeft de invoer niet gesaniteerd bij het aanroepen van PHP binnen HTML. Dat zou zeker een opening hebben gelaten voor hackers.

Ook plaatste het de menutitel van de plugin onder Instellingen. Ik had het waarschijnlijk onder Hulpmiddelen geplaatst of de functie een eigen menutitel gegeven. Omdat ik niet had aangegeven waar het vandaan moest worden opgeroepen, denk ik dat ChatGPT een bruikbare beslissing heeft genomen door de menutitel daar te plaatsen waar het nu is.

Ik heb nog één laatste vereiste toegevoegd aan mijn prompt, waarbij ik de AI vraag om de plugin een naam te geven:

Schrijf een PHP 8 compatibele WordPress-plugin genaamd "Robo Randomizer" die...

Opmerkelijk genoeg gaf de AI me een volledig andere plugin, die een shortcode genereert in plaats van een dashboard-interface. Laat me dat uitleggen aan niet-WordPress-gebruikers, want het is interessant.

Als je zoiets schrijft, kun je het beschikbaar maken op de website voor bezoekers (ook wel de frontend genoemd) of voor degenen die inloggen op het dashboard van de site om de zijde te onderhouden (de backend). In mijn oorspronkelijke reeks aanwijzingen gaf ik niet aan of het om een frontend of backend ging, maar de AI schreef wat ik wilde, namelijk een backend dashboard-interface voor de tool.

Daarnaast: OpenAI is op zoek naar ontwikkelaars om ChatGPT beter te maken in coderen

Maar deze laatste keer heeft het besloten om de plugin als een frontend tool te schrijven, waardoor het wordt uitgevoerd via een shortcode. In WordPress kun je een shortcode insluiten (iets als [randomize lines]) in een bericht en het zal code uitvoeren in een plugin. De laatste versie die de AI heeft geproduceerd gaf me zo'n shortcode, waarmee de randomize lines functie aan de bezoekers van de website zou kunnen worden gepresenteerd.

Daarna verloor ChatGPT een beetje de draad. Ik kon geen extra functies toegevoegd krijgen aan de originele plugin en ChatGPT bleef voornamelijk de shortcode-versie genereren. Het is duidelijk dat code-onderhoud niet een van de kernsterktes van ChatGPT is.

Implicaties

Natuurlijk is dit een eenvoudige plug-in. Het is ongeveer van dezelfde omvang als de opdrachten die ik gaf aan mijn eerstejaars programmeerstudenten toen ik doceerde aan UC Berkeley. Het komt bij lange na niet in de buurt van de complexiteit van de veel grotere open source WordPress-plugins die ik onderhoud voor meer dan 50.000 gebruikers.

Ook: Zoeken we met AI-chatbots misschien op de verkeerde plekken naar antwoorden?

Vorige week, toen ik voor het eerst ChatGPT gebruikte om de quickie-plugin voor mijn vrouw te bouwen en erover tweette, waren er enkele bezwaren van mijn volgers op sociale media. Hier zijn enkele van hun zorgen:

Is het kwaadaardig? Eén persoon maakte zich zorgen dat de AI schadelijke (of op zijn minst promotionele) informatie in de plugin zou verwerken en een niet-programmeur gebruiker dit nooit zou weten. Maar het feit is dat, als je geen codeur bent en geen code kunt lezen, je zelfs als je een overeenkomst sluit met een andere persoon niet echt weet wat erin zit. Het komt allemaal neer op het vertrouwen in reputatie, of het vragen aan iemand die je vertrouwt om de code door te nemen. In het geval van de code die geproduceerd is in mijn experiment, was deze schoon.

Is dit het beste wat het kan zijn? Ook hier werden mensen de code van de AI aan een andere standaard houden dan zelfs menselijke programmeurs. Ik ben een goede programmeur, maar mijn code bevat bugs. Het is niet de beste versie die het kan zijn... tenminste niet in het begin. Maar bij mensen wordt code in de loop van de tijd beter. Ik weet niet zeker of een AI bestaande code kan nemen, verbeteren, debuggen en verbeteren. Soms moeten dingen echter gewoon functioneel zijn. Het maakt niet altijd uit of ze de besten van de besten zijn. "Goed genoeg" is vaak goed genoeg. En het genereerde code die goed genoeg was.

Zal het aantal programmeerklussen verminderen? Bijna zonder twijfel. Ik vind het verschrikkelijk om te zien dat een machine iemands baan overneemt (vooral als het er een is die ik zelf misschien zou willen hebben). AI is zeker een optie voor snelle en eenvoudige projecten, of dat nu schrijven of programmeren is. Het salaris van mensen zal ongetwijfeld beïnvloed worden.

Ik bestudeer al tientallen jaren AI. Ik heb een scriptie geschreven over AI. Maar zelfs met al die achtergrond is deze golf van hoogwaardige generatieve AI voor mij verrassend geweest. Dat gezegd hebbende, wat we nu zien is het niveau van productiviteit dat "goed genoeg" is. Helaas is dat wat veel klanten eisen.

Maar -- tenminste voor nu -- kunnen ChatGPT en zijn collega's geen zeer diepgaande analyse-artikelen schrijven zoals deze, omdat ze meningen, anekdotes en jarenlange ervaring weergeven. En hoewel ze waarschijnlijk wel subroutines en functies kunnen schrijven voor grotere codeprojecten, zijn ze gewoon niet in staat om belangrijke codeprojecten te schrijven.

Ook: Fout in demo van Google's ChatGPT concurrent

Bijvoorbeeld, ik heb het afgelopen jaar 20-30 vergaderingen gehad met een belangrijke API-provider om hun dienst in de mijne te integreren. De meeste van die vergaderingen combineerden zakelijke kwesties met technische vereisten en licentiebeleid. Ik daag elke AI uit om om te gaan met, de nuances te begrijpen en te voldoen aan de partnervereisten van dat soort bureaucratische situatie, en vervolgens code-modules te produceren waar iedereen het over eens kan worden.

Dus ja, ik ben een beetje geschrokken van hoe goed de plugin was die ik "gemaakt" heb voor mijn vrouw. Maar de AI heeft nog een lange weg te gaan voordat hij werk overneemt van ervaren ontwikkelaars en schrijvers - zolang klanten willen wat ervaren ontwikkelaars en schrijvers produceren. En dat, mijn vrienden, is iets waar ik me zorgen over maak.

Gerelateerde Artikelen

Bekijk meer >>

Ontgrendel de kracht van AI met HIX.AI!