Domande pratiche sulla codifica: GPT3 è pronto per la prima serata?

È possibile provare facilmente il GPT3: basta registrarsi per un account OpenAI e si otterranno (al momento in cui scriviamo) 18 USD di credito. Andate al seguente link:

https://platform.openai.com/playground

Qui è possibile inserire la domanda e inviarla. GPT3 risponderà nella stessa casella di testo.

I parametri di interesse immediato sono tre:

  • Modello - Suggerisco di lasciare questo annuncio testo-davinci-003. Puoi anche sperimentare con codex, code-davinci-002
  • Temperatura - 0,7 è il valore che uso di solito (controlla la casualità della risposta / quanto "creativo" sarà il GPT3)
  • Lunghezza massima - quanti token deve generare il modello al massimo? Nota: l'intera quantità di token immessi verrà conteggiata anche per il limite tecnico - attualmente 4000 token per text-davinci-003.

I gettoni, tra l'altro, sono l'unità di base della "moneta", e possono essere considerati come parole o parti di parole. Le parole brevi e comuni in inglese sono di solito un unico token, mentre le parole più lunghe sono suddivise in più token.

Utilizzare GPT3 per accelerare la codifica

Ogni sviluppatore sa che gran parte dello sviluppo comprende la ricerca di librerie, la lettura di come utilizzare le API e come lavorare con diversi oggetti.

Ho iniziato a usare GPT3 come aiuto durante la codifica di JavaScript e l'ho provato anche su Crystal Lang.

(alcune parti di PiCockpit sono codificate in Crystal Lang, perché sono un fan del linguaggio Ruby e Crystal Lang mira ad avere una sintassi simile a Ruby e prestazioni simili a quelle del C).

È stato utile in diverse occasioni, ad esempio per risolvere questioni come l'inclusione di spazi nella sintassi JSON tra chiavi e valori. O come convertire la sintassi "require" in "import" per JavaScript.

È brava a rispondere alle domande e molto raramente vi dirà che non può rispondere alla domanda. La cosa principale da tenere a mente, però, è che si tratta di una macchina statistica.

E a volte le risposte sembrano plausibili, ma si rivelano inutili quando si prova il codice.

Esempio di errore della richiesta di aiuto JavaScript GPT3

Per un progetto, avevo bisogno di convalidare gli indirizzi e-mail utilizzando node.js. GPT3 ha suggerito la libreria "emailvalidator" e ha fornito un semplice esempio di codice. Quando ho provato a eseguirlo, è fallito.

Ho quindi esaminato la documentazione della libreria "emailvalidator", che effettivamente esiste. È emerso che questa libreria (a mio avviso) richiede Redis e una configurazione più complicata in generale. Un po' troppo per la mia semplice applicazione. GPT3 non mi ha avvisato di questo fatto nel suo codice di esempio.

La libreria npm "email-validator", chiamata in modo simile, fa esattamente ciò di cui ho bisogno.

Esempio di successo della query Crystal lang GPT3

crystal lang try except block fornire un esempio di codice

iniziare
  Codice # che può sollevare un'eccezione
rescue SomeError => e
  codice # per gestire l'eccezione
altrimenti
  codice # da eseguire se non sono state sollevate eccezioni
assicurare
  codice # sempre eseguito, indipendentemente dal fatto che siano state sollevate eccezioni o meno
fine

È utile per rinfrescare la memoria: non c'è bisogno di cercare su Google, fare clic su una pagina, scorrere la documentazione: la risposta è a portata di mano. Risparmiando un paio di secondi qua e là, si risparmiano minuti ogni giorno, giorni e forse anche settimane per ogni anno di sviluppo.

Inoltre, ottenere le risposte in un formato più conciso consente di mantenere il flusso di pensiero, molto importante durante la programmazione!

Crystal lang GPT3 esempio di errore di aiuto 1

Crystal lang, Kemal. Come posso escludere un percorso da before_all?

È possibile escludere un percorso dal gancio before_all utilizzando l'opzione :except. Questa opzione accetta un array di percorsi come parametro ed esclude tali percorsi dall'hook before_all. Per esempio, per escludere il percorso '/admin/' da before_all, si chiamerà before_all con il seguente codice:

before_all :except => ['/admin/'] do
  # Il vostro codice qui
fine

Attenzione: il codice di cui sopra non funziona!

Kemal è un router per Crystal Lang, si può immaginare che sia una cosa simile a Sinatra, o ad esprimere.

Il codice sembra in qualche modo plausibile, l'ho provato ma non si compila. Ho quindi consultato la documentazione di Kemal, il codice sorgente e i problemi aperti di KemaL. Nessuna menzione di questa mitica chiave :except.

GPT3 si è appena inventato questo.

Ecco il modo corretto di codificare un'eccezione a before_all in Kemal:

before_all do |env|
  next if env.request.path == "/admin/"
  # Il vostro codice qui
fine

Ho trovato queste informazioni in un biglietto kemal.cr. Questo codice è stato testato da me e viene effettivamente compilato.

Crystal lang GPT3 esempio di errore di aiuto 2

Avevo anche bisogno di convertire l'ora corrente (UTC) in un'epoca unix.

crystal lang: come posso convertire Time.utc nel timestamp unix?

È possibile utilizzare il metodo Time#to_i per convertire un oggetto Time in un timestamp Unix.

time = Time.utc(2020, 5, 15, 10, 10, 0)
unix_timestamp = time.to_i # 1589492200

Attenzione: Il codice qui sopra, ancora una volta, fa non compilare!

Sebbene possa essere plausibile l'esistenza di un metodo di questo tipo, non esiste un metodo di questo tipo nella API Crystal Lang per il tempo.

Il codice corretto è:

unix_timestamp = Time.utc.to_unix

Conclusione: GPT3 è utile, ma verificatene l'uscita!

GPT3 è davvero utile per risolvere le domande più comuni sulla programmazione. Può suggerire librerie, rispondere a domande sulla sintassi, sulle migliori pratiche e molto altro ancora.

Trattatelo come un programmatore esperto, che cita le cose a memoria e di tanto in tanto confonde le cose o le inventa. Questa è la natura delle risposte statistiche: poiché noi esseri umani, in quanto sviluppatori di API, tendiamo a fare le "cose che ci si aspetta" nel codice (che gli altri programmatori si aspetteranno nelle API che consumano), queste risposte spesso funzioneranno.

Inoltre, durante l'apprendimento attraverso l'enorme corpus di dati online, GPT3 ha visto MOLTI codici ed esempi di codice. Ha imparato molti modelli validi.

Proprio come un essere umano che è costretto a citare a memoria, invece di cercare o sapere dove cercare le cose, GPT3 farà questi errori occasionali.

Ma vi farà comunque risparmiare tempo e spesso vi indicherà la direzione giusta.

GPT3, ChatGPT e consulenza API OpenAI

Offriamo servizi di consulenza per queste API AI, dai casi d'uso aziendali alle soluzioni complete chiavi in mano. Contattate oggi stesso per discutere le vostre esigenze e per una consulenza iniziale gratuita su GPT3, ChatGPT e altre moderne API di intelligenza artificiale.!