Compreender os recursos de geração de código OpenAI

Concluído

Os modelos GPT são capazes de pegar linguagem natural ou trechos de código e traduzi-los em código. Os modelos OpenAI GPT são proficientes em mais de uma dúzia de linguagens, como C#, JavaScript, Perl, PHP e são mais capazes em Python.

Os modelos GPT foram treinados em linguagem natural e bilhões de linhas de código de repositórios públicos. Os modelos são capazes de gerar código a partir de instruções de linguagem natural, como comentários de código, e podem sugerir maneiras de completar funções de código.

Por exemplo, dado o prompt "Write a for loop counting from 1 to 10 in Python", a seguinte resposta é fornecida:

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

Os modelos GPT podem ajudar os desenvolvedores a codificar mais rapidamente, entender novas linguagens de codificação e se concentrar na solução de problemas maiores em seus aplicativos. Os desenvolvedores podem dividir suas metas em tarefas mais simples e usar o GPT para ajudar a construir essas tarefas usando padrões conhecidos.

Exemplos de geração de código

Parte dos dados de treinamento para GPT-3 incluiu linguagens de programação, então não é surpresa que os modelos GPT possam responder a perguntas de programação se solicitados. O que é único sobre a família de modelos Codex é que ela é mais capaz em mais idiomas do que os modelos GPT.

A geração de código vai além de apenas escrever código a partir de prompts de linguagem natural. Dado o código a seguir, ele pode gerar testes de unidade:

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

# Unit test
def

A GPT desenvolve testes de unidade para a nossa função:

# 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

O GPT também pode resumir funções que já estão escritas, explicar consultas ou tabelas SQL e converter uma função de uma linguagem de programação para outra.

Ao interagir com modelos GPT, você pode especificar bibliotecas ou tags específicas de idioma para deixar claro para o Codex o que queremos. Por exemplo, podemos fornecer este prompt formatado como um comentário HTML: , e obtê-lo como resultado: <!-- build a page titled "Let's Learn about AI" -->

<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

A OpenAI fez uma parceria com o GitHub para criar o GitHub Copilot, que eles chamam de programador de par de IA. O GitHub Copilot integra o poder do OpenAI Codex em um plug-in para ambientes de desenvolvedores como o Visual Studio Code.

Uma vez que o plug-in é instalado e ativado, você pode começar a escrever seu código, e o GitHub Copilot começa a sugerir automaticamente o restante da função com base em comentários de código ou no nome da função. Por exemplo, temos apenas um nome de função no arquivo e o texto cinza é sugerido automaticamente para completá-lo.

Screenshot of GitHub Copilot suggesting completion of function.

O GitHub Copilot oferece várias sugestões para conclusão de código, que você pode percorrer usando atalhos de teclado. Quando recebe comentários de código informativos, ele pode até sugerir um nome de função junto com o código de função completo.

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