Conoscere le funzionalità di generazione di codice di OpenAI

Completato

I modelli GPT accettano frammenti di codice o linguaggio naturale e li convertono in codice. I modelli OpenAI GPT sono efficaci con oltre una decina di linguaggi, tra cui C#, JavaScript, Perl, PHP, e risultano i più adatti in Python.

I modelli GPT sono stati sottoposti a training sia sul linguaggio naturale che su miliardi di righe di codice di repository pubblici. I modelli sono in grado di generare codice da istruzioni del linguaggio naturale, ad esempio commenti al codice, nonché suggerire modi per completare le funzioni di codice.

Ad esempio, dato il prompt "Scrivi un ciclo per contare da 1 a 10 in Python", viene fornita la risposta seguente:

for i in range(1,11):
    print(i)

I modelli GPT possono aiutare gli sviluppatori a scrivere codice più velocemente, comprendere nuovi linguaggi di codifica e concentrarsi sulla risoluzione di problemi più complessi nell'applicazione. Gli sviluppatori possono suddividere gli obiettivi in attività più semplici e usare GPT per creare tali attività usando modelli noti.

Esempi di generazione di codice

Parte dei dati di training per GPT-3 includeva linguaggi di programmazione, quindi non sorprende che i modelli GPT possano rispondere a domande di programmazione se richiesto. La particolarità della famiglia di modelli Codex è che è maggiormente in grado di gestire un numero più elevato di lingue rispetto ai modelli GPT.

La generazione di codice non si limita alla semplice scrittura di codice a partire da richieste espresse nel linguaggio naturale. Dato il codice seguente, può generare unit test:

# Python 3
def mult_numbers(a, b):
  return a * b

# Unit test
def

GPT compila unit test per la funzione:

# Python 3
def mult_numbers(a, b):
  return a * b

# Unit test
def test_mult_numbers():
  assert mult_numbers(3, 4) == 12
  assert mult_numbers(0, 10) == 0
  assert mult_numbers(4, 0) == 0

# Unit test
def test_mult_numbers_negative():
  assert mult_numbers(-1, 10) == -10
  assert mult_numbers(10, -1) == -10

GPT può anche riepilogare le funzioni già scritte, spiegare query o tabelle SQL e convertire una funzione da un linguaggio di programmazione in un altro.

Quando si interagisce con i modelli GPT, è possibile specificare librerie o tag specifici del linguaggio per chiarire a Codex quale risultato si intende ottenere. Ad esempio, è possibile fornire la richiesta <!-- build a page titled "Let's Learn about AI" --> formattata come commento HTML e ottenere questo risultato:

<html>
<head>
<title>Let's Learn about AI</title>
<link rel="stylesheet" type="text/css" href="css/styles.css">
</head>
<body>
<div class="wrapper">
<div class="header">
<h1>Let's Learn about AI</h1>
</div>
<div class="nav">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="about.php">About</a></li>
<li><a href="resources.php">Resources</a></li>
<li><a href="contact.php">Contact</a></li>
</ul>
</div>
<div class="content">
<h2>Contact</h2>
<p>
<!-- build a form to contact the site owner -->
<form action="contact.php" method="post">
<label for="name">Name:</label>
<input type="text" name="name" id="name" required>
<label for="email">Email:</label>
<input type="email" name="email" id="email" required>
<label for="subject">Subject:</label>
<input type="text" name="subject" id="subject" required>
<label for="message">Message:</label>
<textarea name="message" id="message" required></textarea>
<input type="submit" value="Send">
</form>
</p>
</div>
<div class="footer">
<p>Let's Learn about AI</p>
</div>
</div>
</body>
</html>

GitHub Copilot

OpenAI ha collaborato con GitHub alla creazione di GitHub Copilot, definito programmatore di coppie di intelligenza artificiale. GitHub Copilot integra la potenza di OpenAI Codex in un plug-in utilizzabile in ambienti di sviluppo come Visual Studio Code.

Dopo aver installato e abilitato il plug-in, quando si inizia a scrivere il codice, GitHub Copilot suggerisce automaticamente il resto della funzione in base ai commenti al codice o al nome della funzione. Ad esempio, nel file è presente solo un nome di funzione e il testo grigio viene suggerito automaticamente per completarlo.

Screenshot of GitHub Copilot suggesting completion of function.

GitHub Copilot propone più suggerimenti per il completamento del codice, che è possibile scorrere tramite tasti di scelta rapida. Quando si specificano commenti al codice informativi, può persino suggerire un nome di funzione oltre al codice completo della funzione.

Animated screenshot of GitHub Copilot suggesting completion of function based on code comments.