Come utilizzare ChatGPT per scrivere codice

Using ChatGPT for writing code

Una delle scoperte più interessanti su ChatGPT è che può scrivere un codice abbastanza buono. Ho testato questo in febbraio quando gli ho chiesto di scrivere un plugin WordPress che mia moglie potesse utilizzare sul suo sito web. Ha fatto un buon lavoro, ma si trattava di un progetto molto semplice.

Come utilizzare ChatGPT per scrivere: Curriculum | Formule Excel | Saggi | Lettere di presentazione 

Come puoi utilizzare ChatGPT per scrivere codice come parte della tua pratica giornaliera di programmazione? È ciò che esploreremo qui.

Quali tipi di codice può scrivere bene ChatGPT?

Ci sono due fatti importanti su ChatGPT e la scrittura di codice. Il primo è che può effettivamente scrivere codice utile. Il secondo è che può perdersi completamente, cadere nella tana del coniglio, inseguire la propria coda e produrre spazzatura assolutamente inutilizzabile.

Inoltre: Sto usando ChatGPT per aiutarmi a risolvere il codice più velocemente, ma a quale costo?

L’ho scoperto a mie spese. Dopo aver completato il plugin WordPress, ho deciso di vedere fino a che punto poteva arrivare ChatGPT. Ho scritto una richiesta molto dettagliata per un’applicazione Mac, includendo descrizioni dettagliate degli elementi dell’interfaccia utente, delle interazioni, di ciò che sarebbe stato fornito nelle impostazioni, di come avrebbero funzionato, e così via. Poi l’ho fornita a ChatGPT.

ChatGPT ha risposto con una serie di testo e codice. Poi si è fermato a metà del codice. Quando gli ho chiesto di continuare, ha prodotto ancora più codice e testo. Ho richiesto continuamente di continuare e ha prodotto sempre più codice. Ma… nulla di tutto questo era utilizzabile. Non ha identificato dove dovrebbe andare il codice, come costruire il progetto e, quando ho esaminato attentamente il codice prodotto, ha omesso le principali operazioni che avevo richiesto, lasciando delle semplici descrizioni di testo che indicavano “qui va la logica del programma”.

Inoltre: Okay, quindi ChatGPT ha appena fatto il debug del mio codice. Davvero

Dopo una serie di test ripetuti, mi è diventato chiaro che se chiedi a ChatGPT di fornire un’applicazione completa, non ci riuscirà. Una conseguenza di questa osservazione è che se non sai nulla di programmazione e vuoi che ChatGPT ti costruisca qualcosa, fallirà.

Dove ChatGPT ha successo – e lo fa molto bene – è nel aiutare qualcuno che già sa programmare a creare routine specifiche e svolgere compiti specifici. Non chiedere un’applicazione che funzioni sulla barra dei menu. Ma se chiedi a ChatGPT una routine per mettere un menu sulla barra dei menu e poi incolli quella routine nel tuo progetto, andrà molto bene.

Inoltre: Come utilizzare ChatGPT per creare un’applicazione

Inoltre, tieni presente che sebbene ChatGPT sembri avere una quantità enorme di conoscenze specifiche del dominio (e spesso le ha), manca di saggezza. Pertanto, potrebbe essere in grado di scrivere codice, ma non sarà in grado di scrivere codice che contenga le sfumature per problemi molto specifici o complessi che richiedono una profonda esperienza per essere compresi.

Usa ChatGPT per dimostrare tecniche, scrivere piccoli algoritmi e produrre subroutine. Puoi persino chiedere a ChatGPT di aiutarti a suddividere un progetto più grande in parti e poi chiedere di aiutarti a scrivere il codice per quelle parti.

Quindi, tenendo presente tutto ciò, vediamo alcuni passaggi specifici su come utilizzare ChatGPT per scrivere codice.

Come ChatGPT può aiutarti a scrivere codice

1. Limita e affina la tua richiesta

Il primo passo è decidere cosa chiederai a ChatGPT, ma non chiederglielo ancora. Decidi cosa vuoi che la tua funzione o routine faccia o cosa vuoi imparare per incorporarlo nel tuo codice. Decidi i parametri che passerai al tuo codice e cosa vuoi ottenere in output. E poi guarda come lo descriverai.

Inoltre: Come scrivere prompt migliori per ChatGPT

Immagina di pagare un programmatore umano per fare questo. Dai a questa persona informazioni sufficienti per poter lavorare sul tuo incarico? Oppure sei troppo vago e la persona che stai pagando è più propensa a fare domande o consegnare qualcosa di completamente diverso da ciò che desideri?

Ecco un esempio. Supponiamo che voglia essere in grado di riassumere qualsiasi pagina web. Voglio alimentarla con un articolo come questo e ottenere un breve riassunto ben ponderato e appropriato. Come input, specifico un URL della pagina web. Come output, ottengo un blocco di testo con un riassunto.

2. Usa ChatGPT per esplorare librerie e risorse

Continuando con l’esempio precedente, un modo molto tradizionale per estrarre dati da una pagina web era trovare il testo compreso tra i tag HTML di paragrafo.

Ma con la crescita degli strumenti di intelligenza artificiale, ha più senso utilizzare una libreria di intelligenza artificiale per effettuare un’estrazione e un riassunto intelligenti. Uno dei punti di forza di ChatGPT (ed è anche un’area che puoi verificare facilmente per evitare il suo comportamento autoritario ma errato) è trovare librerie e risorse.

Inoltre: Come fare in modo che ChatGPT fornisca fonti e citazioni

OpenAI (l’azienda produttrice di ChatGPT) vende l’accesso all’API dei motori GPT-3 e GPT-4 che faranno esattamente ciò che vogliamo. Ma nel caso di questo esempio, supponiamo che non vogliamo pagare commissioni di transazione.

Quindi vediamo come interagire con ChatGPT per capire come utilizzare uno strumento del genere gratuitamente con un progetto che viene eseguito in PHP.

Ho iniziato con un prompt che è stato progettato per ottenere informazioni su quali librerie potrebbero fornire la funzionalità desiderata. Una libreria (per coloro che leggono e non sono programmatori) è un insieme di codice a cui un programmatore può accedere e che svolge gran parte del lavoro pesante per uno scopo specifico. Gran parte della programmazione moderna consiste nel trovare e scegliere le giuste librerie. Quindi questo è un buon punto di partenza.

Inoltre: Ho utilizzato ChatGPT per scrivere la stessa routine in 12 dei principali linguaggi di programmazione. Ecco come ha funzionato

In questo caso, sto cercando blocchi di codice scritti da altre persone che riassumano il testo. Ecco il mio primo prompt:

Descrivi dieci diverse librerie open source di intelligenza artificiale (e i linguaggi con cui funzionano) che posso utilizzare per generare un riassunto dei contenuti principali di qualsiasi pagina web, ignorando annunci o materiali incorporati.

Questo mi ha dato esattamente ciò che volevo, incluso un riferimento alle offerte di OpenAI. Penso che OpenAI sarebbe ottima qui, ma per questo progetto ipotetico non voglio considerare i costi dell’API. Quindi affino la domanda.

Nei dieci elencati, ce n’è qualcuna gratuita?

ChatGPT si è coperto con la sua risposta. Ecco cosa ha detto: “Sì, tutte e dieci queste librerie di intelligenza artificiale sono open source e gratuite da utilizzare. Tuttavia, alcune di esse potrebbero avere limiti di utilizzo o richiedere il pagamento per accedere a funzionalità o risorse aggiuntive.” Quindi, basandomi su ciò, ho chiarito la mia domanda.

Quali di queste librerie non hanno limiti di utilizzo e non richiedono pagamenti o licenze aggiuntive?

Notate come questo è molto simile a una conversazione. Non devo ripetere la domanda originale. Sto solo approfondendo nel modo in cui potrei farlo se avessi un esperto a portata di mano e cercassi chiarimenti. In questo caso, ChatGPT mi ha fornito otto scelte di librerie, ma nessuna di esse menzionava il linguaggio PHP con cui avevo intenzione di programmare. Quindi, ecco il prompt successivo:

Delle otto librerie, posso usarne qualcuna con PHP?

Sono state restituite tre librerie, ma non ero sicuro di cosa facesse ognuna di esse. Quindi un’altra domanda:

Qual è la differenza tra Sumy, Gensim e NLTK?

Non ero ancora sicuro, quindi ho chiarito il mio piano di utilizzo e ho chiesto:

Se voglio creare riassunti di articoli di notizie di pagine web, quale libreria funzionerebbe meglio?

La risposta che ho ottenuto è stata chiara e promettente: “Sumy è specificamente progettata per la riassunzione di testi, ovvero per creare un riassunto che catturi le informazioni più importanti da un pezzo di testo”. Quindi, era ora di vedere cosa fosse coinvolto nell’uso di essa con PHP. Ho posto la mia ultima domanda per questa parte del progetto:

Puoi spiegare come utilizzare Sumy da PHP?

Sentiti libero di giocare sul tuo computer e incolla queste istruzioni nella tua istanza di ChatGPT. Nota che, nel passaggio 1, ho deciso su quale modulo di programma avrei chiesto aiuto. Quindi, in questo passaggio, ho avuto una conversazione con ChatGPT per decidere quale libreria utilizzare e come integrarla nel mio progetto.

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

Potrebbe non sembrare programmazione, ma ti assicuro che lo è. La programmazione non consiste solo nello scrivere righe di codice su una pagina. La programmazione consiste nel capire come integrare tutte le risorse e i sistemi diversi e come comunicare con tutti i componenti della tua soluzione. Qui, ChatGPT mi ha aiutato a fare questa analisi di integrazione.

A proposito, ero curioso se Bard di Google potesse aiutare nello stesso modo. Bard non può scrivere effettivamente codice, ma ha fornito alcuni ulteriori spunti sull’aspetto della pianificazione della programmazione rispetto alle risposte di ChatGPT. Quindi non esitare a utilizzare più strumenti per ottenere le risposte desiderate. Ecco quella storia: Bard vs. ChatGPT: Bard può aiutarti a programmare? Da quando ho scritto quell’articolo, Google ha aggiunto alcune capacità di programmazione a Bard, ma non sono così eccezionali. Puoi leggere qui: Ho testato le nuove capacità di programmazione di Google Bard. Non è andata bene.

La programmazione è la prossima cosa.

3. Chiedi a ChatGPT di scrivere del codice di esempio

Ok, facciamo una pausa qui. Questo articolo si intitola “Come utilizzare ChatGPT per scrivere codice”. E lo farà! Ma stiamo chiedendo davvero a ChatGPT di scrivere del codice di esempio. Aspetta. Cosa?

Inoltre: Cosa è GPT-4? Ecco tutto quello che devi sapere

Sia chiaro. A meno che tu non stia scrivendo una funzione molto piccola (come il classificatore di righe/casuale che ChatGPT ha scritto per mia moglie), ChatGPT non sarà in grado di scrivere il tuo codice finale. Prima di tutto, dovrai mantenerlo tu. ChatGPT è terribile nel modificare un codice già scritto. Terribile, nel senso che non lo fa. Quindi, per ottenere del nuovo codice, devi chiedere a ChatGPT di generare qualcosa di nuovo. Come ho scoperto in precedenza, anche se la tua richiesta è praticamente identica, ChatGPT può cambiare ciò che ti restituisce in modi molto imprevedibili.

Quindi, in poche parole: ChatGPT non può mantenere il tuo codice, né modificarlo.

Ciò significa che devi farlo tu stesso. Come sappiamo, la prima bozza di un pezzo di codice raramente è il codice finale. Quindi, anche se ti aspettassi che ChatGPT generasse il codice finale, sarebbe davvero solo un punto di partenza, in cui dovresti portarlo a termine, integrarlo nel tuo progetto più ampio, testarlo, perfezionarlo, debuggarlo, e così via.

Inoltre: Ho chiesto a ChatGPT di scrivere un breve episodio di Star Trek. È riuscito davvero

Ma ciò non significa che il codice di esempio sia privo di valore. Anzi. Diamo un’occhiata a un prompt che ho scritto basandomi sul progetto che ho descritto in precedenza. Ecco la prima parte:

Scrivi una funzione PHP chiamata summarize_article.

Come input, summarize_article riceverà un URL di un articolo su un sito di notizie come ENBLE.com o Reuters.com.

Sto dicendo a ChatGPT quale linguaggio di programmazione dovrebbe utilizzare. Sto anche dicendogli l’input ma, nel farlo, fornisco due siti come esempi per aiutare ChatGPT a capire lo stile dell’articolo. Onestamente, non sono sicuro che ChatGPT abbia ignorato quel piccolo suggerimento. Successivamente, gli dirò come fare la maggior parte del lavoro:

All’interno di summarize_article, recuperare il contenuto della pagina web all’URL fornito. Utilizzando la libreria Sumy all’interno di PHP e qualsiasi altra libreria necessaria, estrarre il corpo principale dell’articolo, ignorando gli annunci o i materiali incorporati, e riassumere il tutto in circa 50 parole. Assicurarsi che il riassunto sia composto da frasi complete. È possibile superare le 50 parole per concludere l’ultima frase, se necessario.

Questo è molto simile a come istruirei un dipendente. Vorrei che quella persona sappia che non è limitata solo a Sumy. Se avesse bisogno di un altro strumento, volevo che lo utilizzasse.

Inoltre: come ottenere una corrispondenza perfetta del viso utilizzando Midjourney AI

Ho anche specificato un numero approssimativo di parole per creare dei limiti su ciò che volevo come riepilogo. Una versione successiva della routine potrebbe prendere quel numero come parametro. Ho poi concluso dicendo ciò che volevo come risultato:

Una volta completato il processo, codifica summarize_article in modo che restituisca il riepilogo in testo normale.

Il codice risultante è piuttosto semplice. ChatGPT ha chiamato un’altra libreria (Goose) per recuperare i contenuti dell’articolo. Quindi ha passato questo a Summy con un limite di 50 parole, e poi ha restituito il risultato. Ecco tutto. Ma una volta scritte le basi, è solo questione di programmazione tornare indietro e apportare modifiche, personalizzare ciò che viene passato alle due librerie e fornire i risultati.

Un punto interessante da notare. ChatGPT ha creato una chiamata di esempio alla routine che ha scritto, utilizzando un URL successivo al 2021 (quando finisce il set di dati di ChatGPT).

https://www.reuters.com/business/retail-consumer/teslas-musk-says-fremont-california-factory-may-be-sold-chip-shortage-bites-2022-03-18/

Ho verificato quell’URL sia sul sito di Reuters che sulla Wayback Machine, ma non esiste. ChatGPT l’ha inventato.

Domande frequenti

ChatGPT sostituisce i programmatori?

Non ora – o, almeno, non ancora. ChatGPT programma al livello di uno studente di primo anno di talento, ma è pigro (come quel primo anno). Potrebbe ridurre la necessità di programmatori di livello molto basilare, ma al suo livello attuale, penso che renderà solo più facile la vita per i programmatori di livello base (e anche per i programmatori con più esperienza) scrivere codice e cercare informazioni. Sicuramente è un risparmio di tempo, ma ci sono pochi progetti di programmazione che può fare da solo – almeno per ora. Nel 2030? Chi lo sa.

Come posso ottenere risposte di programmazione in ChatGPT?

Basta chiedere. Hai visto sopra come ho usato un dialogo di discussione interattivo per restringere le risposte che volevo. Quando lavori con ChatGPT, non aspettarti che una sola domanda faccia magicamente tutto il lavoro per te. Ma usa ChatGPT come un aiuto e una risorsa, e ti fornirà molte informazioni molto utili. Naturalmente, verifica quelle informazioni – perché, come dice John Schulman, cofondatore di OpenAI, “La nostra preoccupazione principale riguardava la veridicità, perché il modello tende a fabbricare cose”.

Quanto è affidabile ChatGPT per la programmazione? Posso fidarmi del codice che genera?

Oh, assolutamente no. Ma non puoi nemmeno fidarti del codice scritto dai programmatori umani. Certamente non mi fido di nessun codice che scrivo. Il codice che esce dal processo di creazione del codice è incredibilmente difettoso. Ci sono sempre bug. Prima di rilasciare, devi testare, testare e testare ancora. Quindi prova in anteprima con qualche vittima scelta. Quindi prova beta con la tua comunità di utenti più ampia. Anche dopo tutto questo, ci saranno bug. Il fatto che un’IA si stia cimentando in questa cosa della programmazione non significa che possa fare codice privo di bug. Non fidarti. Verifica sempre. E comunque non avrai un codice completamente privo di bug. Tale è la natura dell’universo.

Se uso ChatGPT per scrivere il mio codice, a chi appartiene?

Come si è scoperto, non ci sono ancora molti precedenti giurisprudenziali per rispondere definitivamente a questa domanda. Gli Stati Uniti, il Canada e il Regno Unito richiedono che qualcosa che sia protetto da copyright sia stato creato da mani umane, quindi il codice generato da un’IA potrebbe non essere protetto da copyright. Ci sono anche questioni di responsabilità legate all’origine del codice di addestramento e all’uso del codice risultante. ENBLE ha approfondito questo argomento, ha parlato con esperti legali e ha prodotto i seguenti tre articoli. Se ti preoccupi di questa questione (e se stai usando l’IA per aiutare con il codice, dovresti farlo), ti consiglio di leggerli.

  • A chi appartiene il codice? Se l’IA di ChatGPT aiuta a scrivere la tua app, ti appartiene ancora?
  • Se usi il codice generato dall’IA, quale esposizione hai in termini di responsabilità?
  • Una questione spinosa: a chi appartengono il codice, le immagini e le narrazioni generate dall’IA?

Quali linguaggi di programmazione conosce ChatGPT?

La maggior parte di loro. Mi sono molto distratto provando questo. Ho testato i linguaggi comuni moderni, come PHP, Python, Java, Kotlin, Swift, C# e altri. Ma poi ho dovuto scrivere codice in linguaggi oscuri del periodo oscuro come COBOL, Fortran, Forth, LISP, ALGOL, RPG (il generatore di programmi di report, non il gioco di ruolo) e persino il linguaggio assembly IBM/360.

Come ciliegina sulla torta, gli ho dato questo prompt:

Scrivi una sequenza che visualizza ‘Ciao, mondo’ in luci lampeggianti ASCII sul pannello frontale di un PDP 8/e

Il PDP 8/e è stato il mio primo computer e ChatGPT mi ha dato istruzioni per inserire un programma utilizzando gli interruttori del pannello frontale. Sono rimasto impressionato, gioioso e leggermente spaventato.

Inoltre: Come utilizzare ChatGPT per riassumere un libro, un articolo o un paper di ricerca

Cosa ne viene fuori? ChatGPT può essere uno strumento molto utile. Ma non attribuirgli superpoteri. Ancora.


Puoi seguire gli aggiornamenti giornalieri del mio progetto sui social media. Assicurati di seguirmi su Twitter su @DavidGewirtz, su Facebook su Facebook.com/DavidGewirtz, su Instagram su Instagram.com/DavidGewirtz e su YouTube su YouTube.com/DavidGewirtzTV.