如果您不知道还有第一部分, 推荐先阅读之前篇
最近,OpenAI发布了GPT-4模型,让AI的功能变得更加强大和多样化。这一进步引起了广泛的好奇和担忧,特别是在程序员群体中。人们开始在搜索引擎上询问”ChatGPT是否会取代程序员?”,这成为了热门的搜索推荐。这反映了那些创造了ChatGPT这类工具的人们对于它是否会取代他们的担心。
这种好奇和担忧是有道理的,尽管程度可能不同。如今,AI已经在网站开发到游戏设计等各种应用中展现了其创建代码的能力。更有甚者,AI甚至被用于创造更先进的AI系统,这种技术被称为自动机器学习(AutoML),它允许机器在没有或几乎没有人工干预的情况下创建复杂的模型并优化算法。
尽管AI目前还不太可能创造比自己更智能、更强大的版本,但增强版会继续创造更强大的版本,形成一个无限循环,直至达到无限智能和强大。然而,值得注意的是,在不久的将来,AI的编码能力可能会接近甚至与人类持平,尽管可能无法超越人类。
现阶段,我们可以利用像ChatGPT这样的AI来辅助编程,从而更高效地编写代码,提高工作效率。虽然AI可能不会在编码方面完全取代人类,但它可以成为我们的有力帮手,助力我们更好地应对日益复杂的编程任务。让我们拥抱这种技术,并将其应用于我们的工作,随着时间的推移,我们可以期待AI与人类共同推动编程领域的进步。
使用ChatGPT来编程
开发人员可以利用多种方式使用ChatGPT进行编程,特别是在头脑风暴和生成可以修改和完善的代码框架方面。ChatGPT的自然语言生成代码能力改变了编码的规则,它是整合机器与人类之间语言鸿沟的重要一步。
以下是一些我们可以使用ChatGPT进行编程和开发的方法:
- 生成代码 Generate Code:ChatGPT可以根据我们给出的提示生成代码,帮助我们快速获得初步的实现。
- 完成和修改代码 Complte and modify code:当我们遇到代码的片段或结构需要完善时,ChatGPT可以辅助我们进行修改和补充。
- 调试代码 Debug:ChatGPT有助于找出代码中的错误和问题,从而更高效地进行调试。
- 翻译和多语言支持:ChatGPT可以帮助我们将代码从一种编程语言转换为另一种,节省我们手动翻译的时间和精力。
- 代码注释:我们可以向ChatGPT询问特定代码的功能和作用,它能够用简洁的自然语言解释代码的含义。
此外,我们还可以将ChatGPT应用于以下场景:
- 作为Linux终端命令行解释器:ChatGPT可以用作Linux终端,执行我们发送的命令和任务。
- 作为SQL命令行解释器:ChatGPT可以作为SQL命令行,帮助我们快速查询和操作数据库。
通过更详细地探究上述用例,我们可以更好地了解如何充分发挥ChatGPT在编码过程中的作用,并提高我们的编程效率。让我们充分利用这一技术,推动编码和开发领域的进步。
使用ChatGPT进行编程的技巧
在开始使用ChatGPT进行编程之前,学习一些重要的ChatGPT编码技巧和窍门将对您从中获得最大收益非常有用。以下是一些关于如何使用ChatGPT来生成更可用、功能更强、优化更好的代码的技巧:
- 分解成最小功能单元:尽可能将代码或编程思想分解成最小的功能单元,以减少错误。然后,您可以将它们组合成一个功能性的整体。如果您向ChatGPT询问冗长的代码,可能会因为上下文窗口较短而得到一个明显错误的代码,或者无法按照您的要求正常工作。
- 辅助函数和避免注释:为了克服响应中的文本限制,请让ChatGPT使用辅助函数,避免注释和解释。这样,您可以复制代码并直接使用。如果ChatGPT给出的代码不完整,您可以要求它继续或继续生成更多代码。
- 缩短描述:使用不减少细节的简短形式来代替冗长的描述,例如将 “用C#写一段代码……” 改为 “C#: ……”。
- 提出更多问题以建立上下文:通常情况下,ChatGPT可能会生成通用或不相关的回复。因此,您可以在提示中附加 “提出更多问题以帮助您建立上下文”。这样,ChatGPT会向您提出相关问题,您可以回答这些问题以获得更准确的答案。
- 要求交叉检查:在生成代码后,您可以要求ChatGPT对生成的代码进行交叉检查,以确保代码的正确性和合理性。
这些技巧将有助于您更好地利用ChatGPT的编码能力,使您在编程过程中更高效且准确地获得所需代码。不断探索和练习,将使您在使用ChatGPT进行编码时越来越熟练。
生成代码
ChatGPT就像一个编程小助手,可以帮助我们用任何编程语言编写简单的代码。但并不意味着我们可以随意输入一些文字,然后它就会给我们完整、精细、优化的代码,可以直接发布。然而,我们可以采取一些方法来让它生成更符合我们要求的答案。
对于ChatGPT来说,上下文非常重要。比如,我们先问:“什么是JavaScript?”然后再问:“给我一个用JavaScript创建的应用程序的例子”,接着再问:“展示一个用JavaScript制造手机振动的应用程序”,这样比直接问最后一个问题更好。因为有时候它会回答说它只是一个语言模型,不能做这个或那个。
总的来说,ChatGPT是个很有用的工具,可以帮助我们在编程时更加顺利,但要注意如何提问以及给它提供足够的上下文,这样才能得到我们更期望的回答。
编写一个正则表达式,从文本文件中提取所有日期。
通常, 如果不明确具体的语言, ChatGPT会默认使用Python.
编写复利计算器的Javascript代码。
如果不明确是函数的话, 只说Javascript的话, ChatGPT会混合HTML和Javascript来给出答案, 这样的好处是, 新手直接copy & paste代码就可以使用, 但是, 对于专业的开发者来说, 我们可以直接让ChatGPT给出一个Javascript函数。
使用Javascript实现一个复利计算器函数
Debug
在代码调试方面,ChatGPT也是非常有用的应用。一项研究发现,ChatGPT在修复代码错误方面与深度学习方法CoCoNut和Codex的表现相当。但在某些方面,它确实有一些优势。
ChatGPT的区别在于,它不仅提供代码的修复,还提供解释,并通过对话系统进一步获取更多信息。通过提供更多的提示和细节,可以提高它的成功率。
如果我们想检查代码的执行效果, 可以要求ChatGPT显示输出结果
代码翻译
ChatGPT还可以用于将代码从一种语言翻译成另一种语言。也许您更擅长一种语言,但需要在另一种语言中完成任务,或者只是想在另一种语言中测试代码。又或者您希望在另一个项目中使用这段代码。然后,您可以使用ChatGPT将代码翻译成所需的语言。
下面是上面生成的Python代码翻译成Javascript的版本。
代码注释, 使用自然语言来解释代码
ChatGPT可以用简单自然语言(英文、中文或任何其他语言)解释代码。对于初学者学习编程语言或对某种语言不熟悉的人来说,这非常有帮助。另一个使用场景是,如果您有一行您不知道功能的代码,您可以输入这段代码到ChatGPT中,以找出它是做什么的。
您也可以使用ChatGPT来解码正则表达式,并向您解释它们的作用。
Linux 命令行模拟器
ChatGPT可以用来模拟Linux终端。通过要求它表现得像一个终端,您可以将ChatGPT转换成一个终端。
您还可以通过在提示中明确规定规则,指示ChatGPT以特定方式表现,或者不执行某些操作。这样,您可以明确地告知ChatGPT在模拟终端时应该如何行事。
I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English, I will do so by putting text inside curly brackets {like this}.
如果要退出模拟器的状态, 你只需要输入
exit
SQL 命令行模拟器
ChatGPT可以用来模拟SQL命令行来运行SQL语句
Act as an SQL terminal in front of an example database. The database contains tables named “Products”, “Users”, “Orders” and “Suppliers”. I will type queries and you will reply with what the terminal would show. I want you to reply with a table of query results in a single code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so in curly braces {like this}.
同样, 如果要退出模拟器状态, 只需要输入
exit
有更多的方式可以使用ChatGPT进行编程和其他开发任务,我们在此未详细展开。随着您的频繁使用,您将发现更多功能和独特的用途。
开发人员可以将ChatGPT作为助手,提高生产力并优化工作流程。ChatGPT不会取代程序员(至少目前不会),但它提高了对程序员的期望,对他们提出了更多要求。因此,对于编码者和开发者来说,利用所有可用的工具不仅能保持与时俱进,还能走在前沿。
在ChatGPT的帮助下编码可以使程序员更加高效,并有助于解决难题和自动化繁琐的任务。但它不会使您成为一个专业的程序员,这其实是一件好事,因为如果它能做到,那么它将取代您的角色。
在编程中使用ChatGPT可以让您成为一个更高效的程序员,帮助您克服困难,自动化繁琐的任务。但它不会让您变成专业的程序员,这其实是一件好事,因为如果它能做到,那么它将取代您的角色。
一些辅助Coding的AI工具
使用ChatGPT进行编码只是使用人工智能进行编码的众多方式之一。以下是一些可供您使用的用于编码的ChatGPT替代方案,通过少量输入实现更多功能。
- OpenAI Codex:一种将自然语言翻译为代码的AI系统。Codex精通十几种编程语言,可以解释自然语言中的简单命令并代表用户执行,使得在现有应用程序中构建自然语言接口成为可能。
- Copilot:由GitHub开发并使用OpenAI Codex的编程伴侣。实时建议代码和整个函数,直接从编辑器中提供。
- AlphaCode:由DeepMind开发的AI代码生成工具。它使用基于Transformer的语言模型,根据对问题的自然语言描述生成代码。
- DeepGenX:一个免费且开源的代码生成器,作为Visual Studio Code的扩展功能提供。
- SourceAI:一种基于AI的工具,可以从人类语言描述中生成任何编程语言的代码。它还可以简化、查找错误并修复和调试代码。
- Tabnine:Tabnine的AI代码补全IDE插件根据数百万个程序以及您自己的上下文完成代码,使开发者能够更好、更快地编写代码。
- Codeium:一种AI编码助手,可以提供AI生成的超过20种编程语言的自动完成代码,并与各种IDE(如VSCode、Colab、Vim等)直接集成。
- StarCoder: 一个由Hugging Face开发的一个VSCode插件, 可以实时建议代码和生成代码。