如何用ChatGPT取代谷歌?

如何用ChatGPT取代谷歌?

我第一次使用ChatGPT时犯的错误是试图从简单的任务跳到自动化整个项目。

我对ChatGPT的接触遵循了一个典型的趋势:一开始非常兴奋,然后发现完全无法改变我的日常生活。我最初问了它一些简单的问题,它的功能给我留下了深刻的印象。然后我让它写一篇完整的博客,看看它能否取代我成为一名作家。我确定它不能完全取代人类,于是我完全回到了没有人工智能的工作流程。

回想起来,我需要更多关于在日常工作流程中利用人工智能的指导,这就是这篇文章要解决的问题。如果你想了解更多关于ChatGPT的相关内容,可以阅读以下这些文章:
掌握ChatGPT的反向提示
5个ChatGPT插件,让你领先于99%的数据科学家!
ChatGPT和LLM的10个关键术语和概念
ChatGPT的代码解释器将永远改变数据科学!

本内容面向有兴趣获得如何有效利用ChatGPT的具体建议的软件专业人员。这个想法是从简单的日常用例开始,然后进入更复杂的阶段。我将以一个进展不佳的示例项目作为结束。

  • 从Google迁移到ChatGPT
  • 使用ChatGPT进行结对编程
  • 使用ChatGPT进行头脑风暴
  • 测试ChatGPT的编码限制

我的目的不是要让你相信ChatGPT是最好的人工智能,也不是试图说服你人工智能将取代所有的软件工作(它肯定不会)。相反,我希望能给你留下足够的灵感,尝试将人工智能融入你的日常工作中。

从Google迁移到ChatGPT

思维转变:Google是为了呈现其他人类似的问题,而ChatGPT是来回答你确切的问题的。

和大多数人一样,当我不知道什么的时候,我会用谷歌搜索。标准的工作流程是用谷歌搜索,点击顶部的结果,然后阅读,直到感觉你已经猜到了正确的答案。如果你幸运的话,有人已经问了完全相同的问题。但通常情况下,我会点击多个回复,并将答案拼接在一起。

让我们问一个极其简单的问题:

好吧,其实我问的不是这个。这只是部分答案。以下是剩余的结果(这个清单还在继续)

  • 从表中删除数据
  • 删除DynamoDB表中的项目
  • 如何在AmazonDB中添加或删除数组中的项目
  • 在DynamoDB表项的List类型属性中添加或删除项目
  • 如何在AmazonDynamoDB中向数组添加或删除项目
  • 如何删除DynamoDB中的所有项目

你已经经历了很多次这个过程,这是本能的。这些Google搜索结果主要回答了这个问题:“如何从DynamoDB表中删除项目。”接下来,将搜索重写为“如何向DynamoDB表中添加项”。你会阅读这些结果,在你的脑海中拼凑答案,然后你就可以开始了。

让我们对ChatGPT做同样的事情:

ChatGPT接着给出了Python和AWS CLI的代码

ChatGPT在Python和AWS CLI中都给出了英文描述和确切的代码。谷歌尽最大努力返回与我的问题类似的内容,而ChatGPT则尽最大努力生成答案。

思维转变:ChatGPT自动化了查看最重要结果并筛选出答案的过程。

这种新的思维让我意识到,每周有多少次我有一个非常简单的问题,我想要“谷歌的最佳结果”。以下是我这周问过的一些问题:

  • “你能通过curl下载文件的特定块吗?”
  • “如何在bash中删除字符串中的引号?”
  • “如何向AWS secrets Manager添加密钥?”
  • “如何杀死Linux系统上与正则表达式匹配的所有进程?”
  • “给我5个关于开发人员生产力调查问题的想法?”
  • “在Linux中启动进程的3种不同方式是什么?”
  • 我可以通过谷歌得到同样的答案吗?是的。
  • 我可以通过ChatGPT更快地得到答案吗?是的。
  • 人工智能能取代我的工作吗?没有。
  • 人工智能能提高我的速度吗?是的。
  • ChatGPT已经成为我进行基本的Google搜索的首选工具。我们可以更复杂一些吗?

使用ChatGPT进行结对编程

让我们从我试图实现的目标开始:

最近有人向我介绍了Databricks。我的目标是调查S3中的数据相对于我公司销售的无人机类型和数量是如何增长的。数据量可以根据产品、飞行长度和任务类型而变化。我需要调整数据以排除短途飞行、无人机模拟器和不相关的文件类型。Databricks非常依赖sql,这意味着要执行多个表连接、条件和复杂的分组。

我们已经使用ChatGPT回答了一些简单的问题,比如“如何在SQL中连接两个表”。但是你可以用ChatGPT做更多的事情:你可以为它提供上下文。

这是回答:

思维转变:ChatGPT可以根据你给它的输入形成它的响应。

想想这有多强大。ChatGPT根据所提供的上下文定制其回答,远远超过了Google所能做的。没有谷歌搜索会给我上面的代码。充其量,我会将多个不同的网站拼接在一起。这要快得多!

第一个问题很酷,但它不是我需要的最终答案。我需要调整数据。现在,如果ChatGPT比谷歌快10倍,因为它可以根据你的问题的具体情况定制它的回答,那么下一步就是快100倍:

ChatGPT在制定回答时会考虑整个对话的上下文:

因为ChatGPT会记住你的对话,所以你不需要重复这些信息。这就像你在和一个人结对编程。你和ChatGPT可以继续构建,提供新的输入,回滚到以前的步骤,或者尝试一条实验路径。

实际上,在接下来的一个小时里,我又给出了十几个提示,直到我写出了150行SQL,否则这些行就超出了我的能力范围。现在,需要明确的是,ChatGPT犯了错误,就像人类一样。我能够指出错误,我们也能够取得进展。

思维转变:你可以使用ChatGPT构建一个复杂的解决方案。从简单的开始,逐步增加复杂性。

好的,所以你可以使用ChatGPT来回答简单的问题或构建小代码片段。但我们能走得更远吗?

使用ChatGPT进行头脑风暴

一个很好的例子是使用ChatGPT为你的项目提供额外的考虑。以下是我在现实生活中的例子:

本周,一位开发人员问我,他们如何能够将许可文件自动注入到他们的远程开发环境中。作为我的新风格,我直接使用ChatGPT:

ChatGPT给了我一个可靠的答案,讲述了上传和下载文件的过程,以及管理AWS Secrets管理器所需的AWS IAM策略的Terraform。每个部分都包括示例代码和解释。太棒了。

然而,我很好奇我是否已经考虑到足够的问题,我问了ChatGPT一个更普遍的问题:

它还提出了另外八件需要考虑的事情:权限、成本、加密、秘密轮换、区域、资源策略、秘密版本控制和初始帐户设置。对于每一个,它都有一段对主题的总结。

我已经知道了其中的大部分注意事项,但有一些是新的。这让我想到:你可以使用ChatGPT作为头脑风暴的伙伴吗?

眼见为实:尝试将这些提示之一复制到ChatGPT4中。

  • 我是一家拥有公共REST API的软件公司的软件工程师。我想开始对它进行压力测试,我正在评估几个框架。我应该寻找哪些重要的功能?
  • 我是一家运营SaaS产品的软件公司。我需要在我的产品中添加SSO,以便每个公司都可以使用其身份验证平台登录。我正在尝试比较像Auth0和WorkOS这样的工具。有哪些需要考虑的重要功能?
  • 我是一家公司的软件工程师,该公司正在构建一个企业(自托管)应用程序。就我而言,客户在没有我的情况下自行管理整个产品。我担心长期支持我的应用程序会带来维护负担。我应该考虑什么?

它返回的答案非常有用,也是一个很好的起点。这是一个很好的例子,因为我尝试过,谷歌上无法搜索到它。因为,再说一次,ChatGPT正在尝试创建答案,而谷歌正在尝试呈现类似的内容。

思维转变:使用ChatGPT头脑风暴,讨论工作中未知的问题。

好了,现在我使用ChatGPT来代替我的典型Google搜索,一起编写代码片段,并充当头脑风暴的伙伴。我能让它写复杂的代码吗?

测试ChatGPT的编码限制

当涉及到编写直接适合你的代码库的代码时,ChatGPT绝对是错误的工具(接下来我会尝试GitHub Copilot)。然而,当涉及到编写针对公共api的集成时,ChatGPT可能非常出色。

如果你仔细想想,这是有道理的。构建集成只是将一个站点的“读取”操作映射到另一个站点的“写入”操作。这个问题中最困难的部分是弄清楚如何在两个不同的数据模型之间进行转换。一旦你知道自己想要什么,就很容易了:

这里是它生成的代码的链接。这本来就很好。但我能走得更远吗?

我让ChatGPT构建一个具有以下限制的小软件程序是一个挑战:我不允许输入任何代码。我只能执行它给我的。每个拼写错误都需要ChatGPT更正。

一开始,ChatGPT做得很好。它很容易编写一个RESTful客户端并插入其他常用库。虽然很简单,但它还是起了作用。

添加调试语句是可以的。我告诉ChatGPT我需要更多的调试语句,它在整个代码中添加了print函数。

在其他库中封装函数调用也很不错。我正在下载和重新上传大文件,所以我问ChatGPT是否可以在命令行上用进度条可视化包装它们。它是这样做的:

如果没有ChatGPT,我永远不会写出这些润色后的代码

如果我自己做,我就不会花时间做那么多调试语句或注入tqdm库。

思维转变:ChatGPT可以为你的代码添加润色,否则就不值得了。

要求ChatGPT将代码重构为方法,一旦代码超越了简单的函数,我就要求ChatGPT重构代码并添加抽象。从那以后,ChatGPT几乎每个问题都出现了拼写错误和逻辑错误。到最后,我花在指导ChatGPT纠正问题上的时间比自己亲自完成要多。

我的猜测是,ChatGPT的每个问题的计算时间是有限的。情况越复杂,ChatGPT似乎就无法完全调整其响应,只能给出一个未经完善的结果。

标注:ChatGPT擅长编写单个函数,但在处理抽象或多个方法时很快就会崩溃。

值得一提的是,当我最终使用Python在AWS S3上运行代码时,ChatGPT就很好地转化了它。虽然我花了一个小时才让它写下我需要的代码,但它只需要一个提示就能够:

  • 转化S3代码以适用于Azure、GCP和Dropbox
  • 将Python代码转化成Typescript

ChatGPT是用来增强你的能力,而不是取代你

最初,我很难将ChatGPT融入到我的日常工作中。我觉得这是一个很酷的噱头,也许它适用于其他人的工作流程,但不适用于我的。我的工作要么太复杂,要么太微妙,以至于外部AI工具无法发挥作用。当人们问我关于人工智能的问题时,我总是说“我已经尝试过了,它很酷。”我不会告诉他们我从来没有用过它来处理实际的日常任务。

在强迫自己使用了一周之后,我现在对人工智能如何改变了我的日常工作非常狂热。我用它来代替谷歌,进行头脑风暴,并作为结对程序员来编写简单的代码。

我强烈建议你注册一个ChatGPT4帐户,并将其纳入你的工作流程。我想你会发现它是一个得力的助手。

感谢阅读!你还可以订阅我们的YouTube频道,观看大量大数据行业相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Elliot Graebert
翻译作者:文杰
美工编辑:过儿
校对审稿:Chuang
原文链接:https://medium.com/@elliotgraebert/how-i-replaced-google-with-chatgpt-1b3718694c35