Ho chiesto a ChatGPT di scrivere un plugin WordPress di cui avevo bisogno. L'ha fatto in meno di 5 minuti

gettyimages-1246766124.jpg

Senza voler esagerare, sono più che un po' spaventato. Come esperimento, ho chiesto a ChatGPT di scrivere un plugin che potesse risparmiare a mia moglie del tempo nella gestione del suo sito web. Ho scritto una breve descrizione e ChatGPT ha scritto tutto: l'interfaccia utente, la logica e tutto il resto.

In meno di cinque minuti.

Inoltre: I migliori chatbot AI: ChatGPT e altre divertenti alternative da provare

Ci sono delle implicazioni. Arriveremo a questo tra qualche minuto. Prima, lasciami guidarti attraverso l'esperienza e ciò che è accaduto.

Il bisogno

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

Mia moglie è la proprietaria di un sito di e-commerce basato su WordPress focalizzato su un hobby popolare. Inoltre, ospita un gruppo Facebook molto attivo per i clienti del suo sito. Ogni mese randomizza una lista di nomi e poi fa una animazione di girata di ruota virtuale, utilizzando quella lista randomizzata, per il gruppo Facebook. Ha usato un sito su internet che fa un lavoro discreto nel randomizzare le linee, ma fa pagare un po' più di quanto valga per l'esportazione della lista.

Inoltre: Possono i rilevatori AI salvarci da ChatGPT? Ho provato 3 strumenti online per scoprirlo

Mentre la osservavo lottare per recuperare i nomi casuali, ho pensato che potrebbe essere utile se scrivessi un plugin WordPress veloce che potessimo installare sul suo sito. Lei è nel cruscotto ogni giorno, quindi avere questa funzionalità come uno strumento sarebbe utile.

Ma anche un semplice plugin mi richiederebbe alcuni giorni per scriverlo, considerando gli elementi dell'interfaccia utente e il codice di logica, e in questi giorni ho abbastanza progetti in corso.

E poi ho pensato a ChatGPT. C'è stata una certa discussione su ChatGPT come strumento di programmazione nei media, così ho deciso di provarlo.

Il prompt

La chiave per far generare qualcosa a ChatGPT è una prompt attentamente scritta. Nel caso della programmazione, pensate di essere un manager o un cliente. Dovete descrivere chiaramente ciò di cui avete bisogno per ottenere ciò che volete. Ho iniziato con un prompt molto semplice, solo per vedere se funzionava. Ecco il prompt che ho usato:

codice.jpg

Scrivi un plugin WordPress compatibile con PHP 8 che fornisce un campo di inserimento di testo in cui è possibile incollare un elenco di righe e un pulsante, che quando viene premuto, randomizza le righe dell'elenco e presenta i risultati in un secondo campo di inserimento di testo.

In un minuto, ha generato il codice che vedi a destra. Ho copiato il codice generato in un file .php, l'ho messo in una cartella con lo stesso nome di base del file .php, l'ho compresso e l'ho caricato sul suo server. Ha funzionato.

Inoltre: Gli hacker russi stanno cercando di infiltrarsi in ChatGPT, afferma Check Point

Quando l'ho mostrato a mia moglie, è rimasta adeguatamente impressionata e sorpresa. Ma poi si sono messe in moto le sue idee e ha chiesto una nuova funzionalità: assicurarsi che i nomi duplicati non siano uno accanto all'altro.

Per la sua applicazione, a volte avrà bisogno di includere il nome di qualcuno in un elenco molte volte. Ma non voleva che questi duplicati si raggruppassero.

Ho modificato la mia richiesta originale, aggiungendo le seguenti condizioni aggiuntive:

... si assicura che non ci siano due voci identiche una accanto all'altra (a meno che non ci sia altra opzione)... con il numero di righe inviate e il numero di righe nel risultato identico tra di loro.

Ho incluso la frase "a meno che non ci sia un'altra opzione" e l'esigenza di avere lo stesso conteggio perché volevo assicurarmi che tutti i nomi fossero inclusi, e mi preoccupava che si desse priorità alla necessità di evitare che due nomi fossero uno accanto all'altro rispetto a mantenere tutti i nomi.

Circa 30 secondi dopo, ho avuto un nuovo plugin. L'ho caricato sul server e l'ho provato. Ha funzionato, ma l'output includeva alcune righe vuote. Quindi ho aggiunto questa condizione al mio prompt precedente:

…senza linee vuote…

Ormai mi ero abituato ai tempi di attesa, che erano sempre inferiori a un minuto. Ancora un altro caricamento e test, e di nuovo, ha funzionato.

Inoltre: Come usare ChatGPT

Volevo un'ultima caratteristica, solo per confermare quante righe erano state processate. Volevo che il plugin mostrasse un conteggio delle righe per i campi di input e output. Ecco l'aggiunta di quel prompt:

...Sotto il primo campo, visualizzare il testo che indica "Riga da randomizzare: " con il numero di righe non vuote nel campo di origine. Sotto il secondo campo, visualizzare il testo che indica "Righe che sono state randomizzate: " con il numero di righe non vuote nel campo di destinazione.

Questo ha funzionato, per lo più. Prima dell'esecuzione, il campo di output mostra una riga. Ma una volta completato il processo di randomizzazione, mostra il numero esatto di righe in entrambi i campi.

La qualità del codice

Complessivamente, la qualità del codice era pulita. Sto presentando solo la risposta originale perché altrimenti non si adatterebbe all'articolo. Il programma ha correttamente generato il blocco di intestazione di WordPress e ha scritto l'interfaccia utente del pannello di controllo per il plugin, così come la logica di elaborazione del plugin.

Ha messo le mie linee di riepilogo sopra i campi, anche se ho specificato sotto, ma non è una grande lamentela. È lo stesso tipo di errore che un cliente potrebbe ricevere da un fornitore umano, e poi richiede un po' di lavoro per essere corretto.

Inoltre: Può l'aiutante di scrittura di Notion IA scrivere questo articolo?

Codifica funzionante, ma non incorporava tutte le migliori pratiche per la programmazione di WordPress. Ad esempio, non ha filtrato l'input utente. La comunità di WordPress è rigorosa nel filtrare l'input in modo che gli hacker non possano riempire i campi con dati che possono corrompere un sito, e questo codice non ha nulla del genere.

Come test successivo, ho istruito l'Ai di sanificare l'input e lo ha fatto... fino a un certo punto. Ha sanificato l'input all'interno della funzione PHP, ma non l'input quando si chiama il PHP all'interno di HTML. Ciò avrebbe sicuramente lasciato una falla per gli hacker.

Inoltre, ha inserito la voce di menu del plugin in Impostazioni. Probabilmente l'avrei inserita in Strumenti o avrei dato alla funzionalità una propria voce di menu. Poiché non ho specificato da dove dovrebbe essere richiamata, penso che ChatGPT abbia preso una decisione valida nel posizionare la voce di menu dove l'ha messa.

Ho aggiunto un ultimo requisito alla mia richiesta, chiedendo all'IA di dare un nome al plugin:

Scrivi un plugin WordPress compatibile con PHP 8 chiamato "Robo Randomizer" che...

Stranamente, l'intelligenza artificiale mi ha dato un plugin completamente diverso, generando un plugin che fornisce un shortcode invece di un'interfaccia di dashboard. Lasciatemi spiegare questo ai non utenti di WordPress, perché è interessante.

Quando si scrive qualcosa del genere, è possibile renderlo disponibile sul sito web ai visitatori (chiamato frontend) o a coloro che accedono alla dashboard del sito per gestire la parte (il backend). Nel mio insieme originale di suggerimenti, non ho specificato frontend o backend, ma l'IA ha scritto ciò che volevo, ovvero un'interfaccia di backend, di dashboard per lo strumento.

Inoltre: OpenAI sta assumendo sviluppatori per migliorare ChatGPT nella scrittura del codice

Ma questa volta, ha deciso di scrivere il plugin come strumento frontend, facendolo eseguire attraverso un shortcode. In WordPress, puoi inserire un shortcode (qualcosa come [randomizza righe]) all'interno di un post e questo eseguirà il codice in un plugin. L'ultima versione prodotta dall'IA mi ha fornito un tale shortcode, che avrebbe permesso di presentare la funzionalità di randomizzazione delle righe ai visitatori del sito.

Dopo questo, ChatGPT ha perso un po' il filo. Non sono riuscito a ottenere funzionalità aggiuntive aggiunte al plugin originale e ChatGPT principalmente ha ripetuto la generazione della versione shortcode. Chiaramente, la manutenzione del codice non è un punto forte di ChatGPT.

Implicazioni

Ovviamente, si tratta di un plugin semplice. Ha approssimativamente la stessa dimensione dei compiti che assegnavo ai miei studenti del primo anno di programmazione quando insegnavo presso l'Università di Berkeley. Non si avvicina alla complessità dei plugin WordPress open source molto, molto più grandi che mantengo per oltre 50.000 utenti.

Inoltre: Con le chatbot di intelligenza artificiale, stiamo cercando le risposte nei posti sbagliati?

La scorsa settimana, quando ho utilizzato per la prima volta ChatGPT per creare il plugin "quickie" per mia moglie e ho twittato a riguardo, i miei contatti sui social si sono mostrati contrari. Ecco alcune delle loro preoccupazioni:

È malvagio? Una persona era preoccupata che l'IA incorporasse informazioni dannose (o almeno promozionali) nel plugin e un utente non programmatore non ne saprebbe mai nulla. Ma la verità è che se non sei un programmatore e non sai leggere il codice, anche se assumi un'altra persona, non sai davvero cosa è incluso. Alla fine tutto dipende dalla fiducia nella reputazione o nel fatto di far controllare il codice da qualcuno in cui hai fiducia. Nel caso del codice prodotto nel mio esperimento, era pulito.

È il migliore che può essere? Qui, ancora una volta, le persone applicavano standard diversi al codice dell'Intelligenza Artificiale rispetto ai programmatori umani. Sono un bravo programmatore, ma il mio codice ha bug. Non è il migliore che possa essere... almeno non all'inizio. Ma con gli umani, il codice migliora nel tempo. Non sono sicuro che un'intelligenza artificiale possa prendere un codice esistente, migliorarlo, debuggarlo e potenziarlo. Tuttavia, a volte le cose devono solo essere funzionali. Non importa sempre se siano il meglio dei migliori. Spesso, essere sufficientemente buono è sufficiente. E ha generato un codice che era sufficientemente buono.

Diminuirà il numero di lavori di programmazione umana? Quasi indubbiamente. Odio vedere una macchina prendere il lavoro di una persona (soprattutto se è un lavoro che potrei volere). L'intelligenza artificiale è sicuramente un'opzione per progetti veloci e facili, che sia scrittura o programmazione. I salari delle persone saranno sicuramente influenzati.

Ho studiato l'IA per decenni. Ho fatto una tesi sull'IA. Ma anche con tutte queste esperienze, questa ondata di IA generativa ad alta qualità è stata sorprendente per me. Detto questo, ciò a cui stiamo assistendo ora è il livello "abbastanza buono" di produttività. Purtroppo, è ciò che molti clienti richiedono.

Ma -- almeno per ora -- ChatGPT e i suoi amici non possono scrivere articoli di analisi approfondita come questo, poiché riflettono opinioni, aneddoti e anni di esperienza. E sebbene possano probabilmente scrivere subroutine e funzioni per progetti di codifica più ampi, non sono in grado di realizzare importanti progetti di codifica.

Inoltre: la demo del concorrente di ChatGPT di Google va storta

Per esempio, ho dovuto avere 20-30 incontri nell'ultimo anno con un importante fornitore di API per integrare il loro servizio nel mio. La maggior parte di questi incontri mescolava questioni aziendali con requisiti tecnici e politiche di licenza. Sfido qualsiasi intelligenza artificiale a sopportare, comprendere le sottigliezze e soddisfare i requisiti del partner in questo tipo di situazione burocratica, e poi essere in grado di produrre moduli di codice su cui tutti possono essere d'accordo.

Quindi sì, sono un po' spaventato da quanto il plugin sia stato bravo che ho "creato" per mia moglie. Ma l'intelligenza artificiale ha ancora molta strada da fare prima che prenda il lavoro agli sviluppatori e scrittori esperti - purché i clienti desiderino il tipo di lavoro che gli sviluppatori e scrittori esperti producono. E questo, amici miei, è qualcosa di cui mi preoccupo.

Articoli correlati

Mostra di più >>

Sblocca il potere dell'intelligenza artificiale con HIX.AI!