庆云古诗词

庆云古诗词

chatgpt如何使用并提高工作效率 让生产力加倍的 chatgpt 快捷指令

互联资讯 0

2023年11月20日 每日一猜答案: 答案:ABC
每日一猜答案分析:

chatgpt官网,chatgpt是什么意思,chatgpt国内能用吗,chatgpt下载

ChatGPT 在编程方面的能力已经得到了无数开发者的认证,Github 更是将这部分能力移植到了其提供的AI辅助编程工具 Copilot X 中。

而作为普通开发者的我们,又该如何将 ChatGPT 的编程能力融合进我们日常的工作流程中,以更好地提升我们的开发效率呢?

针对这个问题,推特上有名网友就向我们分享了一张图――《面向开发人员的10个超有用的 ChatGPT 提示》。

图中列举了10个 ChatGPT 可以应用到的工作场景,并为每个场景编写了一个 Prompt 示例。

而本文撰写的目的,就是验证将 ChatGPT 应用到这10个工作场景的可行性。

由于笔者从事的是 Android 开发,因此文中的例子大多围绕着 Java/【【微信】】 语言展开,但其底层的逻辑与思路是通用的,因而不必担心平台和语言会成为理解路上的障碍。

每家互联网公司内部基本都会制定一些编码规范,但无论是人工审查或还是编写自动化插件,都是一件极其漫长而无聊的事情,而 ChatGPT 编程能力的第1个应用――遵循代码指南,就可以帮我们完成这样一件事情。

原 Prompt 是:

Rewrite the code below following the Google style guidelines for ja【【微信】】.{enter code}

遵循Ja【【微信】】的Google风格指南,重写一下代码:{输入代码}

这个 Prompt 有几个不好的地方:

  1. 没有提供指南的参考来源,无法验证其权威性。

  2. 没有指出不遵循指南的地方,而是直接重写,无法验证其风险性。

  3. 没有提供指南的原文描述,无法验证其准确性。

基于以上几点,我们将这个 Prompt 重写如下:

请参照以下由>分隔的编码规范,对以下由```分隔的代码片段进行审查,并按照下列步骤完成任务:

1.指出代码片段里不符合编码规范要求的地方

2.提供编码规范里对应的原文描述

3.提供符合编码规范要求的修改后的代码

>

1.总是使用不可变集合接口(Collection, List, Set, Map)来声明无需改变的集合。使用工厂函数创建集合实例时,尽可能选用返回不可变集合类型的函数:

2.对于由单个表达式构成的函数体,优先使用表达式形式。

3.使用 until 函数在一个开区间上循环

>

```

```

ChatGPT的回答如下:

?

可以看到,ChatGPT 参照规范为我们准确地指正了错误、提供了原文以及修复了代码,本场景验证通过!

有效的单元测试可以验证应用中特定代码的逻辑是否正确,但由于人思维的局限性,有时候我们编写的测试用例仍无法覆盖比较边界的情况。幸运的是,只需提供少量的样本提示,ChatGPT就能很容易地进行模仿和扩写,由此便引申出了ChatGPT的第2个应用――编写代码测试。

原 Prompt 是:

Write test cases for the main edge cases that could happen to the below code snippet.First outline the test cases you'll write.Second, write the test cases in ja【【微信】】 using the Jest framework.{enter code}

为以下代码片段可能发生的主要边缘情况编写测试用例。首先概述您将编写的测试用例。其次,使用 Jest 框架在 ja【【微信】】 中编写测试用例。{输入

这个 Prompt 有个不好的地方,就是它在描述测试用例的编写要求时过于笼统。合理的做法应该是提供少量的样本提示,并且描述测试用例的应用场景,才能让ChatGPT更有针对性地输出。

基于这点,我们将这个 Prompt 重写如下:

请参照以下由```分隔的代码示例,编写一个至少包含20个测试方法的 JUnit 4 测试类,以模拟用户输入不同邮箱内容后 is【【微信】】() 方法的验证情况:

```

```

ChatGPT的回答如下:

?

可以看到,ChatGPT参照样本为我们准确地生成了符合场景要求的测试方法集,模拟了不同的用户输入,本场景验证通过!

命名准确、实现优雅、逻辑清晰的代码都是有自解释的效果的,但一个团队里的成员水平不一,我们无法要求每个成员都能写出这样的代码,因此添加适当的注释是必要的,这项工作虽简单但无趣,完全可以交给 ChatGPT 编程能力的第3个应用――编写代码注释来为我们代劳。

原 Prompt 是:

Regenerate the code snippet below, but please include comments to each line of code {enter code}

重新生成下面的代码片段,但请在每行代码中添加注释。{输入代码}

这个 Prompt 有个不好的地方,它要求在每一行的代码中添加注释,实际上完全没有必要,过多的注释只会增加阅读的时间成本。

我们完全可以要求它在遵循既有注释规范的基础上,仅在必要的地方添加注释,基于这点,我们将这个 Prompt 修改如下:

请参照以下由>分隔的注释规范,对以下由```分隔的代码片段进行审查,并在注释规范要求的地方补上中文注释:

>

1.对于所有的方法,都需要使用 Javadoc 注释。注释内容除了包含返回值、参数和异常说明外,还需要指出该方法的作用或实现的功能。

2.对于所有的类,都需要添加创建者和创建日期的注释。

>

```

```

ChatGPT的回答如下:

可以看到,ChatGPT 参照规范为我们准确地添加了方法注释和类注释,对于未要求的属性注释则没有添加,本场景验证通过!

ChatGPT 为一个完全不懂编程的小白开发出一款完整应用程序的新闻早已屡见不鲜,我们要做的仅仅是理清我们的需求,并罗列好步骤交给它,这里展现的就是 ChatGPT 编程能力的第4个应用――编写应用程序。

原 Prompt 是:

I will pro【【微信】】mation about web app re【【微信】】, and it will be you job to de【【微信】】nd code for developing a secure app with Golang and Angular.{enter web app re【【微信】】}

我将提供有关 Web 应用程序需求的一些具体信息,你的工作是开发一个架构并使用 Golang 和 Angular 编写代码,以开发一个安全的应用程序。{输入 Web 应用程序需求}

编写一个完整应用程序的步骤太多,我们不好演示,但是编写一个简单的功能模块还是绰绰有余的。基于此,我们将这个 Prompt 重写如下:

请按照以下由>分隔的具体步骤,提供Android平台对应的完整【【微信】】代码实现,包括【【淘密令】】文件、布局文件以及AndroidManifest.xml文件,以完成一个“查看手机相片”的需求。

过程中要求:

1.提示我要在哪个目录创建哪个文件;

2.不使用任何第三方框架;

3.在必要的地方添加中文注释;

>

1.页面A提供一个按钮,点击可以打开Android系统的文件浏览器,并选择系统相册中的某一张图片;

2.在用户选中了某张图片后,跳转到页面B以全屏预览该图片

>

ChatGPT的回答如下:

?

输出过程中 ChatGPT 可能会因为单次回答超过了字数限制而中断,我们只需要提示它继续就可以了。

之后,我们将ChatGPT回答中的代码复制到新建的Android工程里,然后尝试运行如下:

可以看到,ChatGPT按照步骤为我们完整地生成了符合要求的、可运行的代码,本场景验证通过!

客户端的主要职责,是展示UI以及与用户交互,与后端开发相比,其与数据库直接打交道的机会较少。这也造成了大部分客户端开发仅会基本的增删改查,而对于Join、索引、子查询等更加高级的数据库特性并不擅长。但现在,有了 ChatGPT 编程能力的第5个应用――执行查询后,这项工作就完全可以由ChatGPT代劳了。

原 Prompt 是:

The database contains tables named "Products”. "Users". "Orders" and "Suppliers." I will type 【【微信】】, and you will reply with what the terminal shows.I want you to reply with a table of 【【微信】】e code block.

数据库包含名为“Products”、“Users”、“Orders”和“Suppliers”的表。我将输入查询,你将使用终端显示的内容进行回复。我希望您在单个代码块中回复查询结果表。

这个 Prompt 写得有点奇怪,按字面意思,它是想让 ChatGPT 执行查询并返回一张结果表。且不说各种数据库图形界面本身就可以支持可视化查询,而如果不是以插件形式支持的话,还得向 ChatGPT 提供完整的数据库数据,操作起来相当麻烦。

基于此,我们还是回到让 ChatGPT 为我们撰写数据库操作语句的场景,将这个 Prompt 重写如下:

请参照以下由```分隔的几个实体类,每个实体对应数据库中的每一个表,实体的每个实例对应表中的每一行数据,实体的每个属性都对应表中的每一列的字段。

现在我需要查询所有歌曲的歌名以及每个歌曲的对应的播放列表名和每个播放列表对应的歌手名,请为我编写一个SQLite查询语句:

```

```

ChatGPT的回答如下:

?

我们将ChatGPT回答中的查询语句复制到数据库图形操作界面,然后尝试运行如下:

可以看到,ChatGPT按照要求为我们准确地返回了查询结果,本场景验证通过!

不得不承认,支持图形界面操作的Git版本管理系统确实有一种魔力,但在享受其便利性的同时,具体的Git命令也在被我们迅速遗忘,这也导致了一旦我们转换到一个新的IDE后,就会完全不知道从何下手。但现在,有了 ChatGPT 编程能力的第6个应用――Git命令生成器后,这种烦恼就不复存在了。

原 Prompt 是:

I want you to act like a Git commands generator. I'll explain to you what I need you to do and you will pro【【微信】】t command. My first re【【微信】】. {I want to push the example.txt file to the branch name example-branch}

我希望你像 Git 命令生成器一样工作。我会向您解释我需要您做什么,您会为我提供正确的 Git 命令。我的第一个要求是。{我要推送example.txt文件到分支名example-branch}

这个 Prompt 本身倒是没有什么问题,只是“推送XX文件到XX分支”这个要求容易让 ChatGPT 以为你只是想执行“push”这个操作,我们理应写的更详细一点。为此,我们将这个 Prompt 重写如下:

请按照以下由>分隔的要求描述,为我提供正确的 Git 命令:

>

将example.txt文件添加到Git仓库并推送到example-branch分支

>

ChatGPT的回答如下:

可以看到,在更为详细的要求描述下,ChatGPT为我们生成了正确的Git命令,本场景验证通过!

本质上,操作指南是给用户或技术新手看的一类文档,是将包含很多专业术语的技术文档转换为更加接近自然语言的步骤指引或问题解答,以帮助读者快速上手开发或解决实际问题。但如何从既有的技术思维上抽离,并切换到用户或技术新手的视角去考虑操作指南怎么写是一个问题,这个时候,ChatGPT 编程能力的第7个应用――操作指南就可以帮上忙了。

原 Prompt 是:

I will pro【【微信】】s of an app functionality {enter steps} and you will come up with an engaging article on how to do those basic steps.

我将为您提供应用程序功能的基本步骤{输入步骤},然后您将撰写一篇引人入胜的文章,介绍如何执行这些基本步骤。

这个 Prompt 本身没有什么太大的问题,但是形式上我认为可以改进一下,相比起较为死板的文档,我认为以问答机器人的形式展现会更直观和高效一点,为此,我们将这个 Prompt 重写如下:

你将扮演一个FAQ问答机器人,根据以下由>分隔的文档所提供的内容,为用户提出的问题提供一份简单而易上手的操作指南。你需要先向用户问好,询问用户有什么问题,然后等待用户输入,在这个过程中你必须遵循的要求是:

1.仅能以提供的文档为参考源,而不能以其他地方的资料为参考源;

2.如果在提供的文档中没有找到解决方案,请诚实告知用户,不能捏造答案。

>

To perform basic camera actions like capturing a photo or 【【微信】】's default camera application, you do not need to integrate with a Camera library. Instead, use an Intent. Take a photo with a camera app

Android delegates actions to other applications by in【【微信】】. This process involves three pieces: the Intent itself, a call to start the external 【【淘密令】】, 【【微信】】he image data when focus returns to your activity.

Here'【【微信】】s an Intent to capture a photo.

You can also in【【微信】】e a video.

The startActi【【微信】】() method is protected by a condition that calls resol【【微信】】(), which returns the first activity component that can handle the Intent. Perform this check to ensure that you are in【【微信】】 that won't crash your app.

>

ChatGPT的回答如下:

?

可以看到,经过我们的前期设定,ChatGPT回答中的代码基本参考自我们提供的文档,而下文的内容也是基于上面代码的解释,算是没有超纲。

然而,即便我们特别要求了,ChatGPT 有时候仍然会无法清醒认知自己的知识边界,从而出现了令人头疼的“幻觉”现象,在面对我们文档中没有提及到的问题时,它会给出它自有训练数据得出的答案:

这个现象,在基于 ChatGPT 4 的 New Bing 身上则没有出现:

所以,就操作指南这一场景的应用来讲,也算能勉强通过~

?

程序员有两件讨厌的事情:写文档,以及别人不写文档。而现在,有了 ChatGPT 编程能力的第8个应用――生成文档后,就可以帮程序员一次性解决这两件讨厌的事情了。

原 Prompt 是:

Generate documentation for the code below. You should include detailed instructions to allow a de【【微信】】al machine, explain what the code does, and list 【【微信】】xist in this code, {enter code}

为下面的代码生成文档。您应该包括详细说明以允许开发人员在本地计算机上运行它,解释代码的作用,并列出此代码中存在的漏洞,{输入代码}

这个 Prompt 有个不好的地方,就是一般类似文档一类的东西,我们会要求其结构尽量清晰分明,以提升其易读性,而这个 Prompt 并未要求 ChatGPT 结构化输出文档。

提前向 ChatGPT 指定要输出的文档结构以及输出的文档形式,是一个比较好的做法,为此,我们将这个 Prompt 重写如下:

请参照以下由>分隔的文档结构,为以下由```分隔的代码生成Markdown形式的中文文档:

>

1.类名

a.类介绍

2.公开方法概要(表格形式,第一列为返回值,第二列为方法名及一句话描述)

3.公开方法

a.方法名 b.方法签名(包含访问范围、返回值


使用ChatGPT人工智能学习


使用ChatGPT人工智能学习的潜力是巨大的。ChatGPT作为一种强大的语言模型,可以提供个性化的学习体验和丰富的知识资源,帮助人们在各个领域进行学习和知识获取。

首先,通过使用ChatGPT,人们可以随时随地获取所需的学习资料和信息。无论是在学校、家中还是旅途中,只需通过与ChatGPT进行对话,就能够获得准确和实时的答案。这种便捷性使得学习不再受时间和地点的限制。

其次,ChatGPT可以作为个性化学习的辅助工具。通过了解用户的学习需求和偏好,ChatGPT可以根据个人的学习风格和节奏,提供定制化的学习建议和资源。这有助于提高学习效果和效率,使学习更加个性化和有针对性。

同时,通过使用maxproxy、动态住宅IP、海外住宅IP和飞机代理IP等技术,人们可以保护他们在使用ChatGPT进行学习时的在线隐私和安全。这些技术能够隐藏真实的IP地址,增加在线安全性和匿名性。在学习过程中保护个人信息的安全对于用户来说是至关重要的。

除了提供学习资料和个性化辅助,ChatGPT还可以帮助人们进行知识的探索和理解。通过与ChatGPT进行对话和提问,人们可以深入探讨各种学科和话题,获得不同角度和深度的解释。这有助于拓宽知识领域,培养批判性思维和终身学习的能力。

然而,我们也要认识到ChatGPT的局限性。它是基于大量的预训练数据和模式匹配的语言模型,可能无法提供100%准确和完整的答案。在学习过程中,我们仍然需要结合其他资源和方法,进行深入研究和思考。

总之,使用ChatGPT人工智能学习的潜力是巨大的。通过结合maxproxy、动态住宅IP、海外住宅IP和飞机代理IP等技术,人们可以保护在线隐私和安全。然而,我们也应该意识到ChatGPT的局限性,继续探索其他学习资源和方法,以获取更全面和深入的知识。ChatGPT作为学习的助手,能帮助我们更高效地获取信息和进行学习,但并不取代人类的思考和研究能力。因此,在使用ChatGPT进行学习时,我们应保持批判性思维,积极探索其他学习途径,以培养综合能力和深入理解。

举报/反馈