""" 1. 创建一个名字列表 2. 创建一个姓氏列表 3. 将它们随机组合成一个包含 100 个全名的列表 """

创建 MySQL 查询 (Python)

""" 表 customers, columns = [CustomerId, FirstName, LastName, Company, Address, City, State, Country, PostalCode, Phone, Fax, Email, SupportRepId] 为德克萨斯州所有名为 Jane 的客户创建一个 MySQL 查询 """ query =

解释代码 (JavaScript)

// 函数 1 var fullNames = [];对于 (var i = 0; i < 50; i++) { fullNames.push(names[Math.floor(Math.random() * names.length)] + " " + lastNames[Math.floor(Math.random() * lastNames.length)]); } // 函数 1 是做什么的?

最佳实践

从注释、数据或代码开始

您可以在我们的 playground 中尝试使用其中一种 Codex 模型(需要时将样式说明作为注释。)

要让 Codex 创建有用的完成,考虑程序员执行任务需要哪些信息会很有帮助。这可以只是一个清晰的注释或编写有用函数所需的数据,例如变量名称或函数处理的类。

在此示例中,我们告诉 Codex 调用该函数的内容以及它将执行的任务。

# 创建一个名为“nameImporter”的函数来将名字和姓氏添加到数据库中

这种方法甚至可以扩展到您可以向 Codex 提供注释和数据库模式示例,以使其为各种数据库编写有用的查询请求。这是我们为查询提供列和表名称的示例。

# 表专辑,列 = [AlbumId, Title, ArtistId] # 表艺术家,列 = [ArtistId, Name] # 表 media_types, 列 = [MediaTypeId, Name] # 表播放列表, 列 = [PlaylistId, Name] # 表 playlist_track, columns = [PlaylistId, TrackId] # Table tracks, columns = [TrackId, Name, AlbumId, MediaTypeId, GenreId, Composer, Milliseconds, Bytes, UnitPrice] # 为超过 10 个曲目的所有专辑创建查询

当您向 Codex 显示数据库模式时,它能够对如何格式化查询做出有根据的猜测。

指定编程语言

Codex 了解数十种不同的编程语言。许多人对注释、函数和其他编程语法有着相似的约定。通过在评论中指定语言和版本,Codex 能够更好地完成您想要的内容。也就是说,Codex 在风格和语法方面相当灵活。这是 R 和 Python 的示例。

# R语言# 计算点数组之间的平均距离
# Python 3 # 计算点数组之间的平均距离

提示 Codex 你想要它做什么

 

或者,如果我们想编写一个函数,我们可以按如下方式启动提示,Codex 将了解下一步需要做什么。

# 创建一个函数来计数到 100 def 计数器

指定库将帮助 Codex 了解您想要什么

Codex 知道大量的库、API 和模块。通过通过注释或将它们导入您的代码告诉 Codex 使用哪些,Codex 将根据它们而不是备选方案提出建议。

 

通过指定版本,您可以确保 Codex 使用最新的库。

注释风格会影响代码质量

#
""" 创建用户和电子邮件地址数组 """

函数内部的注释可能会有所帮助

推荐的编码标准通常建议将函数的描述放在函数内部。使用这种格式有助于 Codex 更清楚地了解您希望函数执行的操作。

def getUserBalance(id): """ 在数据库 'UserData' 中查找用户并返回他们当前的账户余额。 """

提供示例以获得更精确的结果

如果您有需要 Codex 使用的特定样式或格式,请在请求的第一部分提供示例或演示,这将有助于 Codex 更准确地满足您的需求。

""" 创建随机动物和物种列表 """ animals = [ {"name": "Chomper", "species": "Hamster"}, {"name":

较低的温度可提供更精确的结果

在大多数情况下,将 API 温度设置为 0 或接近于零(例如 0.1 或 0.2)往往会产生更好的结果。与 GPT-3 模型不同,更高的温度可以提供有用的创造性和随机结果,而 Codex 模型的更高温度可能会给您真正随机或不稳定的响应。

如果您需要 Codex 提供不同的潜在结果,请从零开始,然后向上递增 0.1,直到找到合适的变化。

将任务组织成功能

我们可以通过在注释中尽可能准确地指定函数应该做什么来让 Codex 编写函数。例如,通过编写以下注释,Codex 创建了一个 JavaScript 计时器函数,该函数在用户按下按钮时触发:

一个简单的 JavaScript 计时器

// 创建一个在 10 秒内创建警报的计时器

创建示例数据

测试应用程序通常需要使用示例数据。因为 Codex 是一种理解如何理解和编写自然语言的语言模型,所以您可以要求 Codex 创建数据,例如虚构名称、产品和其他变量的数组。例如,在这里我们要求 Codex 创建一个天气温度数组。

/* 为旧金山创建一个天气温度数组 */

要求 Codex 执行此任务将生成如下表格:

var weather = [ { month: '1月', high: 58, low: 48 }, { month: '2月', high: 61, low: 50 }, { month: 'March', high: 64, low: 53 }, { month: 'April', high: 67, low: 55 }, { month: 'May', high: 70, low: 58 }, { month: 'June', high: 73, low: 61 }, { month: '七月', high: 76, low: 63 }, { month: 'August', high: 77, low: 64 }, { month: 'September', high: 76, low: 63 }, { month : 'October', high: 73, low: 61 }, { month: 'November', high: 68, low: 57 }, { month: 'December', high: 64, low: 54 } ];

复合函数和小型应用程序

我们可以向 Codex 提供包含复杂请求的评论,例如创建随机名称生成器或使用用户输入执行任务,如果有足够的令牌,Codex 可以生成其余内容。

/* 创建一个动物列表 创建一个城市列表 使用列表生成关于我在每个城市的动物园看到的故事 */

限制完成大小以获得更精确的结果或更低的延迟

\n

使用流式传输减少延迟

停止
n > 1max_tokensstop

使用 Codex 解释代码

Codex 创建和理解代码的能力使我们能够使用它来执行任务,例如解释文件中代码的作用。实现此目的的一种方法是在以“This function”或“This application is”开头的函数之后添加注释。食典委通常将此解释为解释的开始并完成文本的其余部分。

/* 解释前面的函数在做什么:它

解释 SQL 查询

在此示例中,我们使用 Codex 以人类可读的格式解释 SQL 查询的作用。

SELECT DISTINCT department.name FROM department JOIN employee ON department.id = employee.department_id JOIN salary_payments ON employee.id = salary_payments.employee_id WHERE salary_payments.date BETWEEN '2020-06-01' AND '2020-06-30' GROUP BY 部门.name 有 COUNT(employee.id) > 10; -- 以人类可读的格式解释上述查询 --

编写单元测试

只需添加注释“单元测试”并启动一个函数,即可在 Python 中创建单元测试。

# Python 3 def sum_numbers(a, b): return a + b # 单元测试 def

检查代码错误

通过使用示例,您可以向 Codex 展示如何识别代码中的错误。在某些情况下,不需要示例,但是展示提供描述的级别和细节可以帮助法典理解要查找的内容以及如何解释它。 (Codex 对错误的检查不应取代用户的仔细审查。)

/* 解释为什么前面的函数不起作用。 */

使用源数据编写数据库函数

正如人类程序员会从了解数据库结构和列名中获益一样,Codex 可以使用此数据来帮助您编写准确的查询请求。在此示例中,我们插入数据库的模式并告诉 Codex 要查询数据库的内容。

# 表专辑,列 = [AlbumId, Title, ArtistId] # 表艺术家,列 = [ArtistId, Name] # 表 media_types, 列 = [MediaTypeId, Name] # 表播放列表, 列 = [PlaylistId, Name] # 表 playlist_track, columns = [PlaylistId, TrackId] # Table tracks, columns = [TrackId, Name, AlbumId, MediaTypeId, GenreId, Composer, Milliseconds, Bytes, UnitPrice] # 为超过 10 个曲目的所有专辑创建查询

语言之间的转换

您可以让 Codex 从一种语言转换为另一种语言,方法是遵循一种简单的格式,您可以在注释中列出要转换的代码的语言,然后是代码,然后是包含您希望将其翻译成的语言的注释。

# 将此从 Python 转换为 R # Python 版本 [Python 代码] # End # R 版本

为库或框架重写代码

如果您希望 Codex 使某个功能更高效,您可以为其提供要重写的代码,然后提供有关使用何种格式的说明。

// 将其重写为 React 组件 var input = document.createElement('input'); input.setAttribute('类型', '文本'); document.body.appendChild(输入); var button = document.createElement('按钮'); button.innerHTML = '问好'; document.body.appendChild(按钮); button.onclick = function() { var name = input.value; var hello = document.createElement('div'); hello.innerHTML = '你好' + 名字;文档.body.appendChild(你好); }; // 反应版本:

下一步