Jeg ba ChatGPT om å skrive en WordPress-plugin jeg trengte. Den gjorde det på under 5 minutter.

gettyimages-1246766124.jpg

For å ikke være altfor nøye kunne jeg tenke meg mer enn litt freaket ut. Som et eksperiment ba jeg ChatGPT om å skrive en tilleggsmodul som kunne spare min kone tid med administrasjonen av nettsiden hennes. Jeg skrev en kort beskrivelse og ChatGPT skrev hele greia: brukergrensesnitt, logikk og alt.

I løpet av mindre enn fem minutter.

Også: De beste AI-chatbotene: ChatGPT og andre morsomme alternativer å prøve

Det er noen implikasjoner. Vi kommer til å komme til det om noen få minutter. Først skal jeg guide deg gjennom opplevelsen og hva som skjedde.

Behovet

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

Min kone er eieren av en WordPress-basert e-handelsside som fokuserer på en populær hobby. Hun har også en svært aktiv Facebook-gruppe for kundene på nettstedet hennes. Hver måned lager hun en tilfeldig liste over navn og utfører deretter en virtuell hjulsnurresanimasjon med den tilfeldige listen for Facebook-gruppen. Hun har brukt en nettside på internett som gjør en ganske god jobb med å tilfeldiggjøre linjer, men de tar litt mer betalt enn det er verdt for å eksportere listen.

Også: Kan AI-detektorer redde oss fra ChatGPT? Jeg prøvde 3 nettverktøy for å finne ut det

Da jeg så henne slite med å få de tilfeldige navnene tilbake, tenkte jeg at det kunne være nyttig hvis jeg skrev en rask WordPress-plugin som vi kunne installere på nettsiden hennes. Hun er innom dashbordet hver dag, så det å ha det som et verktøy ville være hjelpsomt.

Men selv en enkel tilleggsmodul ville ta meg noen dager å programmere, med brukergrensesnittet og logikkoden, og jeg har ganske mange prosjekter disse dagene.

Og så tenkte jeg på ChatGPT. Det har vært litt diskusjon om ChatGPT som et programmeringsverktøy i mediene, så jeg bestemte meg for å prøve det.

Oppgaven

Nøkkelen til å få ChatGPT til å generere noe er en nøye skrevet påminnelse. Når det gjelder programmering, kan du tenke på deg selv som en leder eller klient. Du må klart beskrive hva du trenger for å få det du vil ha. Jeg startet med en veldig grunnleggende påminnelse, bare for å se om det ville fungere. Her er påminnelsen jeg brukte:

kode.jpg

Skriv en WordPress-plugin som er kompatibel med PHP 8, og som gir en tekstinndatafelt der en liste med linjer kan limes inn, og en knapp som når den trykkes, tilfeldig sorterer linjene i listen og presenterer resultatene i et annet tekstinndatafelt.

Innen ett minutt genererte den koden du ser til høyre. Jeg kopierte den genererte koden inn i en .php-fil, la den i en mappe med samme rot navn som .php-filen, komprimerte den og lastet den opp til hennes server. Det fungerte.

Også: Russiske hackere prøver å bryte seg inn i ChatGPT, sier Check Point

Da jeg viste det til kona mi, ble hun passende imponert og overrasket. Men så begynte tankene å spinne, og hun ba om en ny funksjon: pass på at duplikate navn ikke er ved siden av hverandre.

For hennes søknad, vil hun av og til trenge å inkludere noen sitt navn på en liste mange ganger. Men hun ønsket ikke at disse duplikatene skulle klumpe seg sammen.

Jeg endret den opprinnelige meldingen min ved å legge til følgende ekstra betingelser:

...sørger for at ingen identiske oppføringer er ved siden av hverandre (med mindre det ikke er noe annet alternativ)...med antall linjer som er sendt inn og antall linjer i resultatet er identiske med hverandre.

Jeg inkluderte frasen «med mindre det ikke finnes andre alternativer» og kravet om identisk telling fordi jeg ønsket å sikre at alle navnene ble inkludert, og jeg var bekymret for at det ville prioritere behovet for at ingen to navn skulle være ved siden av hverandre, framfor å beholde alle navnene.

Ca. 30 sekunder senere hadde jeg en ny plugin. Jeg lastet den opp til serveren og prøvde den ut. Den fungerte, men utskriften inneholdt noen blanke linjer. Så la jeg til denne betingelsen til min forrige prompt:

...uten blanke linjer...

Så langt hadde jeg blitt vant til responstiden, som alltid var mindre enn ett minutt. En opplasting til og en test til, og nok en gang, det fungerte.

Også: Hvordan bruke ChatGPT

Jeg ønsket en siste funksjon, bare for å bekrefte hvor mange linjer som hadde blitt behandlet. Jeg ønsket at tillegget skulle vise telleren for linjer for inngangs- og utgangsfeltene. Her er tillegget:

...Under the first field, display text stating "Linje å tilfeldighetsbestemme: " med antall ikke-tomme linjer i kildefeltet. Under den andre feltet, vis tekst som sier "Linjer som er tilfeldighetsbestemt: " med antall ikke-tomme linjer i destinasjonsfeltet.

Dette fungerte, for det meste. Før kjøring vises en linje i utdatafeltet. Men når tilfeldig prosess er fullført, vises riktig antall linjer i begge feltene.

Kodekvaliteten

Generelt sett var koden av god kvalitet. Jeg viser bare frem den originale responsen fordi den ellers ikke ville passe i artikkelen. Programmet genererte riktig WordPress-headerblokk og skrev brukergrensesnittet for kontrollpanelet til utvidelsen, samt utvidelsens behandlingslogikk.

Den la oppsummeringslinjene mine ovenfor feltene, selv om jeg spesifiserte under, men det er ikke en stor klage. Det er den samme typen feil en kunde kan få fra en menneskelig entreprenør, og kreve litt omarbeid for å fikse.

Også: Kan Notion AI skrive denne artikkelen?

Kodingen fungerte, men den tok ikke hensyn til alle beste praksiser for WordPress-programmering. For eksempel så ble ikke brukerens input sanert. WordPress-samfunnet er nøye med å sanere input slik at hackere ikke kan legge inn data som kan ødelegge en nettside - og denne koden hadde ingen av disse tiltakene.

Som en senere test, instruerte jeg Ai'en til å sanitisere inndata, og det gjorde den... til en viss grad. Den sanitiserte inndataen inne i PHP-funksjonen, men den sanitiserte ikke inndataen når PHP blir kalt innenfor HTML. Det ville definitivt ha skapt en åpning for hackere.

Den la også til stikkontaktens menyelement under Innstillinger. Jeg ville sannsynligvis ha plassert det under Verktøy eller gitt funksjonen sitt eget menyelement. Ettersom jeg ikke spesifiserte hvor den skulle kalles fra, tror jeg ChatGPT tok en fungerende beslutning ved å plassere menyelementet der det ble gjort.

Jeg la til et siste krav i oppgaven min, og ba AI-en gi navn til tillegget:

Skriv en PHP 8-kompatibel WordPress-plugin kalt "Robo Randomizer" som…

Merkelig nok ga AI-en meg en helt annen plugin, som genererer en plugin som gir en kortkode i stedet for et dashbordgrensesnitt. La meg forklare det til ikke-WordPress-brukere, fordi det er interessant.

Når du skriver noe som dette, kan du gjøre det tilgjengelig på nettsiden for besøkende (kalt frontend) eller for de som logger inn på nettstedets dashbord for å vedlikeholde siden (backend). I mine opprinnelige instruksjoner spesifiserte jeg ikke frontend eller backend, men AI-en skrev det jeg ønsket, nemlig et backend-dashbordgrensesnitt for verktøyet.

Også: OpenAI ansetter utviklere for å gjøre ChatGPT bedre på programmering

Men denne siste gangen bestemte den seg for å skrive tillegget som et frontend-verktøy, slik at det kan kjøres gjennom en shortcode. I WordPress kan du legge inn en shortcode (noe lignende [randomize lines]) i et innlegg, og det vil kjøre koden i et tillegg. Den siste versjonen som AI-en produserte ga meg en slik shortcode, som ville ha tillatt at funksjonen for tilfeldig rekkefølge av linjer ble presentert for besøkende på nettstedet.

Etter dette mistet ChatGPT litt tråden. Jeg klarte ikke å få lagt til ekstra funksjoner i den opprinnelige plugin-en og ChatGPT gjentok stort sett bare genereringen av kortkodeversjonen. Det er tydelig at kodevedlikehold ikke er en kjernekompetanse for ChatGPT.

Konsekvenser

Selvfølgelig er dette en enkel utvidelse. Den er omtrent på størrelse med oppgavene jeg ga til mine førsteårsprogrammeringselever da jeg underviste ved UC Berkeley. Den er langt fra så kompleks som de mye, mye større åpne kildekode-utvidelsene for WordPress som jeg vedlikeholder for over 50 000 brukere.

Også: Med AI-chatbots, leter vi etter svar på alle de feile stedene?

I forrige uke, da jeg først brukte ChatGPT til å lage den raske plugin-modulen for kona mi og twitret om det, fikk jeg motstand fra mine følgere på sosiale medier. Her var noen av deres bekymringer:

Er det ondskapsfullt? En person var bekymret for at AIen ville inneholde skadelig (eller i det minste promotert) informasjon i tillegget, og at en ikke-programmeringsbruker aldri ville finne ut av det. Men faktum er at hvis du ikke er en koder og ikke kan lese kode, selv om du inngår avtale med en annen person, så vet du egentlig ikke hva som er inni. Det kommer alt ned til å enten stole på omdømmet eller få noen du stoler på til å undersøke koden. I tilfellet med koden produsert i mitt eksperiment, var den ren.

Er det det beste det kan være? Her igjen holdt folk opp AI-koden til en annen standard enn selv humankodere. Jeg er en god programmerer, men koden min har feil. Det er ikke det beste det kan være... i hvert fall ikke først. Men med mennesker blir koden bedre over tid. Jeg er ikke sikker på om en AI kan ta eksisterende kode, forbedre den, feilsøke den og forbedre den. Men noen ganger trenger ting bare å fungere. Det spiller ikke alltid noen rolle om de er de beste av de beste. Godt nok er ofte godt nok. Og den genererte koden var god nok.

Vil det redusere antallet programmeringsoppdrag for mennesker? Nesten uten tvil. Jeg liker ikke å se en maskin ta jobben til noen person (spesielt hvis det er en jobb jeg kanskje vil ha). AI er definitivt et alternativ for raske og enkle prosjekter, enten det er skriving eller programmering. Menneskers lønn vil uten tvil bli påvirket.

Jeg har studert kunstig intelligens i tiår. Jeg skrev en avhandling om kunstig intelligens. Men selv med all den bakgrunnen, har denne bølgen av høykvalitets generativ kunstig intelligens vært overraskende for meg. Med det sagt, det vi ser nå er et nivå av produktivitet som er "godt nok". Dessverre er det det mange kunder krever.

Men - i hvert fall for nå - kan ikke ChatGPT og vennene sine skrive super grundige analyseartikler som denne, fordi de gjenspeiler meninger, anekdoter og mange års erfaring. Og selv om de sikkert kunne skrive subrutiner og funksjoner for større programmeringsprosjekter, er de bare ikke i stand til å skrive store programmeringsprosjekter.

Også: Googles ChatGPT-konkurrentdemo går galt

For eksempel har jeg måttet ha 20-30 møter i løpet av det siste året med en stor API-leverandør for å integrere deres tjeneste i min. De fleste av disse møtene blandet forretningsproblemer med tekniske krav og lisensieringspolicyer. Jeg utfordrer enhver AI til å tåle, forstå nyansene og oppfylle partnerkravene i en slik byråkratisk situasjon, og deretter være i stand til å produsere kode-moduler som alle kan være enige om.

Så ja, jeg er litt skremt av hvor bra utvidelsen var som jeg "lagde" for konen min. Men AI-en har en lang vei å gå før den tar arbeidet fra erfarne utviklere og forfattere - så lenge som kundene ønsker den typen arbeid som erfarne utviklere og forfattere produserer. Og det, mine venner, er noe jeg bekymrer meg for.

Relaterte Artikler

Se mer >>

Lås opp kraften til AI med HIX.AI!