大数跨境

科技的碰撞:ChatGPT+编程

科技的碰撞:ChatGPT+编程 数组智控产业发展科技院
2023-04-10
2
导读:文章来源《Chat GPT:AI革命》程序员就像人类和计算机之间的翻译官,他们所做的工作主要就是把人的想法和

文章来源《Chat GPT:AI革命》

程序员就像人类和计算机之间的翻译官,他们所做的工作主要就是把人的想法和需求编写成计算机可以理解的代码和命令。

有人认为,当人工智能可以理解人类的语言,并且可以把人类的想法转换成代码,那么程序员就失去了存在的意义。

也有人认为,人工智能的发展目标不是消灭程序员,而是通过消除一些重复性的工作让程序员有更多的时间去进行创造性的思考,去解决更棘手的问题。

人工智能与程序员应该是合作关系,而不是竞争关系。

抛开这些争议不谈,人工智能的确能给程序员的工作带来很大的便利,下面就来看看用ChatGPT完成编程相关任务的一些例子吧。

01 编写示例代码

OpenAI的GPT-3模型为程序员提供了开发接口。

要掌握开发接口的使用方法,就得花时间阅读相关的技术文档。

如果没有时间阅读文档,也可以用ChatGPT生成示例代码,从而快速了解接口的基本用法。

Q:我想用Python调用OpenAI的GPT-3模型,要怎么编写代码呢?

A:使用OpenAI的GPT-3模型需要先注册OpenAI API并获得API密钥。

你可以在OpenAI的官方网站上申请API密钥。

接下来,你需要安装OpenAI的Python SDK,你可以使用以下命令安装:

然后,你就可以使用以下代码调用GPT-3模型了:

以上代码将输出:

可以看到,ChatGPT给出的回答条理十分清晰,不仅有格式规范、带有简洁注释的代码,还包括要做的准备工作和代码的运行结果。

02 代码错误修正与功能解读

ChatGPT可以修正代码中的错误,并解读代码的功能。这对于编程新手来说尤其有用。

Q:下面这段Python代码有什么问题吗?

A:这段代码中存在以下问题:

①导入错误:应该使用“from pathlib import Path”而不是“from pathlib import path”。

②命名错误:使用Path类而不是path变量。

③函数名错误:使用exists()而不是exist()检查路径是否存在。

④比较错误:比较操作应该使用“==”而不是“=”。

⑤缩进错误:unlink()应该在if语句下面缩进。

正确的代码应该如下:

Q:能解释一下上面这段代码的功能吗?

A:是的,我很愿意。

这段代码的功能是:如果/home/ChatGPT/data.csv这个文件存在且扩展名是“.csv”,那么就删除该文件。

它用到了Python中的pathlib模块,该模块提供了Path类,可以简化文件系统操作。

在代码中,首先使用Path类创建了一个p对象,代表文件/home/ChatGPT/data.csv。然后使用p.exists()检查该文件是否存在,如果存在,则使用p.suffix获取文件扩展名并与“.csv”进行比较。

如果扩展名是“.csv”,则使用p.unlink()删除该文件。

可以看到,ChatGPT指出了原始代码中几乎所有的错误,除了if语句末尾缺失的冒号,但在修正时仍然补上了这个冒号。

ChatGPT对代码功能的讲解也很浅显易懂。

03 代码评审与优化

ChatGPT可以评价代码的质量。即使代码没有语法错误,ChatGPT也能分析其中是否还有优化的空间。

Q:你觉得这段Python代码写得怎么样?

A:这段代码的编写是正确的,也是简单易懂的。

它创建了一个空列表a,然后使用for循环在其中添加了10个整数。

但是,如果你想让代码更简洁、更Pythonic ,可以使用列表推导式:

04 提供编程思路

如果不知道该如何通过编程来解决一个问题,可以让ChatGPT提供一些思路。

Q:我有一个列表['3月', '10月', '9月', '8月'],想用Python对它进行自然排序,有哪些方法呢?

A:您可以使用Python的内置函数sorted()来实现自然排序。

下面是一个例子:

在上面的代码中,我们通过提供一个key函数给sorted()函数来告诉它如何比较元素。

在这里,我们把每个元素看作一个字符串,并将其转换为整数。

Q:还是有点复杂,有没有更简单的方法呢?

A:是的,您可以使用第三方模块natsort进行自然排序。首先,您需要安装natsort模块:

然后,您就可以这样使用natsort进行自然排序:

可以看到,ChatGPT准确地发现了列表中的元素都以“月”字结尾,且其余部分可视为整数。

它甚至能理解这些元素所代表的实际上是月份,因而用months来作为变量名。

在我们的追问下,ChatGPT还提供了另一种更易于理解的编程思路。

05 推荐技术方案

在规划一个开发项目时,技术方案的选择是非常重要的一个方面。

下面来看看ChatGPT能给我们提供什么样的建议。

Q:我是一个运维人员,同时管理着多台Linux主机和Windows主机,想要通过编程来实现自动化管理这些主机,你能推荐一些技术方案吗?

A:当然!作为运维人员,自动化是一项很重要的技能。以下是一些推荐的技术方案:

①Ansible:这是一个非常流行的自动化管理工具,适用于Linux和Windows系统。它可以通过SSH或WinRM协议连接到远程主机,执行脚本和任务。

②Puppet:这是一个开源的配置管理工具,可以自动化管理大量主机。Puppet可以通过其语言和模块来描述系统的配置,并自动将其应用到目标系统。

③Chef:这是一个基于Ruby的配置管理工具,可以自动化管理大量主机。Chef可以通过其语言和模块来描述系统的配置,并自动将其应用到目标系统。

④SaltStack:这是一个分布式的配置管理工具,可以自动化管理大量主机。SaltStack使用Python语言,可以通过它的模块和命令行工具来管理远程主机。

这四种工具都是非常流行且强大的自动化管理工具,你可以根据自己的需求和喜好选择一个合适的工具。

Q:我只会用Python编程,哪个工具适合我呢?

A:如果您只会用Python编程,我推荐您使用Salt Stack。SaltStack是一个分布式的配置管理工具,使用Python语言开发,因此您可以使用您熟悉的语言来编写脚本和模块。

此外,SaltStack还提供了丰富的文档和社区支持,方便您学习和使用。

因此,如果您只会Python,SaltStack是一个不错的选择。

ChatGPT的回答或许并不完全准确(实际上,Ansible也是用Python开发的),但它为我们快速了解一个未知的领域建立了很好的起点。

06 模拟Linux终端

ChatGPT可以按照我们所要求的方式与我们进行对话。

下面让ChatGPT“扮演”Linux终端的角色,我们输入的内容是shell命令,ChatGPT会返回命令的执行结果。

Q:我想让你模拟一个Linux终端。

我会输入shell命令,你要显示终端应该输出的内容,不需要做任何解释。我输入的第一条命令是“uname -a”。

A:Linux localhost 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-09-22) x86_64 GNU/Linux

Q:pwd

A:/home/user

Q:echo -n "ChatGPT" | base64

A:Q2hhdEdQVA==

可以看到,由于我们给出的要求具体而清晰,ChatGPT很好地完成了“角色扮演”的任务。

按照这个思路举一反三,还能让ChatGPT模拟JavaScript控制台、Python解释器等,给编程工作带来一些便利。

07 编写SQL语句

ChatGPT可以基于自然语言的描述编写SQL语句,下面是一个例子。

Q:我想在MySQL中存储学生选课的数据,每一名学生可以选修多门课程,应该创建几个数据表?

A:通常,在MySQL中存储学生选课数据需要创建三个数据表:学生表、课程表和选课表。

学生表存储学生的个人信息,包括学生的姓名、学号等信息,它可以是主表。

课程表存储课程的信息,包括课程名称、课程编号等信息,它也可以是主表。

选课表存储学生选课信息,包括学生学号、课程编号等信息,它是从表,用于连接学生表和课程表,是多对多的关系。

下面是创建这三个数据表的示例代码:

ChatGPT很好地理解了我们的意图,它先分析出了各个数据表要包含的字段和数据表之间的关联关系,然后据此编写出了基本正确的SQL语句。

从这个案例可以看出,ChatGPT已经具备了一定的数据表设计能力和编写较复杂的SQL语句的能力。

08 在代码编辑器中调用ChatGPT

目前已经有人为一些流行的代码编辑器开发出了ChatGPT的插件,让程序员不需要离开代码编辑器窗口就能利用ChatGPT帮助自己编程。

例如,在微软公司推出的Visual Studio Code的扩展商店里搜索“ChatGPT”,可以得到近30款插件。

下面就来体验一下其中下载量最高的一款插件(见下图)的使用效果。

安装插件后,按照插件详情页面中描述的使用说明进行登录(可以使用OpenAPI的账号/密码或API Key),就可以使用插件了。

在Visual Studio Code中创建或打开一个代码文件,然后选中其中要分析的代码片段并右击,在弹出的快捷菜单中选择以“ChatGPT”开头的命令,即可调用插件对代码进行分析。

例如,这里要对一段代码自动进行注释,就在快捷菜单中选择“ChatGPT: Add comments”命令,如下图所示。

随后在窗口左边的插件窗格里就会自动对这段代码与ChatGPT进行对话,如下图所示。

还可以单击窗格中的按钮,将ChatGPT生成的带注释代码复制到剪贴板或直接插入到代码文件中。

       

【声明】内容源于网络
0
0
数组智控产业发展科技院
以AI技术为底层能力,聚焦智慧园区、城市公共安全、数智警务、健康医疗、能源电力、科研实验及平安校园等领域,提供从感知到决策的全流程软硬件一体化的国产装备智能体产品解决方案。
内容 986
粉丝 0
数组智控产业发展科技院 以AI技术为底层能力,聚焦智慧园区、城市公共安全、数智警务、健康医疗、能源电力、科研实验及平安校园等领域,提供从感知到决策的全流程软硬件一体化的国产装备智能体产品解决方案。
总阅读1.6k
粉丝0
内容986