如何使用ChatGPT编写代码

跨境快讯 2024-02-01 12:04:50 woniu
2
导读:ChatGPT 能取代程序员吗?ChatGPT 知道哪些编程语言?我们回答这些问题以及您的其他生成式人工智能编码问题。关于ChatGPT更有趣的发现之一是它可以编写非常好的代码。我在二月份测试了这个,当时我要求它编写一个我妻子可以在她的网站上使用的 WordPress 插件。它做得很好,但这是一个非常简单的项目。 

如何使用ChatGPT写简历 | Excel 公式| 散文| 求职信

如何使用 ChatGPT 编写代码作为日常编码实践的一部分?这是一个快速总结:ChatGPT 可以生成有用和无用的代码。为了获得最佳结果,请提供清晰详细的提示。ChatGPT 擅长协助特定的编码任务或例程,而不是从头开始构建完整的应用程序。
使用 ChatGPT 查找并选择适合特定用途的正确编码库,并进行交互式讨论以缩小选择范围。对人工智能生成的代码的所有权保持谨慎,并始终验证代码的可靠性。不要盲目相信生成的输出。
将与 ChatGPT 的交互视为对话。根据问题的回答来完善您的问题,以更接近所需的输出。
现在,让我们更深入地探讨它。

ChatGPT 擅长哪些类型的编码?
关于 ChatGPT 和编码有两个重要事实。首先,它实际上可以编写有用的代码。
第二是它可能会完全迷路,掉进兔子洞,追着自己的尾巴,并产生绝对无法使用的垃圾。

我发现这很困难。完成 WordPress 插件后,我决定看看 ChatGPT 能走多远。

我为 Mac 应用程序编写了非常仔细的提示,包括用户界面元素、交互、设置中提供的内容、它们如何工作等的详细描述。然后,我将其输入 ChatGPT。

ChatGPT 以大量文本和代码进行响应。然后,它在代码中间停止了。当我要求它继续时,它吐出了更多的代码和文本。我一个接一个地请求继续,它转储了越来越多的代码。但是……都没有用。它没有确定代码应该放在哪里,如何构建项目,而且——当我仔细查看生成的代码时——它遗漏了我要求的主要操作,只留下简单的文本描述,说明“程序逻辑放在这里。 ”

另外: 好的,ChatGPT 刚刚调试了我的代码。真正的

经过一系列重复测试后,我很清楚,如果你要求 ChatGPT 提供完整的应用程序,它将会失败。这一观察的一个推论是,如果您对编码一无所知并希望 ChatGPT 为您构建一些东西,那么它就会失败。

ChatGPT 的成功之处(而且做得非常好)在于帮助那些已经知道如何编码的人构建特定的例程并完成特定的任务。不要要求在菜单栏上运行应用程序。但是,如果您要求 ChatGPT 提供一个例程,将菜单放在菜单栏上,然后将其粘贴到您的项目中,那就会很顺利。

另外: 如何使用 ChatGPT 创建应用程序

另外,请记住,虽然 ChatGPT似乎 拥有大量特定领域的知识(而且经常如此),但它缺乏智慧。因此,它可能能够编写代码,但无法编写包含需要深厚经验才能理解的非常具体或复杂问题的细微差别的代码。
使用 ChatGPT 演示技术、编写小型算法并生成子例程。您甚至可以让 ChatGPT 帮助您将更大的项目分解为多个块,然后您可以要求它帮助您对这些块进行编码。

因此,考虑到这一点,我们来看看如何使用 ChatGPT 编写代码的一些具体步骤。

ChatGPT 如何帮助您编写代码
1. 缩小并明确您的要求
第一步是决定您要向 ChatGPT 询问什么——但还没有询问任何内容。决定您希望函数或例程执行什么操作,或者您想要了解什么并将其合并到代码中。决定要传递到代码中的参数以及想要输出的内容。然后看看你将如何描述它。

另外: 如何编写更好的 ChatGPT 提示

想象一下,您正在付钱给一名人类程序员来做这件事。您是否向该人提供了足够的信息来完成您的任务?或者你是否太含糊,而你付钱的人更有可能提出问题或提交与你想要的东西完全无关的东西?

这是一个例子。假设我希望能够总结任何网页。我想向它提供类似这篇文章的内容,并得到一个经过深思熟虑且适当的简短摘要。作为我的输入,我将指定一个网页 URL。作为我的输出,它是带有摘要的文本块。

2. 使用 ChatGPT 探索库和资源
继续上面的示例,提取网页数据的一种非常古老的方法是查找 HTML 段落标记之间的文本。

但随着AI工具的兴起,使用AI库进行智能提取和总结变得更有意义。ChatGPT 擅长的地方之一(也是您可以轻松验证以避免其权威但错误的行为模式的领域)是查找库和资源。

另外: 如何让 ChatGPT 提供来源和引用
OpenAI(ChatGPT 的制造商)出售对 GPT-3 和GPT-4引擎的 API 访问权限,这将完全满足我们的需求。但在这个例子中,假设我们不想支付交易费用。
因此,让我们看看与 ChatGPT 的交互,以了解如何在 PHP 中运行的项目中免费使用这样的工具。

我从一个提示开始,旨在引出有关哪些库将提供我想要的功能的信息。库(对于那些不是程序员的读者来说)是程序员可以访问的代码体,它可以为特定目的完成大量繁重的工作。现代编程的一个重要部分是寻找并选择正确的库。所以这是一个很好的起点。

另外: 我使用 ChatGPT 用 12 种顶级编程语言编写了相同的例程。这是它的做法
在本例中,我正在查看其他人编写的用于总结文本的代码块。这是我的第一个提示:
描述十个不同的开源人工智能库(以及它们使用的语言),我可以使用它们生成任何网页主要核心内容的摘要,忽略任何广告或嵌入材料。

这正是我想要的,包括提及 OpenAI 的产品。我认为 OpenAI 在这里会做得很好,但对于这个假设的项目,我不想为 API 费用做预算。所以我会缩小问题范围。
ChatGPT 给出的答案是两面下注。它是这样说的:“是的,所有这十个人工智能库都是开源的,可以免费使用。但是,其中一些库可能有使用限制,或者需要付费才能访问附加功能或资源。” 因此,基于此,我澄清了我的疑问。

以下哪些库没有使用限制并且不需要任何额外的付款或许可?

请注意,这在很大程度上是一次对话。我不必重新问最初的问题。我只是以同样的方式进行深入研究,就像我手头上有专家并寻求澄清一样。在本例中,ChatGPT 给了我八个库选择,但没有一个提到我计划编码的 PHP 语言。因此,这是下一个提示:

在这 8 个库中,我可以使用 PHP 中的任何一个库吗?
它返回了三个库,但我不确定每个库的作用。那么另一个问题:
Sumy、Gensim 和 NLTK 之间有什么区别?
我还是不确定,所以我明确了我的使用计划,然后问:
如果我想创建网页新闻文章的摘要,哪个库会更好?

我得到的答案是明确且有希望的:“Sumy 是专门为文本摘要而设计的,其任务是创建一个摘要,从一段文本中捕获最重要的信息。” 所以,现在是时候看看将它与 PHP 一起使用时涉及到什么了。我针对该项目的这一部分提出了最后一个问题:您能解释一下如何在 PHP 中使用 Sumy 吗?

请随意在您的计算机上进行操作并将这些提示粘贴到您的 ChatGPT 实例中。请注意,在第一步中,我决定要获得有关哪个程序模块的帮助。然后,在这一步中,我与 ChatGPT 进行了对话,以决定使用哪个库以及如何将其集成到我的项目中。

这可能看起来不像编程,但我向你保证它确实是。编程不仅仅是在页面上编写代码行。编程就是弄清楚如何将所有不同的资源和系统集成在一起,以及如何与解决方案的所有不同组件进行通信。在这里,ChatGPT 帮助我进行了集成分析。

顺便说一句,我很好奇 Google 的 Bard 是否可以以同样的方式提供帮助。Bard 实际上无法编写代码,但它确实通过 ChatGPT 的响应对编程的规划方面提供了一些额外的见解。因此,请毫不犹豫地使用多种工具来三角测量您想要的答案。这是这个故事:Bard 与 ChatGPT:Bard 可以帮助您编码吗? 自从我写那篇文章以来,Google 向 Bard 添加了一些编码功能,但它们并不是那么好。您可以在这里阅读:我测试了 Google Bard 的新编​​码技能。进展并不顺利。
接下来是编码。

3.要求ChatGPT编写示例代码
好吧,我们在这里暂停一下。本文标题为《如何使用ChatGPT编写代码》。它会的!但我们确实要求 ChatGPT 编写示例代码。等待。什么?

让我们说清楚。除非您正在编写一个非常小的函数(例如ChatGPT 为我妻子编写的行排序器/随机化器),否则 ChatGPT 将无法编写您的最终代码。首先,你必须维护它。ChatGPT 不擅长修改已经编写的代码。可怕的是,它没有做到这一点。因此,要获得新代码,您必须要求 ChatGPT 生成新代码。正如我之前发现的,即使您的提示几乎完全相同,ChatGPT 也可能会以非常意想不到的方式改变它给您的提示。
因此,底线是:ChatGPT 无法维护您的代码,甚至无法对其进行调整。

这意味着你必须自己做。众所周知,一段代码的初稿很少是最终代码。因此,即使您期望 ChatGPT 生成最终代码,它也确实是一个起点,您需要完成它,将其集成到更大的项目中,测试它,完善它,调试它,等等。

另外: 我要求 ChatGPT 写一个简短的《星际迷航》剧集。结果确实成功了

但这并不意味着示例代码毫无价值。离得很远。我们来看一下我根据之前描述的项目写的一个提示。这是第一部分:
编写一个名为summary_article 的PHP 函数。
作为输入,summary_article 将被传递到 ZDNET.com 或Reuters.com 等新闻相关网站上的文章的 URL。

我告诉 ChatGPT 它应该使用的编程语言。我还告诉它输入,但同时提供两个站点作为示例,以帮助 ChatGPT 理解文章的风格。老实说,我不确定 ChatGPT 是否忽略了这一点指导。接下来,我将告诉它如何完成大部分工作:

在summary_article 中,检索提供的URL 处的网页内容。使用 PHP 中的 Sumy 库和任何其他必要的库,提取文章的主体,忽略任何广告或嵌入材料,并将其总结为大约 50 个单词。确保摘要由完整的句子组成。如有必要,您可以超过 50 个单词来完成最后一句话。

这与我指导员工的方式非常相似。我想让那个人知道他们不仅仅局限于苏梅。如果他们需要其他工具,我希望他们使用它。
另外:如何使用 Midjourney AI 获得完美的面部匹配

我还指定了大概的字数来为我想要的摘要创建界限。该例程的更高版本可能会将该数字作为参数。然后我最后说出了我想要的结果:

处理完成后,对 summarize_article 进行编码,以便它以纯文本形式返回摘要。

生成的代码非常简单。ChatGPT 确实调用了另一个库 (Goose) 来检索文章内容。然后它将结果传递给 Sumy(限制为 50 个字),然后返回结果。就是这样。但是,一旦编写了基础知识,只需编程即可返回并添加调整、自定义传递给两个库的内容并交付结果。
一个有趣的注意点。ChatGPT 使用 2021 年之后(当 ChatGPT 的数据集结束时)的 URL 创建了对其编写的例程的示例调用。

https://www.reuters.com/business/retail-consumer/teslas-musk-says-fremont-california-factory-may-be-sold-chip-shortage-bites-2022-03-18/

我对照路透社网站和 Wayback Machine 检查了该 URL,发现它不存在。ChatGPT 刚刚编造出来。

常见问题解答
ChatGPT 会取代程序员吗?
现在不行——或者至少现在还不行。ChatGPT 的编程水平与才华横溢的一年级编程学生的水平相同,但它很懒(就像那个一年级学生一样)。它可能会减少对入门级程序员的需求,但在目前的水平上,我认为它只会让入门级程序员(甚至是有更多经验的程序员)编写代码和查找信息变得更容易。这绝对可以节省时间,但它可以独立完成的编程项目很少——至少现在是这样。2030年?谁知道。

如何在 ChatGPT 中获得编码答案?
就问吧。您在上面看到了我如何使用交互式讨论对话框来缩小我想要的答案的范围。当您使用 ChatGPT 时,不要指望一个问题就能神奇地为您完成所有工作。但是使用 ChatGPT 作为帮助者和资源,它会给你很多非常有用的信息。当然,要测试这些信息——因为,正如 OpenAI 联合创始人约翰·舒尔曼 (John Schulman)所说,“我们最关心的是事实,因为模型喜欢捏造东西。”

ChatGPT 编码的可靠性如何?我可以信任它生成的代码吗?
哦,见鬼去吧。但你也不能相信人类程序员编写的代码。我当然不相信我编写的任何代码。代码编写过程中产生的代码存在着令人难以置信的缺陷。总是有错误。在发货之前,您需要测试、测试、再测试。然后,对一些选定的受害者进行阿尔法测试。然后与更广泛的用户社区进行 Beta 测试。即使在这一切之后,仍然会出现错误。仅仅因为人工智能正在从事这种编码工作并不意味着它可以编写没有错误的代码。不要相信。始终验证。而且你仍然无法让它完全没有错误。这就是宇宙的本质。

如果我使用 ChatGPT 编写代码,那么谁拥有它?
事实证明,目前还没有很多判例法可以明确回答这个问题。美国、加拿大和英国要求受版权保护的东西必须是由人手创建的,因此人工智能工具生成的代码可能不受版权保护。还存在基于培训代码的来源以及生成的代码的使用方式的责任问题。ZDNET 对此主题进行了深入研究,与法律专家进行了交谈,并撰写了以下三篇文章。如果您担心这个问题(如果您正在使用人工智能来帮助编写代码,那么您应该担心),我建议您阅读它们。

谁拥有代码?如果 ChatGPT 的 AI 帮助您编写应用程序,它仍然属于您吗?
如果您使用人工智能生成的代码,您的责任风险是什么?
一个棘手的问题:谁拥有人工智能生成的代码、图像和叙述?
ChatGPT 知道哪些编程语言?
他们中的大多数。我尝试这个时非常偏离主题。我测试了常见的现代语言,如 PHP、Python、Java、Kotlin、Swift、C# 等。但后来我让它用晦涩的黑暗时代语言编写代码,如 COBOL、Fortran、Forth、LISP、ALGOL、RPG(报告程序生成器,而不是角色扮演游戏),甚至 IBM/360 汇编语言。

作为锦上添花,我给出了这样的提示:

编写一个序列,在 PDP 8/e 前面板上以 ascii 闪烁灯显示“Hello, world”

PDP 8/e 是我的第一台计算机,ChatGPT 实际上为我提供了使用前面板开关切换程序的说明。我印象深刻,很高兴,但又有点害怕。

另外: 如何使用 ChatGPT 总结书籍、文章或研究论文

底线是什么?ChatGPT 是一个非常有用的工具。只是不要赋予它超能力。
原文链接:https://www.zdnet.com/article/how-to-use-chatgpt-to-write-code/

版权声明: woniu 发表于 2024-02-01 12:04:50。
转载请注明: 如何使用ChatGPT编写代码 | 跨境湾

相关文章