Jeg bad ChatGPT om at skrive en WordPress-plugin, jeg havde brug for. Det gjorde den på mindre end 5 minutter

gettyimages-1246766124.jpg

For at sige det ligeud, så er jeg mere end lidt foruroliget. Som et eksperiment bad jeg ChatGPT om at skrive en plugin, der kunne spare min kone noget tid med at håndtere hendes hjemmeside. Jeg skrev en kort beskrivelse, og ChatGPT skrev det hele: brugergrænseflade, logik og alt.

På mindre end fem minutter.

Også: De bedste AI chatbots: ChatGPT og andre sjove alternativer at prøve

Der er nogle implikationer. Vi kommer til det om et par minutter. Først vil jeg guide dig igennem oplevelsen og hvad der skete.

Behovet

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

Min kone er indehaver af en WordPress-baseret e-handelsside, der fokuserer på en populær hobby. Hun er også vært for en meget aktiv Facebook-gruppe for kunderne på hendes side. Hver måned laver hun en tilfældig liste over navne og laver derefter en virtuel hjulrotation, hvor hun bruger den tilfældige liste, til Facebook-gruppen. Hun har hidtil brugt en hjemmeside på internettet, der gør det ret godt med at tilfældiggøre linjer, men den tager lidt mere end prisen er værd for at eksportere listen.

Også: Kan AI-detektorer redde os fra ChatGPT? Jeg prøvede 3 onlineværktøjer for at finde ud af det

Mens jeg så hende kæmpe for at få de tilfældige navne tilbage, tænkte jeg, at det måske ville være hjælpsomt, hvis jeg skrev en hurtig WordPress-plugin, som vi kunne installere på hendes hjemmeside. Hun er i kontrolpanelet hver dag, så det ville være nyttigt at have det som et værktøj.

Men selv en simpel plugin ville tage mig et par dage at skrive, med brugergrænsefladeelementer og logikkode, og jeg har temmelig mange projekter i øjeblikket.

Og så tænkte jeg på ChatGPT. Der har været nogle diskussioner om ChatGPT som et programmeringsværktøj i medierne, så jeg besluttede at prøve det.

Opgaven

Nøglen til at få ChatGPT til at generere noget er en omhyggeligt skrevet prompt. I tilfældet med programmering kan du tænke på dig selv som en manager eller klient. Du skal tydeligt beskrive, hvad du har brug for for at få det, du ønsker. Jeg startede med en meget grundlæggende prompt, bare for at se om det ville virke. Her er den prompt, jeg brugte:

kode.jpg

Skab en WordPress-plugin, der er kompatibel med PHP 8 og giver en tekstindtastningsfelt, hvor en liste med linjer kan indsættes, og en knap, der, når den trykkes på, tilfældigt sorterer linjerne i listen og viser resultaterne i et andet tekstindtastningsfelt.

Inden for et minut genererede den koden, du ser til højre. Jeg kopierede den genererede kode ind i en .php-fil, lagde den i en mappe med det samme rodnavn som .php-filen, komprimerede den og uploadede den til hendes server. Det virkede.

Også: Russiske hackere forsøger at bryde ind i ChatGPT, siger Check Point

Da jeg viste det til min kone, var hun passende imponeret og overrasket. Men så begyndte hjulene at dreje, og hun bad om en ny funktion: sørg for, at duplikerede navne ikke er side om side.

Til hendes ansøgning vil hun nogle gange have brug for at inkludere en persons navn på en liste mange gange. Men hun ønskede ikke, at disse dupliceringer skulle danne klynger.

Jeg ændrede min originale prompt ved at tilføje følgende yderligere betingelser:

...sørger for, at der ikke er to ens indtægter ved siden af hinanden (medmindre der ikke er andre muligheder)...med antallet af linjer, der er indsendt, og antallet af linjer i resultatet, der er ens

Jeg inkluderede frasen "medmindre der ikke er andre muligheder" og kravet om identisk antal, fordi jeg ønskede at sikre, at alle navnene blev inkluderet, og jeg var bekymret for, at det ville prioritere behovet for, at ingen navne var side om side, frem for at beholde alle navne.

Omtrent 30 sekunder senere havde jeg et nyt plugin. Jeg uploadede det til serveren og prøvede det af. Det virkede, men outputtet inkluderede nogle blanke linjer. Så jeg tilføjede denne betingelse til min forrige prompt:

...uden tomme linjer...

På dette tidspunkt var jeg vænnet til den hurtige gennemløbstid, som altid var under et minut.Én mere upload og test, og igen, det virkede.

Også: Sådan bruger du ChatGPT

Jeg ville gerne have en sidste funktion, bare for at bekræfte, hvor mange linjer der var blevet behandlet. Jeg ville have plugin'en til at vise en tælling af linjer for indtastnings- og outputfelterne. Her er den prompte tilføjelse:

...Under det første felt, vis tekst der siger "Linje til at tilfældiggøre: " med antallet af ikke-tomme linjer i kildefeltet. Under det andet felt, vis tekst der siger "Linjer der er blevet tilfældiggjort: " med antallet af ikke-tomme linjer i destinationsfeltet.

Dette fungerede, for det meste. Inden kørslen viser output-feltet én linje. Men når den tilfældige proces er fuldført, viser den det nøjagtigt rigtige antal linjer i begge felter.

Kodekvaliteten

Generelt set var kodekvaliteten ren. Jeg viser kun den oprindelige respons, fordi den ellers ikke ville passe ind i artiklen. Programmet genererede korrekt WordPress-headerblokken og skrev brugergrænsefladen til plugin'et samt plugin'ets behandlingslogik.

Det satte mine opsummeringslinjer ovenover felterne, selvom jeg specificerede nedenunder, men det er ikke en stor klage. Det er den slags fejl, en klient måske ville få fra en menneskelig entreprenør, og så kræve en smule omarbejde for at rette det.

Også: Kan Notion AI skrivehjælp skrive denne artikel?

Codningen fungerede, men den implementerede ikke alle bedste praksisser for WordPress-programmering. For eksempel blev brugerinput ikke renset. WordPress-fællesskabet er strenge med at rense input, så hackere ikke kan fylde felter med data, der kan beskadige en hjemmeside - og denne kode havde intet af det.

Som en senere test instruerede jeg Ai'en til at rense input, og det gjorde den til en vis grad. Den renser inputtet inde i PHP-funktionen, men den renser ikke inputtet, når PHP kaldes inden for HTML. Det ville helt sikkert have åbnet for hackere.

Det placerede også pluginets menuvare under Indstillinger. Jeg ville sandsynligvis have placeret den under Værktøjer eller givet funktionen sin egen menuvare. Da jeg ikke specificerede, hvor den skulle aktiveres fra, synes jeg, at ChatGPT traf en brugbar beslutning ved at placere menuvaren, hvor den gjorde.

Jeg tilføjede én sidste krav til min forespørgsel og bad AI'en om at give plugin'et et navn:

Skriv en PHP 8-kompatibel WordPress-plugin kaldet "Robo Randomizer", der...

Mærkværdigt nok gav AI'en mig en helt anden plugin, der genererer en plugin, der giver en shortcode i stedet for et dashboard interface. Lad mig forklare det til ikke-WordPress-brugere, fordi det er interessant.

Når du skriver noget som dette, kan du gøre det tilgængeligt på hjemmesiden for besøgende (kaldet frontend) eller til dem, der logger ind på sitets kontrolpanel for at vedligeholde siden (backend). I min originale række af angivelser specificerede jeg ikke frontend eller backend, men AI'en skrev det, jeg ønskede, nemlig et backend-dashboard interface til værktøjet.

Også: OpenAI ansætter udviklere til at forbedre ChatGPT's evner inden for kodning

Men denne sidste gang besluttede det at skrive plugin'et som et frontend-værktøj, så det kan køres gennem en shortcode. I WordPress kan du indsætte en shortcode (noget lignende [tilfældig linjer]) i en post, og det vil køre kode i et plugin. Den sidste version, som AI'en producerede, gav mig en sådan shortcode, der ville have tilladt tilfældige linjer funktionen at blive præsenteret for besøgende på webstedet.

Efter dette mistede ChatGPT tråden. Jeg var ikke i stand til at få tilføjet yderligere funktioner til den oprindelige plugin, og ChatGPT gentog mest af alt genereringen af kortkodeversionen. Det er tydeligt, at kodevedligeholdelse ikke er en kernekompetence hos ChatGPT.

Konsekvenser

Åbenlyst er dette en simpel plugin. Den er omtrent samme størrelse som de opgaver, jeg gav mine førsteårsstuderende i programmering, da jeg underviste på UC Berkeley. Den når ikke nær kompleksiteten af de meget, meget større open source WordPress-plugins, jeg vedligeholder for 50.000+ brugere.

Også: Med AI-chatbots leder vi måske efter svar på alle de forkerte steder?

Sidste uge, da jeg første gang anvendte ChatGPT til at opbygge quickie-pluginet til min kone og tweetede om det, kom der reaktioner fra mine sociale medier. Her er nogle af deres bekymringer:

Er det ondskabsfuldt? En person var bekymret for, at AI'en ville indlejre ondsindede (eller i det mindste reklamefyldte) oplysninger i plugin'en, og en ikke-programmør ville aldrig vide det. Men faktum er, hvis du ikke er en programmør og ikke kan læse kode, så ved du faktisk ikke, hvad der er inde i det, selvom du kontraherer med en anden person. Det kommer alt sammen ned til enten at stole på et omdømme eller få nogen, du stoler på, til at kigge koden igennem. I tilfældet med koden produceret i mit eksperiment var den ren.

Er det det bedste, det kan være? Her var folk igen, der holdt AI'ens kode op imod en anden standard end selv menneskelige programmører. Jeg er en god programmør, men min kode har fejl. Den er ikke det bedste, den kan være... i hvert fald ikke fra starten. Men med mennesker bliver koden bedre over tid. Jeg er ikke sikker på, om en AI kan tage eksisterende kode, forbedre den, rette fejl og forbedre den. Men nogle gange skal tingene bare være funktionelle. Det betyder ikke altid noget, om de er de bedste af de bedste. Godt nok er ofte godt nok. Og det genererede kode, der var godt nok.

Vil det reducere antallet af human-programmeringsopgaver? Højst sandsynligt. Jeg bryder mig ikke om at se en maskine tage nogen persons job (især hvis det er en, jeg måske gerne vil have). Kunstig intelligens er bestemt en mulighed for hurtige og nemme projekter, uanset om det er skrivning eller programmering. Folkets lønsedler vil utvivlsomt blive påvirket.

Jeg har studeret kunstig intelligens i årtier. Jeg har skrevet en afhandling om kunstig intelligens. Men selv med al den baggrund har denne bølge af høj kvalitet generativ kunstig intelligens overrasket mig. Det sagt, det vi ser nu er et niveau af produktivitet, der er "godt nok". Desværre er det hvad mange klienter efterspørger.

Men - i hvert fald for nu - kan ChatGPT og dens venner ikke skrive superdybdegående analyseartikler som denne, fordi de afspejler meninger, anekdoter og års erfaring. Og selvom de sandsynligvis kan skrive subrutiner og funktioner til større kodningsprojekter, er de simpelthen ikke i stand til at skrive store kodningsprojekter.

Også: Googles ChatGPT konkurrent-demo går galt

For eksempel har jeg været nødt til at have 20-30 møder i løbet af det sidste år med en stor API-udbyder for at integrere deres service i min. De fleste af disse møder blandede forretningsmæssige spørgsmål med tekniske krav og licenspolitikker. Jeg udfordrer enhver AI til at kunne klare, forstå nuancerne af og imødekomme partnerkravene i den slags bureaukratiske situation og derefter være i stand til at producere kode-moduler, som alle kan blive enige om.

Så ja, jeg er lidt skræmt over, hvor god plugin'et var, som jeg "lavede" til min kone. Men AI'en har lang vej endnu, før den tager arbejde fra erfarne udviklere og forfattere - så længe kunderne ønsker den slags arbejde, som erfarne udviklere og forfattere producerer. Og det er noget, mine venner, som jeg bekymrer mig om.

Relaterede Artikler

Se mere >>

Lås op for AI-kraften med HIX.AI!