了解 OpenAI 程式碼產生功能

已完成

GPT 模型能夠接受自然語言或程式碼片段,並將其轉譯成程式碼。 OpenAI GPT 模型熟悉數十種語言,例如 C#、JavaScript、Perl、PHP,而且在 Python 上的表現最為出色。

GPT 模型已透過自然語言和來自公用存放庫的數十億行程式碼進行訓練。 模型能夠從自然語言指令產生程式碼,例如程式碼註解,也可以對完成程式碼函數的方式提出建議。

例如,假設出現「使用 Python 撰寫從 1 到 10 的 for 迴圈計數」提示,則會提供下列答案:

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

GPT 模型可協助開發人員更快速地撰寫程式碼、了解新的程式碼語言,並專注於解決其應用程式中更大的問題。 開發人員可以將目標細分成更簡單的工作,並使用 GPT 協助使用已知模式建置這些工作。

程式碼產生範例

因為 GPT-3 的部分訓練資料包含程式設計語言,所以 GPT 模型在受到詢問時,可以毫不意外的回答程式設計問題。 Codex 模型系列的獨特之處在於,其在更多語言上的表現較 GPT 模型出色。

程式碼產生不只是從自然語言提示撰寫程式碼。 假設有下列程式碼,其可產生單元測試:

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

# Unit test
def

GPT 會建置函數的單元測試:

# 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 也可以對已撰寫的函數進行摘要、說明 SQL 查詢或資料表,以及將函數從一種程式設計語言轉換成另一種程式設計語言。

與 GPT 模型互動時,您可以指定程式庫或語言特定標籤,以清楚對 Codex 說明我們的要求。 例如,我們可以提供格式化為 HTML 註解的這個提示:<!-- 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

OpenAI 與 GitHub 攜手建立 GitHub Copilot,並將其稱為 AI 配對程式設計師。 GitHub Copilot 將 OpenAI Codex 的強大功能,整合至 Visual Studio Code 等開發人員環境的外掛程式。

安裝並啟用外掛程式之後,您就可以開始撰寫程式碼,而 GitHub Copilot 會根據程式碼註解或函數名稱,自動建議函數的其餘部分。 例如,我們在檔案中只有函數名稱,而且會自動建議使用灰色文字來完成函數。

Screenshot of GitHub Copilot suggesting completion of function.

GitHub Copilot提供多個程式碼完成建議,您可以使用鍵盤快速鍵來逐一切換。 當指定資訊性程式碼註解時,甚至可以建議函數名稱及完整的函數程式碼。

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