GPT3回答的实用编码问题:它是否已准备好进入黄金时代?

你可以很容易地自己尝试GPT3,只需注册一个OpenAI账户,你将获得(在写这篇文章时)18美元的信用。请前往以下链接。

https://platform.openai.com/playground

在这里,你可以输入你的问题,并提交它。GPT3将在同一个文本框中回答。

有三个参数是人们直接感兴趣的。

  • 模型 - 我建议留下这个广告文本-davinci-003。你也可以尝试使用codex, code-davinci-002
  • 温度 - 0.7是我通常使用的值(控制反应的随机性/GPT3的 "创造性 "程度)。
  • 最大长度--模型应该最大限度地生成多少个符号?注意,你输入的全部代币也将计入技术限制--目前text-davinci-003有4000个代币。

顺便说一下,代币是基本的 "货币 "单位,你可以把它们看成是单词或单词的一部分。短的和常见的英语单词通常是一个代币,而长的单词将被分割成几个代币。

使用GPT3来加速你的编码

每个开发者都知道,很多开发工作包括寻找库,阅读如何使用API,以及如何与不同的对象合作。

我已经开始使用GPT3作为帮助,在编码JavaScript的时候,也在Crystal Lang上试过。

(PiCockpit的部分内容是用Crystal Lang编码的--因为我是Ruby语言的粉丝,而Crystal lang旨在拥有类似Ruby的语法和类似C的性能)。

它在好几个场合都很有用,例如,解决我是否应该在JSON语法中的键和值之间包含空格的问题。或者如何将 "require "转换为JavaScript的 "import "语法。

它擅长回答问题,而且它很少会告诉你它不能回答问题。不过,需要记住的主要一点是,你面对的是一台统计机器。

有时候,答案看起来很有道理,但当你试着写代码的时候就会崩溃。

JavaScript GPT3帮助提示失败的例子

在一个项目中,我需要使用node.js来验证电子邮件地址。GPT3建议使用 "emailvalidator "库,并给出了简单的示例代码。当我试图运行它时,它失败了。

然后我查看了 "emailvalidator "库的文档,它确实存在。结果发现,这个库(根据我的理解)需要Redis,而且一般来说需要更复杂的设置。对于我的简单应用来说,这是个大问题。GPT3在它的示例代码中没有告诉我这个事实。

然而,类似的名为 "email-validator "的npm库却能满足我的需要。

水晶郎GPT3查询成功实例

crystal lang try except block给出的代码示例

开始
  可能引发异常的#代码
rescue SomeError => e
  用#代码来处理该异常
否则
  如果没有产生异常,将执行#代码
确保
  无论是否出现异常,都会执行#代码。
结束

很好地唤醒了你的记忆--不需要谷歌、点击页面、滚动文档--你的答案就在你的指尖上。在这里和那里节省几秒钟,就能使每天的时间缩短,使每年的开发时间缩短几天甚至一周。

此外,以更简洁的格式获得答案,可以让你保持思维的流畅性--这在编程时非常重要。

水晶郎GPT3帮助失败实例1

Crystal lang, Kemal.我怎样才能从before_all中排除一个路径?

你可以通过使用:except选项将一个路径从before_all钩子中排除。这个选项以一个路径数组为参数,将这些路径从before_all钩子中排除。例如,要从before_all中排除路径'/admin/',你可以用以下代码调用before_all。

before_all :except => ['/admin/'] do
  # 你的代码在这里
结束

小心点。 上面的代码不起作用!

凯末尔是水晶郎的一个路由器,你可以想象它是一个类似于辛纳屈的东西,或者说是表达。

这段代码看起来有点道理,我试了一下,没有编译。然后我看了看Kemal的文档,和源代码,以及KemaL的公开问题。没有提到这个神话般的:除了钥匙。

GPT3只是编造了这个。

下面是在Kemal中对before_all进行异常编码的正确方法。

before_all do |env|
  next if env.request.path == "/admin/"
  # 你的代码在这里
结束

我在一篇文章中发现了这个信息 kemal.cr票.这段代码经过我的测试,实际上是可以编译的。

水晶郎GPT3帮助失败实例2

我还需要将当前的时间(UTC)转换为unix纪元。

crystal lang: 如何将Time.utc转换为unix的时间戳?

你可以使用Time#to_i方法将一个Time对象转换为Unix时间戳。

time = Time.utc(2020, 5, 15, 10, 10, 0)
unix_timestamp = time.to_i # 1589492200

小心点。 上面的代码,同样是做 不是 编译!

虽然这种方法的存在是合理的,但在中国并没有这种方法。 用于时间的Crystal Lang API.

正确的代码是。

unix_timestamp = Time.utc.to_unix

结论。GPT3是有帮助的,但要测试它的输出!

GPT3确实有助于解决常见的编程问题。它可以推荐库,回答关于语法的问题,最佳做法等等。

把它当作一个有经验的程序员,他从记忆中引用的东西,偶尔会混淆或编造。这就是统计学答案的本质--因为我们人类,作为API开发者,倾向于在代码中做 "预期的事情"(其他程序员会在他们消费的API中预期)--这些答案往往会起作用。

此外,在跨越巨大的在线数据语料库进行学习时,GPT3已经看到了大量的代码和代码实例。它已经学会了很多有效的模式。

就像一个被迫凭记忆引用的人,而不是查资料/知道在哪里查资料一样,GPT3也会偶尔出现这种失误。

但它仍然会节省你的时间,并经常为你指出正确的方向。

GPT3、ChatGPT和OpenAI API咨询

我们为这些人工智能API提供咨询服务--从商业使用案例,到完整的交钥匙解决方案。 今天就联系我们,讨论您的需求,并获得有关GPT3、ChatGPT和其他现代AI API的免费初步咨询。!