Inzicht in mogelijkheden voor het genereren van OpenAI-code

Voltooid

GPT-modellen kunnen natuurlijke taal of codefragmenten gebruiken en deze omzetten in code. De OpenAI GPT-modellen zijn bekwaam in meer dan tien talen, zoals C#, JavaScript, Perl, PHP en is het meest geschikt in Python.

GPT-modellen zijn getraind op zowel natuurlijke taal als miljarden regels code uit openbare opslagplaatsen. De modellen kunnen code genereren op basis van instructies in natuurlijke taal, zoals codeopmerkingen, en kunnen manieren voorstellen om codefuncties te voltooien.

Als u bijvoorbeeld de vraag 'Write a for loop telling from 1 to 10 in Python' (Een for-lus schrijven van 1 tot 10 in Python) wordt bijvoorbeeld het volgende antwoord gegeven:

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

GPT-modellen kunnen ontwikkelaars helpen sneller coderen, nieuwe programmeertalen te begrijpen en zich te richten op het oplossen van grotere problemen in hun toepassing. Ontwikkelaars kunnen hun doelen opsplitsen in eenvoudigere taken en GPT gebruiken om deze taken uit te bouwen met behulp van bekende patronen.

Voorbeelden van het genereren van code

Een deel van de trainingsgegevens voor GPT-3 bevat programmeertalen, dus het is geen verrassing dat GPT-modellen programmeervragen kunnen beantwoorden indien gesteld. Wat uniek is aan de Codex-modelfamilie is dat het beter geschikt is voor meer talen dan GPT-modellen.

Het genereren van code gaat verder dan alleen het schrijven van code vanuit prompts voor natuurlijke taal. Met de volgende code kunnen eenheidstests worden gegenereerd:

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

# Unit test
def

GPT bouwt eenheidstests uit voor onze functie:

# 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 kan ook functies samenvatten die al zijn geschreven, SQL-query's of -tabellen uitleggen en een functie van de ene programmeertaal converteren naar een andere.

Wanneer u interactie hebt met GPT-modellen, kunt u bibliotheken of taalspecifieke tags opgeven om codex duidelijk te maken wat we willen. We kunnen bijvoorbeeld deze prompt opgeven die is opgemaakt als HTML-opmerking: <!-- build a page titled "Let's Learn about AI" -->, en dit als gevolg hiervan:

<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 werkt samen met GitHub om GitHub Copilot te maken, die ze een AI-paarprogrammeur noemen. GitHub Copilot integreert de kracht van OpenAI Codex in een invoegtoepassing voor ontwikkelaarsomgevingen zoals Visual Studio Code.

Zodra de invoegtoepassing is geïnstalleerd en ingeschakeld, kunt u beginnen met het schrijven van uw code. GitHub Copilot begint automatisch de rest van de functie voor te stellen op basis van codeopmerkingen of de naam van de functie. We hebben bijvoorbeeld alleen een functienaam in het bestand en de grijze tekst wordt automatisch voorgesteld om deze te voltooien.

Screenshot of GitHub Copilot suggesting completion of function.

GitHub Copilot biedt meerdere suggesties voor het voltooien van code, die u met behulp van sneltoetsen kunt taben. Wanneer informatieve codeopmerkingen worden gegeven, kan er zelfs een functienaam worden voorgesteld, samen met de volledige functiecode.

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