Come utilizzare ChatGPT per scrivere codice

immagine1.pngUna delle scoperte più intriganti su ChatGPT è che può scrivere un codice piuttosto buono. L'ho provato a febbraio quando gli ho chiesto di scrivere un plugin per WordPress che mia moglie potesse usare sul suo sito web. Ha fatto un buon lavoro, ma era un progetto molto semplice.

Come usare ChatGPT per scrivere: CV| Formule Excel | Saggi | Lettere di accompagnamento

Come puoi utilizzare ChatGPT per scrivere codice come parte della tua pratica quotidiana di codifica? Questo è ciò che esploreremo qui.

Quali tipi di codifica può fare bene ChatGPT?

Ci sono due fatti importanti su ChatGPT e la codifica. Il primo è che può, infatti, scrivere codice utile. La seconda è che può perdersi completamente, cadere nella tana del coniglio, inseguirsi la coda e produrre spazzatura assolutamente inutilizzabile.

L'ho imparato a mie spese. Dopo aver terminato il plug-in di WordPress, ho deciso di vedere fino a che punto poteva arrivare ChatGPT. Ho scritto un prompt molto accurato per un'applicazione Mac, comprese descrizioni dettagliate degli elementi dell'interfaccia utente, interazioni, cosa sarebbe stato fornito nelle impostazioni, come avrebbero funzionato e così via. Poi l'ho dato in pasto a ChatGPT.

ChatGPT ha risposto con una marea di testo e codice. Quindi si è fermato a metà del codice. Quando gli ho chiesto di continuare, ha vomitato ancora più codice e testo. Ho richiesto continue after continue e ha scaricato sempre più codice. Ma... niente di tutto ciò era utilizzabile . Non ha identificato dove dovrebbe andare il codice, come costruire il progetto e, quando ho guardato attentamente il codice prodotto, ha omesso le principali operazioni che ho richiesto, lasciando in semplici descrizioni di testo che affermano "la logica del programma va qui. "

Dopo una serie di test ripetuti, mi è diventato chiaro che se chiedi a ChatGPT di consegnare un'applicazione completa, fallirà. Un corollario di questa osservazione è che se non sai nulla di programmazione e desideri che ChatGPT ti costruisca qualcosa, fallirà.

Dove ChatGPT ha successo, e lo fa molto bene, è nell'aiutare qualcuno che sa già programmare per creare routine specifiche e svolgere attività specifiche. Non chiedere un'app che gira sulla barra dei menu. Ma se chiedi a ChatGPT una routine per inserire un menu nella barra dei menu e poi lo incolli nel tuo progetto, andrà abbastanza bene.

Inoltre: come utilizzare ChatGPT per creare un'app

Inoltre, tieni presente che mentre ChatGPT sembra avere un'enorme quantità di conoscenza specifica del dominio (e spesso lo fa), manca di saggezza . In quanto tale, potrebbe essere in grado di scrivere codice, ma non sarà in grado di scrivere codice contenente le sfumature per problemi molto specifici o complessi che richiedono una profonda esperienza per essere compresi.

Usa ChatGPT per dimostrare le tecniche, scrivere piccoli algoritmi e produrre subroutine. Puoi persino ottenere ChatGPT per aiutarti a suddividere un progetto più grande in blocchi, quindi puoi chiedergli di aiutarti a codificare quei blocchi.

Quindi, con questo in mente, diamo un'occhiata ad alcuni passaggi specifici su come utilizzare ChatGPT per scrivere codice.

Come ChatGPT può aiutarti a scrivere codice

1. Restringi e affina la tua richiesta

Questo primo passo è decidere cosa chiedere a ChatGPT, ma non chiedergli ancora nulla. Decidi cosa vuoi che faccia la tua funzione o routine, o cosa vuoi imparare a incorporare nel tuo codice. Decidi i parametri che passerai nel tuo codice e cosa vuoi ottenere. E poi guarda come lo descriverai.

Immagina di pagare un programmatore umano per farlo. Stai dando a quella persona informazioni sufficienti per essere in grado di lavorare sul tuo incarico? O sei troppo vago e la persona che stai pagando è più probabile che faccia domande o consegni qualcosa di completamente estraneo a ciò che desideri?

Ecco un esempio. Diciamo che voglio essere in grado di riassumere qualsiasi pagina web. Voglio dargli da mangiare qualcosa come questo articolo e ottenere un breve riassunto che sia ben ponderato e appropriato. Come input, specificherò l'URL di una pagina web. Come output, è un blocco di testo con un riepilogo.

2. Usa ChatGPT per esplorare biblioteche e risorse

Continuando con l'esempio sopra, un modo molto antico di estrarre i dati delle pagine Web era trovare il testo tra i tag di paragrafo HTML.

Ma con l'ascesa degli strumenti di intelligenza artificiale, ha più senso utilizzare una libreria di intelligenza artificiale per eseguire un'estrazione e un riepilogo intelligenti. Uno dei luoghi in cui ChatGPT eccelle (ed è anche un'area che puoi facilmente verificare per evitare il suo modello di comportamento autorevole ma sbagliato) è trovare librerie e risorse.

OpenAI (il creatore di ChatGPT) vende l'accesso API ai motori GPT-3 e GPT-4 che faranno esattamente quello che vogliamo. Ma nel caso di questo esempio, supponiamo di non voler pagare commissioni di transazione.

Quindi diamo un'occhiata all'interazione con ChatGPT per capire come utilizzare uno strumento del genere, gratuitamente, con un progetto che gira in PHP.

Ho iniziato con un prompt progettato per ottenere informazioni su quali librerie avrebbero fornito la funzionalità che desideravo. Una libreria (per quelli di voi che leggono insieme che non sono programmatori) è un corpo di codice a cui un programmatore può accedere che fa molto del lavoro pesante per uno scopo specifico. Gran parte della programmazione moderna è trovare e scegliere le librerie giuste. Quindi questo è un buon punto di partenza.

In questo caso, sto guardando blocchi di codice scritti da altre persone che riassumeranno il testo. Ecco il mio primo suggerimento:

Descrivi dieci diverse librerie AI open source (e le lingue con cui lavorano) che posso utilizzare per generare un riepilogo dei principali contenuti principali di qualsiasi pagina Web, ignorando eventuali annunci o materiali incorporati.

Questo mi ha dato esattamente quello che volevo, inclusa una menzione delle offerte di OpenAI. Penso che OpenAI andrebbe benissimo qui, ma per questo ipotetico progetto non voglio stanziare un budget per le tariffe API. Quindi restringerò la domanda.

Qualcuno di questi è gratuito?

ChatGPT ha coperto le sue scommesse con la sua risposta. Ecco cosa diceva: "Sì, tutte e dieci queste librerie AI sono open source e gratuite. Tuttavia, alcune di esse potrebbero avere limiti di utilizzo o richiedere il pagamento per l'accesso a funzionalità o risorse aggiuntive". Quindi, sulla base di ciò, ho chiarito la mia domanda.

Quale di queste librerie non ha limiti di utilizzo e non richiede alcun pagamento o licenza aggiuntiva?

Nota come questa sia davvero una conversazione. Non devo ripetere la domanda originaria. Sto solo analizzando nello stesso modo in cui potrei farlo se avessi un esperto a portata di mano e cercassi chiarimenti. In questo caso, ChatGPT mi ha dato otto scelte di libreria, ma nessuna di esse ha menzionato il linguaggio PHP che avevo intenzione di codificare. Quindi, ecco il prompt successivo:

Di queste 8 librerie, posso usarne qualcuna con PHP?

Ha restituito tre biblioteche, ma non ero sicuro di cosa facessero ognuna. Quindi altra domanda:

Qual è la differenza tra Sumy, Gensim e NLTK?

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

Se desidero creare riepiloghi di articoli di notizie su pagine Web, quale libreria funzionerebbe meglio?

La risposta che ho ottenuto è stata chiara e promettente: "Sumy è specificamente progettato per il riepilogo del testo, che è il compito di creare un riepilogo che catturi le informazioni più importanti da una parte di testo". Quindi, ora era il momento di vedere cosa comportava l'utilizzo con PHP. Ho posto la mia ultima domanda per questa parte del progetto:

Puoi spiegare come usare Sumy da PHP?

Sentiti libero di giocare sul tuo computer e incolla questi messaggi nella tua istanza di ChatGPT. Si noti che, nel passaggio 1, ho deciso su quale modulo del programma avrei ricevuto assistenza. Quindi, in questa fase, ho avuto una conversazione con ChatGPT per decidere quale libreria utilizzare e come integrarla nel mio progetto.

Potrebbe non sembrare una programmazione, ma ti assicuro che lo è. La programmazione non è solo far esplodere righe di codice su una pagina. La programmazione consiste nel capire come integrare insieme tutte le varie risorse e sistemi e come comunicare con tutti i vari componenti della soluzione. Qui, ChatGPT mi ha aiutato a fare quell'analisi di integrazione.

A proposito, ero curioso di sapere se Bard di Google potesse aiutare allo stesso modo. Bard in realtà non può scrivere codice, ma ha fornito alcune informazioni aggiuntive sull'aspetto della pianificazione della programmazione rispetto alle risposte di ChatGPT. Quindi non esitare a utilizzare più strumenti per triangolare le risposte che desideri. Ecco quella storia: Bard contro ChatGPT: Bard può aiutarti a programmare? Da quando ho scritto quell'articolo, Google ha aggiunto alcune funzionalità di codifica a Bard, ma non sono poi così eccezionali. Puoi leggerlo qui: Ho testato le nuove capacità di programmazione di Google Bard. Non è andata bene.

La codifica è la prossima.

3. Chiedi a ChatGPT di scrivere il codice di esempio

Ok, facciamo una pausa qui. Questo articolo è intitolato "Come utilizzare ChatGPT per scrivere codice". E lo farà! Ma stiamo davvero chiedendo a ChatGPT di scrivere codice di esempio . Aspettare. Che cosa?

Inoltre: cos'è GPT-4? Ecco tutto ciò che devi sapere

Cerchiamo di essere chiari. A meno che tu non stia scrivendo una funzione molto piccola (come il selezionatore di righe/randomizer che ChatGPT ha scritto per mia moglie), ChatGPT non sarà in grado di scrivere il tuo codice finale. Innanzitutto, dovrai mantenerlo. ChatGPT è pessimo nel modificare il codice già scritto. Terribile, come in, non lo fa. Quindi, per ottenere un nuovo codice, devi chiedere a ChatGPT di generare qualcosa di nuovo. Come ho scoperto in precedenza, anche se il tuo prompt è praticamente identico, ChatGPT potrebbe cambiare ciò che ti dà in modi molto inaspettati.

Quindi, in conclusione: ChatGPT non può mantenere il tuo codice o addirittura modificarlo.

Ciò significa che devi farlo da solo. Come sappiamo, la prima bozza di un pezzo di codice raramente è il codice finale. Quindi, anche se dovessi aspettarti che ChatGPT generi il codice finale, sarebbe davvero un punto di partenza, uno in cui devi portarlo a termine, integrarlo nel tuo progetto più grande, testarlo, perfezionarlo, eseguirne il debug e così via .

Inoltre: ho chiesto a ChatGPT di scrivere un breve episodio di Star Trek. In realtà è riuscito

Ma ciò non significa che il codice di esempio sia inutile. Lontano da esso. Diamo un'occhiata a un prompt che ho scritto sulla base del progetto che ho descritto in precedenza. Ecco la prima parte:

Wite una funzione PHP chiamata summary_article.

Come input, summary_article riceverà l'URL di un articolo su un sito di notizie come ZDNET.com o Reuters.com.

Sto dicendo a ChatGPT il linguaggio di programmazione che dovrebbe usare. Dico anche l'input ma, mentre lo faccio, fornisco due siti come esempi per aiutare ChatGPT a capire lo stile dell'articolo. Onestamente, non sono sicuro che ChatGPT non abbia ignorato quella piccola guida. Successivamente, gli dirò come eseguire la maggior parte del lavoro:

All'interno di summary_article, recuperare i contenuti della pagina Web all'URL fornito. Utilizzando la libreria Sumy all'interno di PHP e qualsiasi altra libreria necessaria, estrai il corpo principale dell'articolo, ignorando qualsiasi pubblicità o materiale incorporato, e riassumilo in circa 50 parole. Assicurati che il riassunto sia composto da frasi complete. Puoi superare le 50 parole per finire l'ultima frase, se necessario.

Questo è molto simile a come istruirei un dipendente. Vorrei che quella persona sapesse che non erano limitati solo a Sumy. Se avevano bisogno di un altro strumento, volevo che lo usassero.

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

Una volta completata l'elaborazione, codificare summary_article in modo che restituisca il riepilogo in testo semplice.

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

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

Ho verificato l'URL sia con il sito di Reuters che con la Wayback Machine e non esiste. ChatGPT l'ha appena inventato.

Domande frequenti

ChatGPT sostituisce i programmatori?

Non ora - o, almeno - non ancora. ChatGPT programma al livello di uno studente di programmazione del primo anno di talento, ma è pigro (come quello studente del primo anno). Potrebbe ridurre la necessità di programmatori entry-level, ma al suo livello attuale, penso che semplificherà la vita ai programmatori entry-level (e anche ai programmatori con più esperienza) per scrivere codice e cercare informazioni. È sicuramente un risparmio di tempo, ma ci sono pochi progetti di programmazione che può fare da solo, almeno ora. Nel 2030? Chi lo sa.

Come ottengo risposte di codifica in ChatGPT?

Basta chiedere. Hai visto sopra come ho utilizzato una finestra di dialogo di discussione interattiva per restringere le risposte che volevo. Quando lavori con ChatGPT, non aspettarti che una sola domanda svolga magicamente tutto il tuo lavoro per te. Ma usa ChatGPT come aiuto e risorsa e ti darà molte informazioni molto utili. Ovviamente, verifica queste informazioni, perché, come afferma John Schulman, cofondatore di OpenAI, "la nostra più grande preoccupazione riguardava la fattualità, perché al modello piace fabbricare le cose".

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

A quanto pare, non c'è ancora molta giurisprudenza per rispondere definitivamente a questa domanda. Gli Stati Uniti, il Canada e il Regno Unito richiedono che qualcosa protetto da copyright sia stato creato da mani umane, quindi il codice generato da uno strumento di intelligenza artificiale potrebbe non essere protetto da copyright. Ci sono anche problemi di responsabilità basati sulla provenienza del codice di formazione e su come viene utilizzato il codice risultante. ZDNET ha approfondito questo argomento, ha parlato con esperti legali e ha prodotto i seguenti tre articoli. Se sei preoccupato per questo problema (e se stai usando l'intelligenza artificiale per aiutarti con il codice, dovresti esserlo), ti consiglio di dargli una lettura.

  • Chi possiede il codice? Se l'intelligenza artificiale di ChatGPT ti aiuta a scrivere la tua app, ti appartiene ancora?
  • Se utilizzi un codice generato dall'intelligenza artificiale, qual è la tua esposizione alla responsabilità?
  • Una domanda spinosa: chi possiede il codice, le immagini e le narrazioni generate dall'IA?

Quali linguaggi di programmazione conosce ChatGPT?

La maggior parte di loro. Sono stato molto distratto nel provare questo. Ho testato linguaggi moderni comuni, come PHP, Python, Java, Kotlin, Swift, C# e altri. Ma poi l'ho fatto scrivere codice in oscuri linguaggi dell'età oscura 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, ho dato questo suggerimento:

Scrivere una sequenza che mostri 'Hello, world' in ascii luci lampeggianti sul pannello frontale di un PDP 8/e

Il PDP 8/e è stato il mio primissimo computer e ChatGPT mi ha dato le istruzioni per attivare/disattivare un programma utilizzando gli interruttori del pannello frontale. Sono rimasto impressionato, felice e anche leggermente spaventato.

Qual è la linea di fondo? ChatGPT può essere uno strumento molto utile. Basta non attribuirgli superpoteri. Ancora.

Articoli correlati

Mostra di più >>

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